Я пытаюсь написать собственный бэкэнд для 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_ALL_TARGETS
в llvm/CMakeLists.txt
, но когда я пытаюсь запустить cmake
, отображается следующая ошибка:
llvm-build: error: invalid target to enable: 'Abc' not in project
Я также пытался удалить Abc
из llvm/CMakeLists.txt
и запустить cmake
с -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=Abc
, но результат тот же.