gpt4 book ai didi

llvm - 通过示例了解 LLVM IR 中全局值的不同链接类型

转载 作者:行者123 更新时间:2023-12-03 00:11:46 30 4
gpt4 key购买 nike

LLVM IR doc 详细讨论了 IR,其中大部分内容都很清楚。然而,我对 Linkage Types 特别困惑。除了 privateinternalexternal 之外的链接类型在没有示例的情况下会变得非常困惑。

有人可以在这里阐明一下吗? (可能将用例与 C/C++ 等语言联系起来?)

(我试图清楚地理解 IR,因为我正在为 LLVM 模块构建分析器。)

最佳答案

LLVM 的链接定义很复杂,因为它必须能够表示来自不同编程语言、系统、目标文件格式等的概念。

唯一明确的引用是代码。特别是看看 clang 如何从 C++ standard linkage 翻译过来。到自己的codegen linkageASTContext::GetGVALinkageForFunction并从那里进入 CodeGenModule::getLLVMLinkageForDeclarator 中的 llvm .

当然还有一些代码(尚未找到)将 LLVM 链接转换为相当于 COMDATs 的目标文件。或弱符号,例如使用GlobalValue::isWeakForLinker

附加链接是一种非常特殊的低级链接,例如用于构造指向全局构造函数的指针数组。

关于llvm - 通过示例了解 LLVM IR 中全局值的不同链接类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47350035/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com