GENERIC,GIMPLE和RTL



在編譯過程中,GCC使用了三種主要的中間語言來表示程序:GENERIC,GIMPLE和RTL。GENERIC是一種由每個前端生成的語言無關的表示。它用來作爲解析器和優化器之間的接口。GENERIC是一種通用表示,能夠表示GCC支持的所有語言程序。

GIMPLE和RTL用於優化程序。GIMPLE用於目標和語言無關的優化(例如,內聯,常數傳播,尾調用消除,冗餘消除等)。與GENERIC比較相似,GIMPLE是一種語言無關的樹型表示。不過,與GENERIC不同的是GIMPLE的語法有更多的限制:表達式不包含3個以上的操作數(函數調用除外),它沒有控制流程結構,並且具有副作用的表達式只允許出現在賦值語句的右端。詳情參見描述GENERIC和GIMPLE的章節。

這章描述在GIMPLE優化器(也被稱爲“樹優化器”或者“中端”)中使用的數據結構和函數。特別是側重於所有的宏,數據結構,函數和實現GIMPLE優化過程所需要的編程架構。

  • GENERIC: 一種高層次的語言無關的表示。
  • GIMPLE: 一種低層次的樹型表示。
  • 註解: 語句和變量的屬性。
  • 語句操作數: 由GIMPLE語句所引用的變量。
  • SSA: 靜態單賦值表示。
  • 別名分析: 加載和存儲的別名表示。

引用自:http://www.blogbus.com/public/tb.php/5671217/67098498/ff56e02b0367cb79cc66bfbcb9627a27

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章