Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我搜索了 LLVM 的源代码,但我没有找到显示 LLVM 如何为结构生成位码(IR)的确切代码片段。我搜索关键字“StructType::create”和“StructType::get”,但出现的次数太多了。谁能告诉我在哪里可以找到确切的代码片。我的目的是改变结构中元素的顺序和其他东西。谢谢你。
负责最初生成 IR 的组件称为前端。LLVM 核心本身不包含任何前端,但有许多针对它编写的前端,最著名的是 Clang - LLVM 的 C、C++ 和 Objective-C 前端。
因此,如果“为结构生成位码”是指“为C结构生成位码”,那么负责它的代码将在 Clang 中。具体来说,CGRecordLayout和CGRecordLayoutBuilder类负责创建 LLVM 结构类型。
CGRecordLayout
CGRecordLayoutBuilder