2013-08-06 37 views

回答

2

我沒有與它的經驗,我沒有試過,但我認爲下面的命令行應在DragonEgg 3.0版本工作及以上:

-fplugin=./dragonegg.so -O0 -fdse -fplugin-arg-dragonegg-enable-gcc-optzns -fplugin-arg-dragonegg-llvm-ir-optimize=2 -fplugin-arg-dragonegg-emit-ir -S

  • -fplugin=./dragonegg.so使DragonEgg
  • -O0關閉所有GCC優化過程
  • -fdse開啓消除GCC死存儲
  • -fplugin-arg-dragonegg-enable-gcc-optzns使GCC的優化在DragonEgg
  • -fplugin-arg-dragonegg-llvm-ir-optimize=2力量LLVM以優化-O2,而不是按照海合會優化級別
  • -fplugin-arg-dragonegg-emit-ir產生LLVM IR代替asm,它根據問題是你想要的這裏
  • -S因爲你有時需要它當你使用-fplugin-arg-dragonegg-emit-ir

而且這應該適用於任何GCC tree pass

如果您需要更細粒度的控制,您可以調整DragonEgg:正確的編輯位置是函數Backend.cpp - 您可以精確地看到它如何設置通行證在那裏運行。