2016-08-12 3 views
2

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.

Antwort

3

Das Problem war, dass ich Abc zu subdirectories in llvm/lib/Target/LLVMBuild.txt nicht hinzugefügt habe.

Verwandte Themen