我正在尝试从Sparc Target打印装配体。我已经可以从它生成IR,但不知何故,这对目标不起作用。我不知道要添加什么,因为llvm-is工具使用ParseIRFile返回模块。
我的问题是虽然我在一个字符串中有IR,但我不知道如何添加一个将其用于目标代码生成的传递。
我需要一些关于在 generateSparcsCode()函数中改变什么的指针,以使用我刚刚从 generateCode()方法生成的IR并存储在 m_llvmIR 变量。 在相同的上下文中,模块也是一个类成员,并且想知道如何正确地将它用于目标生成代码。
答案 0 :(得分:2)
一个好的资源是 llc 工具的源代码(在tools\llc\llc.cpp
中)。 llc是LLVM本机代码生成器 - 它可以将LLVM IR编译为目标机器代码,您可以在命令行上选择目标(有关详细信息,请参阅this reference)。
只需查看 llc 的main
函数中的代码流。它读取IR,然后设置目标并最终发出输出。您可以使用-filetype
标志来选择 llc 发出的内容(无论是程序集还是带有机器代码的本机对象)。