LLVM 中编译单元的正确抽象是什么?

2024-01-10

在 LLVM 中我们有LLVMContext,这是存储单位,我们有llvm::Module,这是构建新符号(函数和类型)的地方。

我的问题是;用于编译单元的正确 llvm 抽象是什么?是个Module?或者这实际上意味着更大的范围,即:共享库目标

在我看来,编译单元必须满足“全有或全无”的结果;要么它编译其所有内容而没有错误,要么存在错误并且需要在 CU 中的任何符号可用之前修复并重新构建。在我看来,这就是编译单元应该代表的定义

如果模块是 CU 的正确抽象,我如何在其他(正确编译)中呈现符号Module对象即将构建的新模块,以便它能够找到这些对象?我需要添加声明还是有其他加快方法?

指向相关行的点clang会有很大帮助


模块是编译单元的正确抽象。您可以将模块链接在一起以从那里进行整个程序分析。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LLVM 中编译单元的正确抽象是什么? 的相关文章

随机推荐