dmd.backend.gother

Other global 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)

Look for initialization and increment expressions in loop. Very similar to intranges().

listrds
void listrds(vec_t IN, elem* e, vec_t f, Barray!(elem*)* rdlist)

Find all the reaching defs of OPvar e.

Structs

Elemdata
struct Elemdata
Undocumented in source.

Meta

License

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