为什么 llvm-build 看不到自定义后端?
Why llvm-build doesn't see custom backend?
我正在尝试为 LLVM 编写自定义后端。我将 llvm/lib/Target/AVR
文件夹复制到 llvm/lib/Target/Abc
(这是我的后端)。然后,我将文件名和文件内容中的所有 AVR
替换为 Abc
,将 avr
替换为 abc
。这里是 CMakeLists.txt
:
set(LLVM_TARGET_DEFINITIONS Abc.td)
tablegen(LLVM AbcGenRegisterInfo.inc -gen-register-info)
tablegen(LLVM AbcGenInstrInfo.inc -gen-instr-info)
tablegen(LLVM AbcGenCallingConv.inc -gen-callingconv)
tablegen(LLVM AbcGenSubtargetInfo.inc -gen-subtarget)
add_public_tablegen_target(AbcCommonTableGen)
add_llvm_target(AbcCodeGen
AbcInstrInfo.cpp
AbcRegisterInfo.cpp
AbcTargetMachine.cpp
AbcTargetObjectFile.cpp
)
add_dependencies(LLVMAbcCodeGen intrinsincs_gen)
add_subdirectory(MCTargetDesc)
add_subdirectory(TargetInfo)
我试图将Abd
添加到llvm/CMakeLists.txt
中的LLVM_ALL_TARGETS
变量,但是当我尝试运行cmake
时,显示以下错误:
llvm-build: error: invalid target to enable: 'Abc' not in project
我也尝试用-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=Abc
从llvm/CMakeLists.txt
和运行cmake
中删除Abc
,但结果是一样的。
问题是我没有在 llvm/lib/Target/LLVMBuild.txt
中将 Abc
添加到 subdirectories
。
我正在尝试为 LLVM 编写自定义后端。我将 llvm/lib/Target/AVR
文件夹复制到 llvm/lib/Target/Abc
(这是我的后端)。然后,我将文件名和文件内容中的所有 AVR
替换为 Abc
,将 avr
替换为 abc
。这里是 CMakeLists.txt
:
set(LLVM_TARGET_DEFINITIONS Abc.td)
tablegen(LLVM AbcGenRegisterInfo.inc -gen-register-info)
tablegen(LLVM AbcGenInstrInfo.inc -gen-instr-info)
tablegen(LLVM AbcGenCallingConv.inc -gen-callingconv)
tablegen(LLVM AbcGenSubtargetInfo.inc -gen-subtarget)
add_public_tablegen_target(AbcCommonTableGen)
add_llvm_target(AbcCodeGen
AbcInstrInfo.cpp
AbcRegisterInfo.cpp
AbcTargetMachine.cpp
AbcTargetObjectFile.cpp
)
add_dependencies(LLVMAbcCodeGen intrinsincs_gen)
add_subdirectory(MCTargetDesc)
add_subdirectory(TargetInfo)
我试图将Abd
添加到llvm/CMakeLists.txt
中的LLVM_ALL_TARGETS
变量,但是当我尝试运行cmake
时,显示以下错误:
llvm-build: error: invalid target to enable: 'Abc' not in project
我也尝试用-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=Abc
从llvm/CMakeLists.txt
和运行cmake
中删除Abc
,但结果是一样的。
问题是我没有在 llvm/lib/Target/LLVMBuild.txt
中将 Abc
添加到 subdirectories
。