я разрабатываю очень простой новый бэкэнд LLVM для RISC-машины (названный Risco ) на основе существующего бэкэнда Sparc и этого руководства . Для регистрации серверной части я использовал следующее.
В RiscoTargetMachine.cpp:
extern «C» void LLVMInitializeRiscoTarget () на основе существующей серверной части Sparc и этого руководства. Для регистрации бэкэнда я использовал следующее. В ... я разрабатываю очень простой новый бэкэнд LLVM для RISC-машины (названный Risco ) на основе существующего бэкэнда Sparc и этого руководства . Для регистрации серверной части я использовал следующее.
В RiscoTargetMachine.cpp:
extern «C» void LLVMInitializeRiscoTarget () на основе существующей серверной части Sparc и этого руководства. Для регистрации бэкэнда я использовал следующее. В ... я разрабатываю очень простой новый бэкэнд LLVM для RISC-машины (названный Risco ) на основе существующего бэкэнда Sparc и этого руководства . Для регистрации серверной части я использовал следующее.
В RiscoTargetMachine.cpp:
extern «C» void LLVMInitializeRiscoTarget ()
{
// Зарегистрируем цель.
RegisterTargetMachine X (TheRiscoTarget);
RegisterAsmInfo Y (TheRiscoTarget);
}
В Risco.td:
def: Processor ;
def Risco: Target {
// Вставить информацию об инструкции:
let InstructionSet = RiscoInstrInfo;
}
В TargetInfo / RiscoTargetInfo.cpp:
Целевой llvm :: TheRiscoTarget;
extern "C" void LLVMInitializeRiscoTargetInfo () {
RegisterTarget X (TheRiscoTarget, «Риско», «Риско»);
}
На верхнем уровне сценарий настройки LLVM:
# Добавлен Risco в переменную TARGETS_TO_BUILD в строке 4965 (из ствола svn):
all) TARGETS_TO_BUILD = "X86 Sparc PowerPC Alpha ARM Mips CellSPU PIC16 XCore MSP430 SystemZ Blackfin CBackend CppBackend MBlaze PTX Risco" ;;
После сборки llc -version
не отображает новую цель. Даже llc -march = risco test.ll
сообщает, что это недопустимая цель. Что мне не хватает?
PS: В настоящее время я включаю новую цель как папку внутри llvm / lib / Target. Как я могу это изменить, чтобы создать цель отдельно и загрузить ее динамически с помощью llc -load
?