現代程式語言和軟體工程原則對編譯器系統帶來了越來越多的問題。傳統方法採用簡單的編譯-連結-執行模型,在新的條件需求下,無法提供足夠的應用程式效能。傳統的程序間和基於剖析的編譯方法可以提供所需的應用程式效能,但需要大量的編譯時間來構建應用程式,這在實際中是不可行的。
本論文介紹了 LLVM,這是一個編譯器基礎架構的設計和實現,它支援一種獨特的「多階段」最佳化系統。該系統旨在支援廣泛的程序間和基於剖析的最佳化,同時保持足夠的效率,以便在商業編譯器系統中使用。
LLVM 虛擬指令集是將整個系統整合在一起的粘合劑。它是一種低階表示,但具有「高階類型資訊」。這提供了低階表示的優點(例如表示形式緊湊、可用的轉換種類繁多等),同時也提供了高階資訊,以支援在連結時和連結後進行積極的程序間最佳化。具體來說,該系統旨在支援現場最佳化,包括在執行時和機器閒置時進行最佳化。
本論文還描述了此編譯器設計的實現,即 LLVM 編譯器基礎架構,證明了該設計的可行性。LLVM 編譯器基礎架構是一個日趨成熟且高效的系統,我們證明它是進行各種研究的良好平台。有關 LLVM 的更多資訊,請訪問其網站:http://llvm.cs.uiuc.edu/
本論文取代了之前的技術報告。
「LLVM:一個適用於多階段最佳化的基礎架構」,Chris Lattner。
碩士論文,伊利諾大學厄巴納-香檳分校電腦科學系,2002 年 12 月。
如果您打算列印出來,「書籍格式」會很有用。將文件雙面列印,對折並在中間裝訂。這可以大幅減少紙張的使用量。
@MastersThesis{Lattner:MSThesis02, author = {Chris Lattner}, title = "{LLVM: An Infrastructure for Multi-Stage Optimization}", school = "{Computer Science Dept., University of Illinois at Urbana-Champaign}", year = {2002}, address = {Urbana, IL}, month = {Dec}, note = {{\em See {\tt http://llvm.cs.uiuc.edu}.}} }