編譯器
在編譯器的暫存器配置中,使用對干涉圖著色(染色)的方法時,圖中的節點與邊所代表的事物,下列組合何者正確?
- A節點是指令,邊是指令的執行順序
- B節點是暫存器,邊是暫存器之間的連線
- C節點是值,邊是同時存活的關係
查看答案與解析
正確答案:C. 節點是值,邊是同時存活的關係
在干涉圖中,以變數或中間值為節點,並用邊連接在某個時間點兩者都還會被使用(存活)的兩個值。以邊相連的值需要同時存在,所以不能放入同一個暫存器。若暫存器有k個,且能以k種顏色著色,使相鄰的節點不會同色,就能把顏色直接對應到暫存器來配置。無法著色時,則把部分的值退避到記憶體(溢出,spill)。它不是表示指令順序或暫存器連線的圖。
- A. 這不是表示指令順序的圖。
- B. 這不是表示暫存器連線的圖。
- C. 正確。用邊連接同時存活的值。