当前位置: 首页 > 知识库问答 >
问题:

自定义后端的LLVM编译错误

习阳
2023-03-14

我开始熟悉LLVM,我的目标是为我的定制处理器实现后端。在我进入后端实现之前,我首先尝试了解构建过程是如何工作的,因此我首先将lib/Target/MSP430复制到lib/Targel/myproc,并构建以“myproc”为目标的llvm(尽管它实际上是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/塔吉特/MSP430复制到lib/塔吉特/myproc。
  2. 修改配置和项目/示例/配置以添加“myproc”。
  3. 转到lib/塔吉特/myproc并将MSP430.td、LLVMBuild.txt和Makefile中的“MSP430”更改为“myproc”(我也修改子目录中的文件)。

由于LLVM编译适用于我机器上的其他目标,我相信这不是我正在使用的工具机器的问题,而是我的修改问题。

我错过了什么吗?我还需要做什么修改吗?

共有1个答案

滕翔飞
2023-03-14

这里有一个不错的编写后端的教程:

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

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

http://llvm . org/dev MTG/2012-04-12/Slides/workshop/Anton _ korobeynikov . pdf

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

查看更多的make日志会有所帮助,但我猜想您在处理时会得到一个tblgen错误。myproc/中的td文件。这个tblgen错误是您需要诊断和解决的真正问题。

 类似资料:
  • 所以,我已经通过Chocolate安装了Bazel,安装了Python 3.5和2.7,安装了CUDA v8和cuDNN v6,安装了JDK 8.0,我现在正在尝试在我的Windows 10设备上定制TensorFlow,使用AVX、AVX 2和CUDA。TensorFlow GPU,预构建版本,确实可以工作,我已经测试并成功运行了它。 我遵循了其他文章的说明,包括在TensorFlow的实际站点

  • 我已经收到这个错误很长时间了,我不知道该怎么办。 为了保持问题简短,我将错误写入.rtf文件并将其放入CloudApp中。这是链接:http://cl.ly/0T3n1Q123u352T372t0m 我觉得和“CLAPIDeserializer.m”有关系。 我会感谢任何帮助。谢谢你。 错误: CompileC/Users/juniorpond/Library/Developer/Xcode/de

  • 我试图自定义Qt4Agg后端。为了确保我没有插入任何错误,作为起点,我将matplotlib/后端/backend_qt4agg.py复制到PYTHONPATH上的新位置,将其重命名为"my_backend.py",并更正了以下两个导入语句: 变成 在我的matplotlib RC文件中,我将后端更改为module://my_backend.py. 使用“show()”从脚本打印时,一切正常。但是

  • 问题内容: 我是编程新手,很难弄清楚这个错误: 这是整个程序。我敢肯定答案是非常简单的,但对于我的一生,我无法弄清楚。 问题答案: 该变量已被定义为循环的一部分。只需删除以下行:

  • 我做的每一个注释处理器似乎都有这个问题。例如,一个注释: 处理器: 如果用注释的字段不是,这将引发编译器错误。 问题是,在我保存文件之前,错误不会出现。错误消失时也是如此。如果我解决了这个问题,错误会一直保留到我保存文件为止。 我使用Eclipse Luna和Java8u31。有什么办法可以防止这种情况发生吗?

  • 提供用于创建自定义子句和编译器的API。 简介 使用涉及创建一个或多个 ClauseElement 子类和定义其编译的一个或多个可调用文件: from sqlalchemy.ext.compiler import compiles from sqlalchemy.sql.expression import ColumnClause class MyColumn(ColumnClause):

  • android { compileOptions { sourceCompatibility = "1.6" targetCompatibility = "1.6" } } 默认值是 “1.6” 。该设置将会影响所有需要编译 Java 源代码的 task。

  • 问题内容: 我在非标准位置安装了自己的OpenSSL(出于本示例的目的),并且我希望针对源代码编译Python 3.4时可以以此为基础进行构建。我试过的是这个(目录缩写) 我也尝试了用冒号分隔的路径。 然后,我运行并得到以下信息: 它正在寻找,但是最确定的是: 我不确定自己在做什么错,有什么想法吗? 问题答案: 经过大量的梳理,我设法弄清楚了。这是一堆环境变量…我想我可能做得有些过分,但这基本上可