Ich versuche, ein benutzerdefiniertes Backend für LLVM zu schreiben. Ich habe einen llvm/lib/Target/AVR
Ordner nach llvm/lib/Target/Abc
kopiert (es ist mein Backend). Dann habe ich alle AVR
durch Abc
und avr
durch abc
in Dateinamen und Dateiinhalten ersetzt. Hier ist CMakeLists.txt
:Warum llvm-build nicht benutzerdefinierte Back-End sehen?
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)
I Abd
zu LLVM_ALL_TARGETS
Variable in llvm/CMakeLists.txt
hinzufügen tryed, aber wenn ich versuche cmake
auszuführen, wird die folgende Fehlermeldung angezeigt wird:
llvm-build: error: invalid target to enable: 'Abc' not in project
Ich habe versucht auch Abc
zu entfernen llvm/CMakeLists.txt
und führen Sie cmake
mit -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=Abc
, aber das Ergebnis ist das gleiche.