ILP的基本編譯器技術

2021-10-03 01:13:01 字數 686 閱讀 4480

為使流水線保持滿載,必須找出可以在流水線中重疊的不相關指令序列,充分開發指令級並行。

為避免流水線停頓,必須將相關指令與源指令隔開一定時間週期,這一間隔應等於源指令的流水線延遲。

編譯器排程能力影響因素

程式中可用的ilp數量

流水線中功能單元的延遲

將迴圈體複製多次,調整迴圈的終止**。

目的:提高運算指令相對於分支和開銷指令的數目。

好處:展開後的迴圈暴露了更多可以排程的計算。

迴圈展開需進行的決策和變換

確認迴圈迭代不相關(迴圈維護**除外),判定迴圈展開是有用的。

使用不同暫存器,以避免由於不同運算使用相同暫存器而施加的非必要的約束(比如,名稱相關)。

去除多餘的測試和分支指令,並調整迴圈終止和迭代**。

對**進行排程,保留任何必要的相關,以得到和原**相同結果。

有三種不同效果會限制迴圈展開帶來的好處

每次展開操作分攤的開銷數目降低。

**規模限制

較大規模的迴圈,**規模增長會導致指令快取缺失率上公升。

編譯器限制

大量進行展開和除錯而造成的暫存器數量不足

.

編譯器的編譯基本過程

編譯器最基本的功能就是把高階語言 例如c fortran 編寫的 轉化為機器指令 就是01串 從這個角度來說它本質上是個轉換過程。經典的編譯過程主要包括 1 詞法分析 lexical analysis 語法分析的輸入是一連串的token 詞法分析的輸出 根據語言的語法規則不斷解析最後得到一棵抽象語法...

編譯原理 編譯器的編譯基本過程

原文出處 崤嶙的部落格 編譯器最基本的功能就是把高階語言 例如c fortran 編寫的 轉化為機器指令 就是01串 從這個角度來說它本質上是個轉換過程。經典的編譯過程主要包括 1 詞法分析 lexical analysis 2 語法分析 語法分析的輸入是一連串的token 詞法分析的輸出 根據語言...

即時編譯器優化技術。

型別 優化技術 編譯器策略 延遲編譯 分層編譯 棧上替換 延遲優化 程式依賴圖表示 基於效能監控的優化技術 樂觀空值斷言 樂觀型別斷言 樂觀型別增強 樂觀陣列長度增強 裁剪未被選擇的分支 樂觀的多型內聯 分支頻率 呼叫頻率 基於證據的優化技術 精確型別推斷 記憶體值推斷 記憶體值跟蹤 常量拆疊 重組...