什麼是行內展開
將函式的呼叫替換成被呼叫函式本體的最佳化。省去呼叫的負擔,也使其他最佳化更容易生效,但程式碼會變大。
日文名稱: インライン展開
「行內展開」出現在1領域的4道練習題中(編譯器等)。
這個名詞所屬的領域: 編譯器
將函式的呼叫替換成被呼叫函式本體的最佳化。省去呼叫的負擔,也使其他最佳化更容易生效,但程式碼會變大。
日文名稱: インライン展開
「行內展開」出現在1領域的4道練習題中(編譯器等)。
這個名詞所屬的領域: 編譯器
行內展開會把函式主體嵌入取代呼叫,因此引數傳遞、分支與返回的開銷都消失了。
關於函式行內展開(inline expansion)的優點與缺點,下列組合何者正確?將 sq 行內展開後,g 的內容會變成 return 6 * 6 + 1;,乘法的運算元全部成為常數。
在上方程式碼中,將 sq 行內展開之後接著生效的最佳化,以及其結果,下列何者正確?接著利用這些資訊重新編譯,把常走的路徑排成一直線,或將經常被呼叫的函式行內展開,進行符合實際使用方式的最佳化。
關於使用剖析資料的最佳化(PGO)的說明,下列何者正確?在一般的編譯中,原始檔是一個一個分別轉換為機器碼,因此看不到其他檔案中函式的內容,無法進行跨檔案的行內展開與常數傳播。
下列何者最適合作為連結時最佳化(LTO)所能實現的最佳化?常數摺疊 中間表示法(IR) 共同子運算式消除 向量化 抽象語法樹(AST) 指令排程 迴圈展開 基本區塊 強度削減 控制流程圖