概述
在不改變程式運行效果的前提下,對被編譯的程式進行等價變換,使之能生成更加高效目標代碼。
代碼最佳化過程
等價:不改變程式執行效果;
變換:引起程式形式上的變動.
途徑
改進、提高程式途徑:
1) 改進算法;
2) 在源程式級上等價變換;
3) 充分利用系統提供的程式庫;
4) 編譯時最佳化等。
為什麼要實施最佳化
最佳化程度是編譯器的一個重要技術、質量目標;
無法苛求用戶對源語言的掌握,編程技巧.編寫源程式的最佳化;
編譯程式固有的缺陷:不是面對一個或一類具體問題的程式,而是統一處理該語言的各種源程式,無法盡善盡美。
最佳化所涉及的源程式的範圍
局部最佳化 — 基本塊內最佳化;
循環最佳化 — 隱式、顯式循環體內最佳化;
全局最佳化 — 一個源程式範圍內最佳化;
最佳化相對於編譯邏輯功能實現的階段,中間代碼級 — 目標代碼生成前的最佳化;目標代碼級 — 目標代碼生成後的最佳化。
具最佳化功能編譯器的組織