由於構建時間太長,我無法充分縮小導致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
一組選項似乎共享顯着的功能重疊。如果這在編譯過程中可能導致了分段錯誤,我應該保留哪些選項以及爲了最大化性能而應該選擇哪個選項?
嘗試用'-pipe -march = native -O2'建立並查看是否有效。如果是,請嘗試使用「-O3」,然後添加任何你想要的內容,直到它再次出現中斷爲止。並且請不要告訴我們你的構建時間太長,你不能這樣做......如果你的構建時間很長,那麼你可能並不需要這麼多深奧的選項。 :) – 2014-08-30 07:26:59
段錯誤是當你運行編譯器,而不是當你運行你的代碼時,不是嗎? – Christophe 2014-08-30 08:00:31
@Christophe oh sry,我的不好 – bolov 2014-08-30 08:02:48