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.

el_length
int el_length(elem* e)

Count number of elems in a tree

fillInDNunambig
void fillInDNunambig(vec_t v, elem* e)

Fill in the DefNode.DNumambig vector. Set bits defnod[] indices for entries which are completely destroyed when e is unambiguously assigned to.

findloopparameters
bool findloopparameters(elem* erel, elem* rdeq, elem* rdinc)
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
isLI
int isLI(elem* n)
Undocumented in source. Be warned that the author may not have intended to support it.
loopopt
void loopopt()

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

loopunroll
bool loopunroll(loop* l)
Undocumented in source. Be warned that the author may not have intended to support it.
makeLI
void makeLI(elem* n)
Undocumented in source. Be warned that the author may not have intended to support it.
symbol_isintab
char symbol_isintab(Symbol* s)
Undocumented in source. Be warned that the author may not have intended to support it.
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

Manifest constants

FLELIM
enum FLELIM;
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.

Structs

Iv
struct Iv
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
UnrollWalker
struct UnrollWalker

Unroll loop if possible.

famlist
struct famlist
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
loop
struct loop

Loop data structure.

Meta