Initialize block information.
Compute dominators (Bdom) for each block. See Aho & Ullman Fig. 13.5. Note that flow graph is reducible if there is only one pass through the loop. Input: dfo[] Output: fills in the Bdom vector for each block
Return !=0 if block A dominates block B.
Count number of elems in a tree
Fill in the DefNode.DNumambig vector. Set bits defnod[] indices for entries which are completely destroyed when e is unambiguously assigned to.
Loop invariant and induction variable elimination. Input: iter which optimization iteration we are on
Unroll loop if possible.
Update rd vector. Input: n assignment elem or function call elem or OPasm elem rd reaching def vector to update (clear bits for defs we kill, set bit for n (which is the def we are genning)) vecdim go.defnod.length
Compiler implementation of the D programming language.