2011-10-25 31 views
6

Gcc的-fdump-tree-optimized選項將C代碼的優化版本轉儲爲C文件。有沒有一種方法可以使用intel的icc編譯器做同樣的事情?Intel icc:如何將優化的代碼轉儲爲C文件

我有一個矩陣乘法代碼,我編譯爲icc -O3 -ipo mult.c。我想查看編譯器如何執行優化。如果什麼都不起作用,那麼我將生成該程序的彙編代碼。

+0

如果這是針對真正的應用程序而不是個人樂趣,那麼使用實現通用矩陣乘法的現有庫(如GNU科學庫或其他)可以更好地實現(在性能和開發時間方面) BLAS庫的實現 – TJD

+0

Nopes,這是一個教導編譯器優化和類似主題的類項目的一部分。 – jitihsk

回答

2

從技術上講,-fdump-tree-optimized不會轉儲C表示,而是GCC中使用的Gimple代碼的文本部分表示(Gimple是指令的中間內部表示,大多數GCC目標獨立優化傳遞將在其中執行) 。

icc是專有編譯器(黑盒),所以從其提供者的角度來看,對於演示icc的工作原理,對於英特爾來說並不有趣。

GCC有能力顯示其內部表示,因爲它是一個免費軟件。專有編譯器不想顯示它們的工作方式。

如果這是一個類,也可以嘗試LLVM。 (但我不知道如何轉儲內部表示)。

更重要的是,如果這是一個班級,您可能會建議您的學生使用GCC 4.6開發一個插件或GCC MELT擴展來探索和實驗優化。 MELT是擴展GCC的高級別領域特定語言,它提供了許多功能來緩解這些任務。