Foundationপ্রথম নীতি থেকে
LEVEL 5 · Compilers

Static Single Assignment

স্ট্যাটিক সিঙ্গেল অ্যাসাইনমেন্ট

IR-এর এমন শৃঙ্খলা — প্রতিটা variable ঠিক একবার assign হয়; branch merge-এ phi function version বেছে নেয়।

also: SSA

x = 1;              x0 = 1
if (c)  x = 2;  ⇒   x1 = 2
use(x)              x2 = φ(x0, x1)
                    use(x2)
  • Def-use chain free: variable-এর নামই তার definition — use→def pointer chase লাগে না
  • Constant propagation, dead code elimination, GVN — SSA-তে সবগুলো সরল ও local
  • Construction: dominance frontier algorithm; destruction (out of SSA): phi → parallel copy → coalescing (regalloc-এর সাথে মিলে)
  • প্রায় সব modern compiler backend (LLVM, GCC GIMPLE, V8 TurboFan) SSA-ভিত্তিক