3
我正在鏈接靜態庫,我想知道應該如何處理在llvm/Clang中的死代碼的剝離。我無法找到任何提示Clang具有一些等同於-Wl, - gc-section或-dead_strip的文檔。Clang在靜態鏈接期間刪除死代碼(gcc相當於-Wl, - gc-sections)
我認爲一些死代碼消除是在較高優化級別自動執行的,但gcc也是如此,對吧?然而,gcc通過上面提到的標誌提供了一些明確的控制。鏘沒有提供或我錯過了什麼?
(該系統是OSX)
'-fdce'可能指編譯器在每個函數內執行的類似優化*。編譯器能夠證明單個基本塊已經死亡是很常見的。 – zwol
是的抱歉,不清楚。我的「優化級別參數」被稱爲-fdce,我認爲這是由編譯器運行的,而不是由鏈接器運行。但是,感謝你的回覆 - 看起來dead_strip是傳遞給鏈接器的命令,它確實減小了二進制文件的大小(它只在gcc的手冊頁中記錄,而不是在叮噹聲中記錄),我應該一直在閱讀ld的手冊頁來獲取它接受的標誌,而不是期望編譯器手冊包含哪些標誌可以發送:))。 – kamjagin