View source code
Display the source code in dmd/e2ir.d from which this page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.

Module dmd.e2ir

Converts expressions to Intermediate Representation (IR) for the backend.




addressElem(e, t, alwaysCopy) Take address of an elem. Accounts for e being an rvalue by assigning the rvalue to a temp.
array_toDarray(t, e) Convert array to a dynamic array.
array_toPtr(t, e) Convert array to a pointer to the data.
buildArrayBoundsError(irs, loc, lwr, upr, elength) Construct elem to run when an array bounds check fails.
callCAssert(irs, loc, exp, emsg, str) Generate call to C's assert failure function. One of exp, emsg, or str must not be null.
clearStringTab() Reset stringTab[] between object files being emitted, because the symbols are local.
elAssign(e1, e2, t, tx) Generate a copy from e2 to e1.
elemIsLvalue(e) Return true if elem is a an lvalue. Lvalue elems are OPvar and OPind.
genHalt(loc) Generate HALT instruction.
getTypeInfo(loc, t, irs)
needsDtor(t) Determine if t is a struct that has destructor.
needsPostblit(t) Determine if t is a struct that has postblit.
sarray_toDarray(loc, tfrom, tto, e)
setEthis2(loc, irs, fd, ethis2, ethis, eside) Initialize the dual-context array with the context pointers.
toElemDtor(e, irs) Convert Expression to elem, then append destructors for any temporaries created in elem.
toStringSymbol(str, len, sz) Write read-only string to object file, create a local symbol for it. Makes a copy of str's contents, does not keep a reference to it.
toStringSymbol(se) Turn StringExp into Symbol.
toTraceGC(irs, e, loc) Replace call to GC allocator with call to tracing GC allocator.
type_zeroCopy(t) Determine if zero bits need to be copied for this backend type


Walter Bright


Boost License 1.0