【问题标题】:what are the args that are being passed from clang to llc?从 clang 传递给 llc 的参数是什么?
【发布时间】: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


【解决方案1】:

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

【讨论】:

  • 我认为它需要 .bc 文件中的 opt 级别,因为我无法将 -O0 传递给 llc...
  • 当然可以。看看 llc -help。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-14
相关资源
最近更新 更多