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
a local clone.
dmd.e2ir
Converts expressions to Intermediate Representation (IR) for the backend.
Authors:
License:
Source e2ir.d
Documentation https://dlang.org/phobos/dmd_e2ir.html
- bool
ISX64REF(Declarationvar); - If variable var is a value that will actually be passed as a referenceParameters:
Declaration varparameter variable Returns:true if actually implicitly passed by reference - elem*
elAssign(elem*e1, elem*e2, Typet, type*tx); - Generate a copy from e2 to e1.Parameters:
elem* e1lvalue elem* e2rvalue Type tvalue type type* txif !null, then t converted to C type Returns:generated elem - bool
type_zeroCopy(type*t); - Determine if zero bits need to be copied for this backend typeParameters:
type* tbackend type Returns:true if 0 bits - Symbol*
toStringSymbol(const(char)*str, size_tlen, size_tsz); - 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.Parameters:
const(char)* strstring size_t lennumber of code units in string size_t sznumber of bytes per code unit Returns:Symbol - Symbol*
toStringSymbol(StringExpse); - Turn StringExp into Symbol.
- void
toTraceGC(ref IRStateirs, elem*e, Locloc); - Replace call to GC allocator with call to tracing GC allocator.Parameters:
IRState irsto get function from elem* eelem to modify in place Loc locto get file/line from - elem*
toElemDtor(Expressione, ref IRStateirs); - Convert Expression to elem, then append destructors for any temporaries created in elem.Parameters:
Expression eExpression to convert IRState irscontext Returns:generated elem tree - elem*
addressElem(elem*e, Typet, boolalwaysCopy= false); - Take address of an elem. Accounts for e being an rvalue by assigning the rvalue to a temp.Parameters:
elem* eelem to take address of Type tType of elem bool alwaysCopywhen true, always copy e to a tmp Returns:the equivalent of &e - void
clearStringTab(); - Reset stringTab[] between object files being emitted, because the symbols are local.
- bool
isDllImported(Dsymbolvar); - Figure out whether a data symbol should be dllimportedParameters:
Dsymbol vardeclaration of the symbol Returns:true if symbol should be imported from a DLL - Symbol*
toExtSymbol(Dsymbols); - Generate a backend symbol for a frontend symbolParameters:
Dsymbol sfrontend symbol Returns:the backend symbol or the associated symbol in the import table if it is expected to be imported from a DLL - elem*
toElem(Expressione, ref IRStateirs); - Convert Expression to backend elem.Parameters:
Expression eexpression tree IRState irscontext Returns:backend elem tree
Copyright © 1999-2025 by the D Language Foundation | Page generated by
Ddoc on Fri Oct 10 22:08:06 2025