做者:snsn1984 html
這裏簡單介紹下LLVM的源碼結構,讓你們知道LLVM的每一個文件夾都放的是什麼內容。 工具
參考文檔: http://llvm.org/docs/GettingStarted.html#getting-started 測試
llvm/examples .net
這個目錄主要是一些簡單例子,演示如何使用LLVM IR 和 JIT。還有創建一個簡單的編譯器的例子的代碼。 code
創建簡單編譯器的文檔地址:http://llvm.org/docs/tutorial/ htm
llvm/include blog
這個目錄主要包含LLVM library的公共頭文件。 接口
llvm/lib 文檔
這個目錄包含了大部分的LLVM的源碼。在LLVM中大部分的源碼都是以庫的形式存在的,這樣不一樣的工具以前就很容易共用代碼。 get
llvm/projects
這個目錄包含着一些依賴LLVM的工程,這些工程嚴格來講又不算LLVM一部分。
llvm/runtimes
這個目錄包含了一些庫,這些庫會編譯成LLVM的bitcode,而後當clang linking 程序的時候使用。
llvm/test
這個目錄是LLVM的測試套件,包含了不少測試用例,這些測試用例是測試LLVM的全部基本功能的。
llvm/tools
這個目錄理是各個工具的源碼,這些工具都是創建在剛纔上面的那些庫的基礎之上的。也是主要的用戶接口。
llvm/utils
這個目錄包含了一些和LLVM源碼一塊兒工做的應用。有些應用在LLVM的編譯過程當中是不可或缺的。