
窺孔優(yōu)化 窺孔(peephole)是程序上的一個(gè)小的滑動(dòng)窗口 窺孔優(yōu)化是指在優(yōu)化的時(shí)候拧篮,檢查目標(biāo)指令的一個(gè)滑動(dòng)窗口( 即窺孔) 谆棱,并且只要有可能...
寄存器選擇函getReg 計(jì)算R的“費(fèi)用” 寄存器Rx的選擇 x = y op z
三地址語句的目標(biāo)代碼生成 對(duì)每個(gè)形如x = y op z 的三地址指令I(lǐng)泛鸟,執(zhí)行如下動(dòng)作 寄存器描述符和地址描述符 寄存器描述符(register...
運(yùn)算語句的目標(biāo)代碼 數(shù)組尋址語句的目標(biāo)代碼 指針存取語句的目標(biāo)代碼 條件跳轉(zhuǎn)語句的目標(biāo)代碼 過程調(diào)用和返回的目標(biāo)代碼
一個(gè)簡(jiǎn)單的目標(biāo)機(jī)模型 三地址機(jī)器模型 加載盗棵、保存掂为、運(yùn)算缘挽、跳轉(zhuǎn)等操作內(nèi)存按字節(jié)尋址n個(gè)通用寄存器R0, R1, …, Rn-1假設(shè)所有的運(yùn)算分量都...
代碼生成器的主要任務(wù) 指令選擇 選擇適當(dāng)?shù)哪繕?biāo)機(jī)指令來實(shí)現(xiàn)中間表示(IR)語句 寄存器分配和指派 把哪個(gè)值放在哪個(gè)寄存器中 指令排序 按照什么順...
作用于歸納變量的強(qiáng)度削弱 對(duì)于一個(gè)變量x瞄崇,如果存在一個(gè)正的或負(fù)的常量c,使得每次x被賦值時(shí)壕曼,它的值總是增加c苏研,則稱x為歸納變量。 如果循環(huán)L中的...
代碼移動(dòng) 所謂代碼移動(dòng)就是對(duì)于代碼中的不變計(jì)算腮郊,將其移動(dòng)到循環(huán)之外摹蘑,在進(jìn)入循環(huán)之前就進(jìn)行計(jì)算。因此代碼移動(dòng)就涉及到兩方面的計(jì)算: 循環(huán)不變計(jì)算的...
刪除全局公共子表達(dá)式 可用表達(dá)式的數(shù)據(jù)流問題可以幫助確定位于流圖中p點(diǎn)的表達(dá)式是否為全局公共子表達(dá)式 全局公共子表達(dá)式刪除算法 刪除復(fù)制語句 刪...