自定义后端的LLVM编译错误

时间:2013-12-19 17:49:47

标签: compilation llvm backend

我对LLVM熟悉了,我的目标是为我的自定义处理器实现后端。 在我进入后端实现之前,我首先尝试了解构建过程是如何工作的,所以我首先将lib / Target / MSP430复制到lib / Target / myproc,并构建llvm,目标是“myproc”(即使它实际上是作为MSP430的后端,我这样做只是为了了解如何向LLVM添加新目标。)

当我配置/生成llvm时,我收到以下错误消息。


...

/ bin / cp:无法统计`/mydir/build/lib/Target/myproc/Debug+Asserts/MSP430GenRegisterInfo.inc.tmp':没有这样的文件或目录

...


我检查了/ lib / Target / myproc,看到只有一个文件Makefile从/ lib / Target / myproc复制。

以下是我在配置和制作之前所做的事情。

  1. 在我的LLVM源目录中,将lib / Target / MSP430复制到lib / Target / myproc。
  2. 修改configure和projects / sample / configure以添加“myproc”。
  3. 转到lib / Target / myproc并在MSP430.td,LLVMBuild.txt和Makefile中将“MSP430”更改为“myproc”(我还修改了子目录中的文件)。
  4. 由于LLVM编译适用于我机器上的其他目标,我相信这不是我使用的工具机器的问题,而是我修改的问题。

    我错过了什么吗?我应该做进一步的修改吗?

1 个答案:

答案 0 :(得分:0)

这里有一个很好的教程来编写后端:

http://llvm.org/docs/WritingAnLLVMBackend.html

还有一个开发者会议的教程:

http://llvm.org/devmtg/2012-04-12/Slides/Workshops/Anton_Korobeynikov.pdf

* GenRegisterInfo.inc来自在目标.td文件上运行tblgen。 .inc输出文件名取决于.td文件在myproc / target目录中的名称。

查看更多make日志会很有帮助,但我的猜测是你在myproc /中处理.td文件时遇到了tblgen错误。 tblgen错误是您需要诊断和解决的真正问题。