ZHCUAV8W january 1998 – march 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , OMAP-L132 , OMAP-L137 , OMAP-L138 , SM470R1B1M-HT , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
當使用 --opt_level=3 選項(別名為 -O3)進行優化時,編譯器自動內聯小函數。命令行選項 --auto_inline=size 指定自動內聯的大小閾值。此選項僅控制未明確聲明為內聯的函數的內聯。
當未使用 --auto_inline 選項時,編譯器根據優化級別和優化目標(性能與代碼大小)設置大小限制。如果 -auto_inline size 參數設置為 0,則禁用自動內聯擴展。如果 --auto_inline size 參數設置為非零整數,則編譯器自動內聯任何小于 size 的函數。(這是對以前版本的更改;以前的版本會內聯那些函數大小與函數調用次數的乘積小于size 的函數。新方案更簡單,但通常會對給定的 size 值進行更多的內聯。)
編譯器以任意單位測量函數的大??;但是,優化器信息文件(使用 --gen_opt_info=1 或 --gen_opt_info=2 選項創建)報告 --auto_inline 選項使用的相同單位中每個函數的大小。當使用 --auto_inline 時,編譯器不會試圖阻止導致編譯時間或大小過度增長的內聯;故請小心使用。
當未使用 --auto_inline 選項時,在特定調用點內聯函數的決策是基于試圖優化效益和成本的算法。編譯器在調用點內聯符合條件的函數,直至達到有關大小或編譯時間的限制。
內聯行為因指定的編譯時選項而異:
有關影響內聯的命令行選項、pragma 和關鍵字之間的交互信息,請參閱節 2.11。