【導(dǎo)讀】構(gòu)造代碼生成程序要考慮的因素。成特定機器的目標代碼。代碼生成器的輸入。–待裝配的機器語言模塊。當需要執(zhí)行時,由。尚需經(jīng)過匯編程序匯編,轉(zhuǎn)。用兩個或多個不同的指令序列完成。指令選擇器選擇其中。通常情況下,指令在寄存器中訪問操作數(shù)的開。取入到寄存器中。作數(shù)保存在寄存器中是比較有利的。寄存器的分配可以分成兩個子問題:。留在寄存器中的一組變量;留的具體寄存器。保留在寄存器中直到寄存器不夠分配為止。變量值時可減少對內(nèi)存的存取次數(shù),以提高運行速度;在同一基本塊內(nèi)后邊不再被引用的變量所占用的寄存器。應(yīng)盡早釋放,以提高寄存器的利用率。–確定分配有寄存器的值應(yīng)該在哪個寄存器中。由于一些目標機可能具有不同類型的寄存器,不同在于指令順序和寄存器的賦值。若先進行調(diào)度,寄存器趨向于過度分配;若先。引用則可構(gòu)成待用信息鏈與活躍信息鏈。這里假定變量都是活躍的,臨時變量都是非。息欄置為“活躍”。注意,以上a)和b),c)和d)的次序不能顛倒。