內容簡介
本書介紹對現代體系結構的編譯器進行最佳化的方法,理論基礎是基於循環依賴的。分析基於依賴的變換的正確性論述和依賴測試的詳細過程。剖析怎樣擴展依賴去處理循環嵌套中的控制流以及跨越整個程式的過程。本書還討論怎樣能用依賴來回答現代計算機系統編譯中的眾多重要問題,包括支持不同類型體系結構(例如,向量、多處理器、超標量)的並行化,存儲層次結構的編譯器管理,帶指令級並行性的機器的指令調度。最後,介紹一些不大為人熟知的套用,如硬體設計、數組語言實現以及訊息傳遞系統的編譯。
設計具有高性能微處理器的現代計算機體系結構,能夠極大地提高計算機在性能方面的潛在優勢。然而其高度的複雜性使得產生有效代碼和實現其全部優勢變得愈加困難。這本出自兩位學術權威的具有里程碑意義的教科書,重點闡述了編譯器對於解決這個至關重要問題所起到的關鍵作用。
數據依賴是在高性能微處理器和並行體系結構上最佳化程式的基本編譯器分析工具。它能使所編寫的編譯器自動地將簡單的串列程式轉換成具有現代體系結構特徵的程式。數據依賴支持許多變換策略,也套用於一些重要的最佳化問題,本書對此做了全面介紹,並對基於數據依賴的編譯器最佳化的重要性和廣泛套用性進行了論證,給出了理解和實現它們所需要的基礎,同時還為手工轉換程式提供了詳細說明。
書中介紹的方法是基於過去二十多年的研究成果.取材於在美國rice大學的研究原型和幾個有關的商業系統中實現的策略。致力於現代計算機體系結構設計和最佳化編譯器的研究人員、業界專家和研究生都可以從本書中獲益。
目錄
第1章 高性能體系結構對編譯器的挑戰
1.1 概述和目標
1.2 流水線
1.2.1 流水線指令部件
1.2.2 流水線執行部件
1.2.3 並行功能部件
1.2.4 標量流水線編譯
1.3 向量指令
1.3.1 向量硬體概述
1.3.2 向量流水線編譯
1.4 超標量處理器和vliw處理器
1.4.1 多發射指令部件
1.4.2 多發射處理器的編譯
1.5 處理器並行性
1.5.1 處理器並行性概述
1.5.2 異步並行性的編譯
1.6 存儲層次結構
1.6.1 存儲系統概述
1.6.2 存儲層次結構的編譯
1.7 實例研究:矩陣乘法