dmd.backend.cgelem

Compiler implementation of the D programming language.

Does strength reduction optimizations on the elem trees, i.e. rewriting trees to less expensive trees.

Members

Functions

REGSIZE
int REGSIZE()
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
doptelem
elem* doptelem(elem* e, goal_t goal)

Optimize and canonicalize an expression tree. Fiddle with double operators so that the rvalue is a pointer (this is needed by the 8086 code generator).

elddtor
elem* elddtor(elem* e, goal_t goal)

Handle OPddtor

elemisnegone
int elemisnegone(elem* e)
elemisone
int elemisone(elem* e)
elmsw
elem* elmsw(elem* e, goal_t goal)

Handle OPmsw.

elpair
elem* elpair(elem* e, goal_t goal)

Handle OPpair, OPrpair.

elstruct
elem* elstruct(elem* e, goal_t goal)

See if we can replace struct operations with simpler ones. For OPstreq and OPstrpar.

evalu8
elem* evalu8(elem* e, goal_t goal)
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
fillinops
bool fillinops(elem** ops, int* opsi, int maxops, int oper, elem* e)

Fill in opsmaxops with operands of repeated operator oper.

mem_calloc
void* mem_calloc(size_t )
Undocumented in source but is binding to C. You might be able to learn more by searching the web for its name.
postoptelem
void postoptelem(elem* e)

Do optimizations after bltailrecursion() and before common subexpressions.

swaprel
OPER swaprel(OPER op)

Swap relational operators (like if we swapped the leaves).

Manifest constants

CHARMASK
enum CHARMASK;
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
INTMASK
enum INTMASK;
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
LLONGMASK
enum LLONGMASK;
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
LONGMASK
enum LONGMASK;
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
SHORTMASK
enum SHORTMASK;
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
ZEROLL
enum ZEROLL;
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.

Meta