簡體   English   中英

主function中的編譯器設計前端計算Clang和Zig

[英]Compiler design frontend calculation in the main function for Clang and Zig

我已經開始閱讀clangzig-lang的源代碼。 不幸的是,源代碼很復雜,我無法找出這些編譯器的前端在主要 function 中調用的位置。

clang中,我找到的更近的地方是這里,但它看起來不像處理編譯前端。

zig-lang中,主要的 function 更加混亂且難以理解。 我只能在這里找到事實上的主要 function (main0)。

雖然,解釋這些編譯器的階段並指向他們的代碼是值得贊賞的,但對我來說,僅僅調用前端計算的地方就足夠了。

主 zig 編譯器從Compilation.performAllTheWork執行。 這個 function 循環遍歷所有編譯項並編譯它們。 ( main()buildOutputTypeupdateModuleCompilation.update → Compilation.performAllTheWork)

當從Compilation.updateStage1Module的工作隊列中找到 stage1_module 項時,將調用 Stage1(zig 0.8.0 中的默認編譯器,用 C++ 編寫)。 大部分編譯發生在codegen_build_object (從zig_stage1_build_object調用)

Stage2(用 Zig 編寫的工作中更快的編譯器)更緊密地集成到工作隊列中,因為它支持增量編譯並在工作隊列切換的這些分支中調用。


Clang 從某個地方開始,可能在clang.lib.frontend.CompilerInvocation中?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM