什麼是SSA形式(靜態單賦值形式)

重新命名變數,使每個變數在程式中恰好只被賦值一次的中間表示法形式。在匯合點以φ函數選擇值。定義與使用的關係變得明確,容易進行最佳化。

日文名稱: SSA形式

「SSA形式(靜態單賦值形式)」出現在1領域的2道練習題中(編譯器等)。

這個名詞所屬的領域: 編譯器

練習SSA形式(靜態單賦值形式)的題目

關於SSA形式中介表示的特徵,下列何者正確?

  1. A對每個變數的指派在程式中恰好只有一次
  2. B所有變數都放在記憶體上,而不是暫存器
  3. C被改寫成完全不含條件分支指令的形式
查看答案與解析

正確答案:A. 對每個變數的指派在程式中恰好只有一次

在SSA形式中,會重新命名變數使每個變數只被指派一次,並在匯合點以φ函數選擇值。例如x被指派兩次時,會分成x1與x2,以明確區分使用的是哪一個。由於定義與使用的關係變得清楚,因此容易進行常數傳播與刪除無用程式碼等最佳化。分支由φ函數處理,所以並不是分支指令就此消失。變數也不是放在記憶體中,多半是作為暫存器的候選來處理。

解析中的「SSA形式(靜態單賦值形式)」

出現「SSA形式(靜態單賦值形式)」的題目(2題)

  1. 關於SSA形式中介表示的特徵,下列何者正確?
  2. 將上方程式碼轉為SSA形式後,if敘述之後會加入類似「x3 = φ(x1, x2)」的式子。關於此φ函數的作用,下列何者正確?

相關名詞

中間表示法(IR) 共同子運算式消除 向量化 行內展開 抽象語法樹(AST) 指令排程 迴圈展開 基本區塊 常數摺疊 強度削減

前往名詞解釋列表