將抽象語法樹表達式轉換爲SSA基本塊需要以線性順序寫出表達式中的所有操作,例如, x * y + 1
按此順序轉換爲包含*
和+
的操作列表。在基本塊中包含原子值
通常在操作列表中包含變量和文字提取?即以上是否應列出長度爲2或5的列表?
在一方面,加載全局變量的值,或一個恆定,到寄存器是將最終不得不被調度的操作。
在另一方面,決定什麼樣的價值觀將生活在寄存器中的東西通常過程中或SSA形式轉換離開後進行。第三方面,在線性序列中包含原子值意味着您可以通過迭代基本塊和操作來回答諸如「該函數訪問什麼全局變量」這樣的問題,而不必遍歷每個操作的參數。
是否還有其他我缺少的注意事項?
澄清:局部變量名一般消失在SSA(有沒有必要對他們來說,你可以只使用一個直接指針,以生成該值的操作)。我在想事情還是需要的名字 - 常量,全局變量名,局部變量,其地址已被採取等