稀疏有條件的常數傳播

在電腦科學的領域，稀疏有條件的常數傳播（sparse conditional constant propagation）是一個优化的技術，常用在以静态单赋值形式（SSA）進行最佳化的編譯器，它可以移除程式中一些無用的程式碼以及進行常數傳播。然而，它比起死碼刪除以及常數傳播更加的強大。Wegman, Mark N. and Zadeck, F. Kenneth. "Constant Propagation with Conditional Branches." ACM Transactions on Programming Languages and Systems, 13(2), April 1991, pages 181-210.Click, Clifford and Cooper, Keith. "Combining Analyses, Combining Optimizations", ACM Transactions on Programming Languages and Systems, 17(2), March 1995, pages 181-196

這個演算法在SSA中藉由實現程式碼的抽象释义來運作。在實現抽象釋義的過程中，它使用常數的格（Lattice）以及在全域環境對應SSA變數到這個格的數值，演算法的關鍵在於它如何處理分支指令的詮釋，當意外發生，分支的狀態盡可能評估最佳的方式，使綁定變數的抽象數值更加的精確。在需要數值要絕對精確的案例之下，抽象執行可以決定分支的方向。如果數值不是常數，或是一個變數在為定義的狀態，那麼兩個分支的方向必須都保留。

完成後的抽象表現，指令不會到達被標注為死碼的程式區段，SSA變數在常數會使用到的地方可能會以內連（inline）的方式實現。

 參考文獻 

 另見 
 Cooper, Keith D. and Torczon, Linda.  Engineering a Compiler.  Morgan Kaufmann.  2005.

Category:編譯器最佳化