Static single-assignment form: Difference between revisions

Content deleted Content added
Dcoetzee (talk | contribs)
See also: Link from talk page about GCC
Compilers using SSA form: incorrect terminology - replaced "heap array SSA" by "extended array SSA"
Line 103:
* As of summer [[2004]], the [[GNU Compiler Collection]] has been updated to use SSA form. The [[frontend]]s generate [[GENERIC]] code which is then converted into SSA form by the "[[gimplifier]]" and optimized by the "[[middle-end]]". The [[backend]] eventually translates the optimized intermediate code into [[Register Transfer Language|RTL]], executes some more low-level optimizations and finally turns RTL into [[assembly language]]. The first official release supporting SSA is 4.0, released in April [[2005]].
 
* [[IBM]]'s open source adaptive [[Java virtual machine]], [http://jikesrvm.sourceforge.net/ Jikes RVM], uses Heapextended Array SSA, an extension of SSA that allows analysis of scalars, arrays, and object fields in a unified framework. HeapExtended Array SSA analysis is only enabled at the maximum optimization level, which is applied to the most frequently executed portions of code.
 
* [http://jackcc.sf.net jackcc] is an open-source compiler for the academic instruction set Jackal 3.0. It uses a simple 3-operand code with SSA for its intermediate representation. As an interesting variant, it replaces <math>\Phi</math> functions with a so-called SAME instruction, which instructs the register allocator to place the two live ranges into the same physical register.