dmd.backend.gloop

Compiler implementation of the D programming language.

Members

Functions

blockinit
int 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. Input: dfo[] Output: fills in the Bdom vector for each block

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

Return !=0 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

Suggestion Box / Bug Report