對於在PowerPC平臺上使用IBM XL C/C++ 012her的源文件,我們正在體驗bad code generation。它的表面作爲一個懸掛,它似乎是一個特定的循環沒有被打破。IBM XL C/C++相當於#pragma GCC優化
該問題僅在XL C/C++下出現。我們的測試機制表明源文件清除了未定義的行爲,內存錯誤和其他勘誤。我們也沒有從源文件的編譯器收到嚴格/不嚴格的警告。
我們想編譯源文件-O2
而不是-O3
。我們希望將源碼文件(如附註)添加到源文件中,以便編譯器可以對其進行適當的保護。該工具允許其他人連接Cmake和Autotools等其他構建系統,並且事情對他們來說「正常工作」。 (必要的信息在源代碼中可用,而不是在我們的makefile中)。
編譯器的IBM手冊位於IBM XL C/C++ for AIX, V13.1,但該死的如果我能找到選項。
什麼是IBM XL C/C++相當於#pragma GCC optimize
?我們如何測試源代碼以告訴XL C/C++使用-O2
而不是-O3
?
Thanks @trudeaun。我認爲你對編譯器診斷是正確的。它看起來像一個GCC消息。關於'-O2',我們發現了疼痛點。它在[問題503](https://github.com/weidai11/cryptopp/issues/503)被清除。我猜這就是*「As If」*規則C++規則 - 編譯器編寫者被允許將功能正常的程序變成無法運行的程序:) – jww
關於堆棧溢出與IBM論壇,感謝您的監視。我沒有討論帳戶,我也不會加入另一個社交網絡,所以我無法使用該場所。如果IBM接受谷歌,Facebook等,那將會很不錯。但是我知道大多數公司都希望成爲收集信息的服務提供商;他們不想成爲必須放棄信息的依賴方。 – jww
再次感謝@trudeaun。我看到手動參考發生了什麼。您指出的信息在手冊中。但是,我從另一端開始工作:我在第441頁的手冊中找到了'option_override',然後我開始尋找圍繞441-445頁的優化選項。問題是,'「opt(level,2)」'在手冊的這個區域沒有討論。其他優化如'unroll'和'nameroll',但不是'「opt(level,2)」'。我想我仍然在學習使用手冊。 – jww