2015-11-17 88 views
0

我正在研究llvm項目。最近我tryed使用下一個命令編譯器的使用鐺命令行下進入一個.s文件我.c文件之一:什麼是從clang傳遞給llc的參數?

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,但它沒有打印它如何調用後端...

+0

你看不到「鏗鏘聲如何調用後端(llc)」,因爲它不是。 llc是一個在某些IR上調用後端的命令行工具,但clang不會調用,其驅動程序將直接構建後端。 – Joky

回答

0

因此,第一個突出顯示的是,llc默認爲O2而不是O0,因此您可能想先看看那裏。

+0

我認爲需要從.bc文件選擇級別,因爲我無法將-O0傳遞給llc ... – yehudahs

+0

當然可以。看看llc -help。 – echristo

相關問題