Какие арги передаются из Clang в llc?
Я работаю над проектом llvm. Недавно я попытался скомпилировать один из моих файлов.c с помощью командной строки clang в файл.s с помощью следующей команды:
clang --target=arch -S -O0 select.c -o select.s
и произошел сбой в бэкэнде в функции ARCHInstrInfo::storeRegToStackSlot с обратным следом стека. Однако, когда я попытался сделать это поэтапно:
clang -O0 -emit-llvm select.c -c -o select.bc
llc -filetype=asm -march=arch ./select.bc -o ./select.s -print-after-all -debug-only isel
это удалось!! (?) Как я могу увидеть, как лязг звонит бэкенду (llc)? Я попытался запустить clang с флагом -v, но он не печатал, как он вызывает бэкэнд...
1 ответ
Итак, первое, что бросается в глаза, - это то, что по умолчанию используется значение O2, а не O0, так что вы можете посмотреть сначала.