dmd.backend.gloop

Global loop optimizations

Compiler implementation of the D programming language.

Members

Functions

blockinit
bool blockinit()

Initialize block information.

compdom
void compdom()

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.

dom
bool dom(block* A, block* B)

Test if block A dominates block B.

loopopt
void loopopt()

Loop invariant and induction variable elimination. Input: iter which optimization iteration we are on

loopunroll
bool loopunroll(Loop l)

Unroll loop if possible.

updaterd
void updaterd(elem* n, vec_t GEN, vec_t KILL)

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

Structs

Loop
struct Loop

Loop data structure.

Meta