llvm - 等效于 LLVM IR 的 #include

标签 llvm llvm-ir

我发现自己有大量有用的函数和常量,它们是用 LLVM 的 IR 编写的。我可以通过将它与手写 IR 结合使用这个伪库,前提是所述手写 IR 以可能很长的声明列表开始。我知道 IR 不一定被设计为一种通用的编程语言来编写东西。

这很像在一个文件中编写大量 C 函数,然后在使用它们的任何地方重新声明它们。在 C 中,这是使用#include 和头文件来解决的。这并不完美,但它胜过反复写出原型(prototype)。

在 IR 中实现类似目标的最不讨厌的方法是什么?它只需要一遍又一遍地输入内容(我目前以复制和粘贴方式进行)并使用 cat 作为自定义构建步骤。

谢谢!

最佳答案

可悲的是,LLVM IR 中没有这样的东西。

LLVM IR 的设计目的不是让大量的手写内容。因此它没有 #include机制。使用 LLVM API 处理这类东西的工作落到了编译器身上。

但是,如果您想达到相同的效果,您可以做的一件事是尝试查看其他人的预处理器是否适用于您正在尝试做的事情,或者自己编写自定义预处理器。

关于llvm - 等效于 LLVM IR 的 #include,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46175481/

相关文章:

llvm - GEP指令: i32 vs i64

c++ - 如何为 LLVM IR 生成元数据?

linux - 我如何在 LLVM IR 中分配一个从地址 0 开始的字节数组?

c - 汇编、机器码、字节码和操作码之间的实际关系是什么?

c++ - llvm clang 2.6 : "not using the clang compiler for C++ inputs "

c - 为什么LLVM要为同一个程序多加两条指令?

c++ - 将 LLVM getOrInsertFunction 链接到 LLVM 传递中的外部 C++ 函数

gcc - 使用gcc 4.6在内核3.0上编译LLVM 2.9的gcc 4.2

ios - 抑制可选框架的 `missing required architecture i386` 警告?

llvm - LLVM 的 SelectInst 的好处