打印llvm目标程序集

时间:2012-05-17 22:47:23

标签: llvm

我正在尝试从Sparc Target打印装配体。我已经可以从它生成IR,但不知何故,这对目标不起作用。我不知道要添加什么,因为llvm-is工具使用ParseIRFile返回模块。

http://pastebin.com/t3M9edrT

我的问题是虽然我在一个字符串中有IR,但我不知道如何添加一个将其用于目标代码生成的传递。

我需要一些关于在 generateSparcsCode()函数中改变什么的指针,以使用我刚刚从 generateCode()方法生成的IR并存储在 m_llvmIR 变量。 在相同的上下文中,模块也是一个类成员,并且想知道如何正确地将它用于目标生成代码。

1 个答案:

答案 0 :(得分:2)

一个好的资源是 llc 工具的源代码(在tools\llc\llc.cpp中)。 llc是LLVM本机代码生成器 - 它可以将LLVM IR编译为目标机器代码,您可以在命令行上选择目标(有关详细信息,请参阅this reference)。

只需查看 llc main函数中的代码流。它读取IR,然后设置目标并最终发出输出。您可以使用-filetype标志来选择 llc 发出的内容(无论是程序集还是带有机器代码的本机对象)。