【发布时间】:2015-11-17 08:55:10
【问题描述】:
我正在做 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,但它没有打印出它是如何调用后端的...
【问题讨论】:
-
您看不到“clang 如何调用后端 (llc)”,因为它不是。 llc是一个命令行工具,在一些IR上调用后端,但是clang不调用,它的驱动会直接构建后端。
标签: clang llvm llvm-clang llc