我正在尝试生成可以重新生成输入其中的 IR 代码的 LLVM API 代码。正如我通过诸如this question之类的各种问题发现的那样,在某些时候可以执行以下操作来实现此目标:
clang++ -S -O0 -emit-llvm MyFile.cpp -o MyIR.ll
llc -march=cpp MyIR.ll -o MyIR_Maker.cpp
但是我收到以下错误:llc:错误:无效目标'cpp'。进一步的研究告诉我,当在 3.1 版中删除 c 后端时,在 LLVM 的早期版本中也发生了同样的问题。然而,我正在使用 cpp,这让我相信由于某种原因,我的 llvm 版本中不存在 cpp 后端。
所以我真的想从这里知道的是:如果我到目前为止的分析是正确的,我如何启用 cpp 后端或以其他方式让我的有限责任公司达到我可以以我想要的方式使用它的状态?当然,如果我错了或有其他方法,我会对此持开放态度。
我们选择使用的版本是 LLVM 3.6,这是通过 brew 在 OS X 上安装的。提前谢谢你。
编辑:这个问题已被指出为可能类似的问题。然而,这个问题是在 LLVM 3.2 的特定背景下提出的,因为我关注的是 3.6 版的当前情况,因为此时可能有一个真正的解决方案。该问题的唯一答案指向一般外部资源,并没有非常彻底地解释实际解决方案是什么。