gcc o3⽐o2更進⼀步的進⾏優化。
o3在包含了o2所有的優化的基礎上,⼜打開了以下優化選項:
l -finline-functions:內聯簡單的函數到被調⽤函數中。由編譯器啟發式的決定哪些函數⾜夠簡單可以做這種內聯優化。默認情況下,編譯器限制內聯的尺⼨,3.4.6中限制為600(具體含義不詳,指令條數或代碼size)可以通過-finline-limit=n改變這個長度。這種優化技術不為函數創建單獨的彙編語⾔代碼,⽽是把函數代碼包含在調度程序的代碼中。對於多次被調⽤的函數來説, 為每次函數調⽤複製函數代碼。雖然這樣對於減少代碼長度不利, 但是通過最充分的利⽤指令緩存代碼, ⽽不是在每次函數調⽤時進⾏分⽀操作, 可以提⾼性能。