LLVM:一個適用於多階段最佳化的基礎架構
Chris Lattner,碩士論文

摘要

現代程式語言和軟體工程原則對編譯器系統帶來了越來越多的問題。傳統方法採用簡單的編譯-連結-執行模型,在新的條件需求下,無法提供足夠的應用程式效能。傳統的程序間和基於剖析的編譯方法可以提供所需的應用程式效能,但需要大量的編譯時間來構建應用程式,這在實際中是不可行的。

本論文介紹了 LLVM,這是一個編譯器基礎架構的設計和實現,它支援一種獨特的「多階段」最佳化系統。該系統旨在支援廣泛的程序間和基於剖析的最佳化,同時保持足夠的效率,以便在商業編譯器系統中使用。

LLVM 虛擬指令集是將整個系統整合在一起的粘合劑。它是一種低階表示,但具有「高階類型資訊」。這提供了低階表示的優點(例如表示形式緊湊、可用的轉換種類繁多等),同時也提供了高階資訊,以支援在連結時和連結後進行積極的程序間最佳化。具體來說,該系統旨在支援現場最佳化,包括在執行時和機器閒置時進行最佳化。

本論文還描述了此編譯器設計的實現,即 LLVM 編譯器基礎架構,證明了該設計的可行性。LLVM 編譯器基礎架構是一個日趨成熟且高效的系統,我們證明它是進行各種研究的良好平台。有關 LLVM 的更多資訊,請訪問其網站:http://llvm.cs.uiuc.edu/

本論文取代了之前的技術報告

出版資訊

「LLVM:一個適用於多階段最佳化的基礎架構」,Chris Lattner。
碩士論文,伊利諾大學厄巴納-香檳分校電腦科學系,2002 年 12 月。

下載

BibTeX 條目

  @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}.}}
  }