现在我正在尝试开发一个编译器。我想要一个“打印”功能。它可以这样使用:
print(90, "hello world")
以前,我使用列表(或向量)来保存参数。但现在我想使用 LLVM。而且我不知道如何使 llvm ir 来调用它。在我看来,也许我应该构建一个动态或静态库来存储我的std库,但是如果我在llvm ir中使用
declare print(...)
如果有人能帮助我,我将不胜感激!
LLVM 中参数数量可变的函数的处理方式与 C 中的处理方式相同。 为了处理它,LLVM IR 有特殊的操作码:
VASTART
、
VAARG
VACOPY
VAEND
ISD