NoteZ icon indicating copy to clipboard operation
NoteZ copied to clipboard

LLVM TableGen

Open jmpews opened this issue 7 years ago • 0 comments

Prologue

最近希望能从 llvm 抽出来一个定制的精简 disassembler, 通过研究发现指令的信息放在 AArch64InstrInfo.td 但是如何从 AArch64InstrInfo.td 生成我们需要格式需要参考 TableGen 的使用.

这里可以参考 llvm/cmake/modules/TableGen.cmake 以及 https://llvm.org/docs/TableGen/index.html#id5

Somniloquy

对于指令的TableGen源码/文档参考

llvm/utils/TableGen/TableGen.cpp
llvm/lib/Target/AArch64/AArch64InstrInfo.td
llvm/lib/Target/AArch64/AArch64InstrFormats.td

llvm/docs/TableGen/LangIntro.rst

简单 llvm-tblgen 的使用演示

/Users/jmpews/project/llvm/build/Debug/bin/llvm-tblgen -I /Users/jmpews/project/llvm/include -I /Users/jmpews/project/llvm/lib/Target/ARM /Users/jmpews/project/llvm/lib/Target/ARM/ARM.td -gen-register-info

/Users/jmpews/project/llvm/build/Debug/bin/llvm-tblgen -I /Users/jmpews/project/llvm/include -I /Users/jmpews/project/llvm/lib/Target/AArch64 /Users/jmpews/project/llvm/lib/Target/AArch64/AArch64.td -gen-register-info

Visual Studio 调试

调试启动参数

-I "D:\BackupZ\DownloadZ\llvm-6.0.0.src.tar\llvm-6.0.0.src\include" -I "D:\BackupZ\DownloadZ\llvm-6.0.0.src.tar\llvm-6.0.0.src\lib\Target\ARM" "D:\BackupZ\DownloadZ\llvm-6.0.0.src.tar\llvm-6.0.0.src\lib\Target\ARM\ARM.td" -print-enums -class=Instruction

image

jmpews avatar Jan 26 '18 03:01 jmpews