freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

編譯原理之代碼生成-文庫吧在線文庫

2025-06-26 04:33上一頁面

下一頁面
  

【正文】 ?L1:print debugging information ?L2: 有兩個 GOTO 消除不可達(dá)指令 ?級聯(lián)跳轉(zhuǎn)代碼消除 ? 調(diào)試代碼(當(dāng) debug= 1時才運(yùn)行的程序片斷)的中間代碼形如: ?if debug==1 goto L1 ?goto L2 ?L1:print debugging information ?L2: ? 可替換為: ?if debug!=1 goto L2 ?print debugging information ?L2: 消除不可達(dá)指令 ?級聯(lián)跳轉(zhuǎn)代碼 ? 調(diào)試代碼可替換為: ?if debug!=1 goto L2 ?print debugging information ?L2: ? 如果已知 debug一定是 0,那么第一條指令替換成為goto L2;(比如,生成 release版本) ? 替換后,打印調(diào)試信息的所有指令變?yōu)椴豢蛇_(dá)指令,可刪除 控制流優(yōu)化 ?goto L1。 代碼生成器 ?根據(jù)三地址序列生成指令 ? 假設(shè):每個三地址指令只有一個對應(yīng)的機(jī)器指令 ? 有一組寄存器用于計算基本塊內(nèi)部的值; ?主要目標(biāo) ? 盡量減少加載和保存指令,即最大限度利用寄存器; ?寄存器主要使用方法 ? 執(zhí)行運(yùn)算時,運(yùn)算分量必須放在寄存器中; ? 用于臨時變量 ? 存放全局的值 ? 進(jìn)行運(yùn)行時刻管理(比如:棧頂指針) 算法基本思想及數(shù)據(jù)結(jié)構(gòu) ?盡可能留 ? 依次考慮各個指令,盡可能把值保留在寄存器中,以減少寄存器 /內(nèi)存之間的數(shù)據(jù)交換 ?盡可能用 ? 為一個三地址指令生成機(jī)器指令時,只有當(dāng)運(yùn)算分量不在寄存器中時,才從內(nèi)存載入; ? 盡量保證寄存器中值不被使用時,才把它覆蓋掉。 ? 殺死的意思--指不能參加優(yōu)化 指針賦值 /過程調(diào)用 ?通過指針進(jìn)行取值 /賦值: x=*p *q=y。 ? 入口到第一條指令有一條邊 ? 從任何可能最后執(zhí)行的基本塊到出口有一條邊 流圖繪制舉例 流圖的例子 ?因跳轉(zhuǎn)而生成的邊 ? B3?B3 ? B4?B2 ? B6?B6 ?因為順序而生成的邊 ? 其它 循環(huán) ?程序的大部分運(yùn)行時間花費在循環(huán)上 ?因此循環(huán)是識別的重點 ?循環(huán)的定義 ? 循環(huán) L是一個結(jié)點集合 ? 存在一個循環(huán)入口( loop entry)節(jié)點,其唯一的前驅(qū)可以是循環(huán) L之外的結(jié)點 ? 其余結(jié)點都存在到達(dá) L的入口的非空路徑,且路徑都在 L中。 ?如何為過程調(diào)用和返回生成代碼 ? 靜態(tài)分配 ? 棧式分配 活動記錄靜態(tài)分配 ?每個過程 靜態(tài) 地分配一個數(shù)據(jù)區(qū)域,開始位置用 staticArea表示 ?call callee的實現(xiàn) ? ST , here+20 ?//保存返回地址 ? BR ... ?callee中的語句 return ? BR * *為突出重點,經(jīng)常將活動記錄中其它的部分忽略。第八章 代碼生成 湖南大學(xué)計算機(jī)與通信學(xué)院(軟件學(xué)院) 代碼生成器的位置 ?根據(jù)中間表示生成代碼 ?代碼生成器之前可能有一個優(yōu)化組件 ?代碼生成器的三個任務(wù) ? 指令選擇:選擇適當(dāng)?shù)闹噶顚崿F(xiàn) IR語句 ? 寄存器分配和指派:把哪個值放在哪個寄存器中 ? 指令排序:按照什么順序安排指令執(zhí)行 主要內(nèi)容 ?代碼生成器設(shè)計中的問題 ?目標(biāo)機(jī)模型 ?靜態(tài) /棧式數(shù)據(jù)區(qū)分配 ?基本塊相關(guān)的代碼生成 ?簡單的代碼生成算法 ?窺孔優(yōu)化 ?設(shè)計目標(biāo): ? 生成代碼的正確性(最重要) ? 易于實現(xiàn)、測試和維護(hù) ?輸入 ?輸出 ?指令選擇 ?寄存器分配 ?計算順序 代碼生成器設(shè)計中的問題 ?輸入 ? 前端生成的源代碼的 IR(中間表示形式)及符號表信息 ? 中間表示形式的選擇 ? 四元式、三元式、字節(jié)代碼、堆棧機(jī)代碼、后綴表示、抽象語法樹、 DAG圖、 … ?輸出 ? RISC、 CISC; ? 可重定向代碼、匯編語言 代碼生成器設(shè)計中的問題 ?指令選擇 ?代碼生成器將中間表示形式映射為目標(biāo)機(jī)代碼 ?映射的復(fù)雜性由下列因素決定: ?IR的層次 ? 高:用代碼模板翻譯,但代碼質(zhì)量不高,需優(yōu)化 ? 低:利用低層次細(xì)節(jié)生成更高效的代碼 ?指令集體系結(jié)構(gòu)本身的特性 ?期望的目標(biāo)代碼質(zhì)量 代碼生成器設(shè)計中的問題 ?指令選擇 ?映射的復(fù)雜性由下列因素決定: ?IR的層次 ?指令集體系結(jié)構(gòu)本身的特性 ? 指令的統(tǒng)一性、完整
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1