dmd.backend.gother

Other data flow analysis based optimizations.

Members

Aliases

Elemdatas
alias Elemdatas = Rarray!(Elemdata)

Functions

constprop
void constprop()

Constant propagation. Also detects use of variable before any possible def.

copyprop
void copyprop()

Do copy propagation. Copy propagation elems are of the form OPvar=OPvar, and they are in go.expnod[].

deadvar
void deadvar()

Mark all dead variables. Only worry about register candidates. Compute live ranges for register candidates. Be careful not to compute live ranges for members of structures (CLMOS).

elimass
void elimass(elem* n)

Remove side effect of assignment elem.

find
Elemdata* find(Elemdatas eds, elem* e)

Find e in Elemdata list.

findloopparameters
bool findloopparameters(elem* erel, elem* rdeq, elem* rdinc)
Undocumented in source. Be warned that the author may not have intended to support it.
listrds
void listrds(vec_t IN, elem* e, vec_t f, Barray!(elem*)* rdlist)

Find all the reaching defs of OPvar e.

rmdeadass
void rmdeadass()
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.
verybusyexp
void verybusyexp()
Undocumented in source. Be warned that the author may not have intended to support it.

Structs

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

Meta

License

Distributed under the Boost Software License, Version 1.0. http://www.boost.org/LICENSE_1_0.txt