繁体   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