2014-08-30 48 views
0

由於構建時間太長,我無法充分縮小導致internal compiler error: Segmentation fault的罪魁禍首(儘管我設法排除了LTO)。目前在GCC 4.8.2版本,4.8.3,4.9.1和,而不是一個錯誤,我懷疑剩下的各種優化策略之間的衝突:GCC:相互矛盾的優化

通用:最有可能無關,是爲了完整性

  • -pipe
  • -march =天然
  • -O3
  • -msse2
  • -mfpmath = SSE
  • -ffast-數學

石墨:關於存儲器訪問

  • -floop-交換
  • -floop-帶狀礦
  • -floop塊

石墨循環優化:不真的很有把握

  • -fgraphite身份

ISL:關於存儲器訪問和自動並行循環優化

  • -floop巢-優化

石墨:循環優化關於自動並行

  • -floop-parallelize-all
  • -ftree-parallelize-loops = 2

一組選項似乎共享顯着的功能重疊。如果這在編譯過程中可能導致了分段錯誤,我應該保留哪些選項以及爲了最大化性能而應該選擇哪個選項?

+0

嘗試用'-pipe -march = native -O2'建立並查看是否有效。如果是,請嘗試使用「-O3」,然後添加任何你想要的內容,直到它再次出現中斷爲止。並且請不要告訴我們你的構建時間太長,你不能這樣做......如果你的構建時間很長,那麼你可能並不需要這麼多深奧的選項。 :) – 2014-08-30 07:26:59

+0

段錯誤是當你運行編譯器,而不是當你運行你的代碼時,不是嗎? – Christophe 2014-08-30 08:00:31

+0

@Christophe oh sry,我的不好 – bolov 2014-08-30 08:02:48

回答

相關問題