0

私はllvmプロジェクトに取り組んでいます。最近、次のコマンドを使用して、clang コマンド ラインを使用して .c ファイルの 1 つを .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 のデフォルトが O0 ではなく O2 であるため、最初にそこを確認することをお勧めします。

于 2015-11-17T19:55:28.280 に答える