[問題] 用O3是不是不夠安全

看板C_and_CPP (C/C++)作者 (熱)時間14年前 (2011/08/26 14:04), 編輯推噓5(5022)
留言27則, 11人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Linux gcc version 4.4.5 (Gentoo 4.4.5 p1.2, pie-0.4.5) 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 沒有 問題(Question): 常聽人說g++配合-O3較不安全 (是說會產生莫名的問題!?) 一般都用到-O2,現在這個說法還是正確的嗎 網路上寫O3會多打開: -finline-functions, -funswitch-loops, -fpredictive-commoning, -fgcse-after-reload, -ftree-vectorize -fipa-cp-clone options 不知道究竟是上面每一個都不安全還是只是其中一個不安全 我現在只想用-O2多配合-funswitch-loops來加速就好,會是安全的嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.166.99.217

08/26 15:21, , 1F
有阿,打開O3,當array超出邊界時,照樣給你跑
08/26 15:21, 1F

08/26 15:50, , 2F
會出問題通常都是因為你寫了undefined behavior
08/26 15:50, 2F

08/26 15:53, , 3F
這倒是真的.
08/26 15:53, 3F

08/26 17:09, , 4F
無論如何都要照著標準寫,千萬不要用任何的undefined 行為
08/26 17:09, 4F

08/26 17:10, , 5F
標準是編譯器優化的最後底線.... #COSCUP 聽到的XD
08/26 17:10, 5F

08/26 17:37, , 6F
想說compiler發展了那麼多年 出問題應該都是從自己本身的bug
08/26 17:37, 6F

08/26 18:00, , 7F
你可以當成是自己問題(沒照標準),也可以當成是標準問題
08/26 18:00, 7F

08/26 18:03, , 8F
(難懂又不定清楚),或是編譯器問題(把自由無限上綱),
08/26 18:03, 8F

08/26 18:04, , 9F
或是大家的問題(只在乎效率逼編譯器不擇手段)...
08/26 18:04, 9F

08/26 18:15, , 10F
@xatier: 哈哈看前半句還以為你是看 #1EJyhPy7 xD
08/26 18:15, 10F

08/26 21:48, , 11F
要寫程式安全,要靠開發團隊自己做測試用心改才是正途
08/26 21:48, 11F

08/26 21:53, , 12F
樓上,那也要rd願意聽測試工程師的話.可惜的是大家都想
08/26 21:53, 12F

08/26 21:53, , 13F
早點上班
08/26 21:53, 13F

08/26 21:57, , 14F
大家都想早點上班 囧?
08/26 21:57, 14F

08/26 22:00, , 15F
XD
08/26 22:00, 15F

08/26 22:01, , 16F
上班<--改成下班
08/26 22:01, 16F

08/26 22:10, , 17F
不管了... 目前-O3可快10%似乎值得一搏 我要交件休息去了 XD
08/26 22:10, 17F

08/26 22:10, , 18F
感謝大家的意見~ 謝謝
08/26 22:10, 18F

08/27 03:41, , 19F
加十趴是因為-ftree-vectorize 吧?
08/27 03:41, 19F

08/27 09:50, , 20F
新版有O4喔!你可以挑戰極限.
08/27 09:50, 20F

08/27 09:59, , 21F
O4存在一陣子了,效果跟O3完全一樣XD. 新版增加的是Ofast
08/27 09:59, 21F

08/27 12:11, , 22F
Ofast意思是「請不擇手段加速,稍微違反標準也無所謂」xDD
08/27 12:11, 22F

08/27 12:12, , 23F
樓上兩樓的ID好像 XDD
08/27 12:12, 23F

08/27 12:50, , 24F
反正原po也不管以後debug到死,那他就玩O4吧
08/27 12:50, 24F

08/28 01:54, , 25F
10%全來自-funswitch-loops 所以最後就只多加這個...
08/28 01:54, 25F

08/28 01:58, , 26F
其實那程式也只是一個軟體設計比賽 28個測資都通過 就賭下了
08/28 01:58, 26F

08/28 02:02, , 27F
最多就賠上了我們的小團隊... 不會害到其他人 XD
08/28 02:02, 27F
文章代碼(AID): #1ELpTtuz (C_and_CPP)
文章代碼(AID): #1ELpTtuz (C_and_CPP)