Difference between revisions of "WG211/M21Blazy"

From WG 2.11
Jump to: navigation, search
(Created page with " Static Single Assignment (SSA) has proven useful for implementing many static-analysis and optimisation passes, thanks to its structural and semantic properties. However,...")
 
 
Line 1: Line 1:
Static Single Assignment (SSA) has proven useful for implementing
+
Static Single Assignment (SSA) has proven useful for implementing
  many static-analysis and optimisation passes, thanks to its
+
many static-analysis and optimisation passes, thanks to its
  structural and semantic properties. However, SSA phi-instructions
+
structural and semantic properties. However, SSA phi-instructions
  depend on control-flow, whereas many advanced analysis passes are
+
depend on control-flow, whereas many advanced analysis passes are
  data-flow dependent, limiting these inherently.  One
+
data-flow dependent, limiting these inherently.  One
  solution is to use a richer intermediate representation, namely
+
solution is to use a richer intermediate representation, namely
  Gated-SSA, which partially transforms control-flow dependencies into
+
Gated-SSA, which partially transforms control-flow dependencies into
  data-dependencies, and encode enough information to make the
+
data-dependencies, and encode enough information to make the
  semantics of phi-instructions independent of
+
semantics of phi-instructions independent of
  control-flow. Gated-SSA has been successfully applied in various
+
control-flow. Gated-SSA has been successfully applied in various
  practical contexts of optimising compilation, and yet, no reference
+
practical contexts of optimising compilation, and yet, no reference
  implementation or semantics have been described in the literature.
+
implementation or semantics have been described in the literature.
  
  In this talk, we formulate an operational semantics for Gated-SSA.
+
In this talk, we formulate an operational semantics for Gated-SSA.
  We also provide a formal specification of a translation from SSA to
+
We also provide a formal specification of a translation from SSA to
  Gated-SSA, and we prove it is semantics preserving. To demonstrate
+
Gated-SSA, and we prove it is semantics preserving. To demonstrate
  the practicality of our approach, we implement this specification as
+
the practicality of our approach, we implement this specification as
  a translation pass within the CompCertSSA compiler, which is
+
a translation pass within the CompCertSSA compiler, which is
  formally verified in Coq.
+
formally verified in Coq.

Latest revision as of 10:17, 2 August 2022

Static Single Assignment (SSA) has proven useful for implementing many static-analysis and optimisation passes, thanks to its structural and semantic properties. However, SSA phi-instructions depend on control-flow, whereas many advanced analysis passes are data-flow dependent, limiting these inherently. One solution is to use a richer intermediate representation, namely Gated-SSA, which partially transforms control-flow dependencies into data-dependencies, and encode enough information to make the semantics of phi-instructions independent of control-flow. Gated-SSA has been successfully applied in various practical contexts of optimising compilation, and yet, no reference implementation or semantics have been described in the literature.

In this talk, we formulate an operational semantics for Gated-SSA. We also provide a formal specification of a translation from SSA to Gated-SSA, and we prove it is semantics preserving. To demonstrate the practicality of our approach, we implement this specification as a translation pass within the CompCertSSA compiler, which is formally verified in Coq.