0

我正在做 llvm 项目。最近,我尝试使用 clang 命令行将我的一个 .c 文件编译为 .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

它成功了!(?)我怎样才能看到clang如何调用后端(llc)?我尝试使用 -v 标志运行 clang,但它没有打印出它是如何调用后端的……

4

1 回答 1

0

所以第一个突出的是 llc 默认为 O2 而不是 O0 所以你可能想先看看那里。

于 2015-11-17T19:55:28.280 回答