gpt4 book ai didi

compiler-errors - 到底应该使用什么命令行来从 RegisterInfo.td 文件中生成所有记录?

转载 作者:行者123 更新时间:2023-12-02 10:42:13 25 4
gpt4 key购买 nike

背景资料:到目前为止,我已经阅读了 llvm 教程,包括: The Table Gen Command Guide

Table Gen's General Documentation, especially the Running TableGen section

我目前正在为 llvm 的新目标编写代码,我不能在这里发布。我在问题的上下文中使用 X86 目标,因为它仍然适用于该目标。

我想做的是:我正在尝试使用 tablegen 从 X86RegisterInfo.td 生成记录我使用的命令行是这样的:

llvm-tblgen X86RegisterInfo.td -class=Register -I/home/des_fw/fler_llvm/llvm/include

返回这个错误

X86RegisterInfo.td:16:43: error: Couldn't find class 'Register'
class X86Reg<string n, bits<16> Enc, list<Register> subregs = []> : Register<n> {
^

我能够运行上面 Running TableGen 引用中给出的 X86.td 示例命令,所以我非常有信心包含路径 -I/.../... 是正确的,因为没有它写在这里方式,命令不运行。我还在同一目录(../Target/X86)中运行我的命令,作为有效的示例命令。

要使 TableGen 工具生成 X86RegisterInfo.td 文件(或通常为 XXXRegisterInfo.td,其中 XXX 是目标名称)的记录,正确的命令是什么?

我对 LLVM 和定制或编写编译器还很陌生,所以我祈祷只是我不了解如何使用命令行,但如果这也可能是一个完全不同的问题,请提供任何提示我在正确的方向上都非常感激。

非常感谢!

最佳答案

我相信我已经找到了我自己问题的答案。命令行应该是

llvm-tblgen X86.td -gen-register-info -I/home/des_fw/fler_llvm/llvm/include

因为

"On all LLVM back-ends, the llvm-tblgen binary will be executed on the root TableGen file .td, which should include all others. This guarantees that all information needed is accessible, and that no duplication is needed in the TbleGen files." (http://llvm.org/docs/TableGen/BackEnds.html#llvm-backends)

我用了

-gen-register-info

在我在问题中提到的网站上找到的选项:http://llvm.org/docs/CommandGuide/tblgen.html

所以整个命令行一般是

llvm-tblgen TargetNameHere.td -back-end-opt-for-specific-record-set -I/path/to/file/include/

关于compiler-errors - 到底应该使用什么命令行来从 <Target>RegisterInfo.td 文件中生成所有记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38507203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com