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 var
parameter 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* e1
lvalue elem* e2
rvalue Type t
value type type* tx
if !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* t
backend 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)* str
string size_t len
number of code units in string size_t sz
number of bytes per code unit Returns:Symbol - Symbol*
toStringSymbol
(StringExpse
); - Turn StringExp into Symbol.
- void
toTraceGC
(ref IRStateirs
, elem*e
, const ref Locloc
); - Replace call to GC allocator with call to tracing GC allocator.Parameters:
IRState irs
to get function from elem* e
elem to modify in place Loc loc
to get file/line from - elem*
toElemDtor
(Expressione
, ref IRStateirs
); - Convert Expression to elem, then append destructors for any temporaries created in elem.Parameters:
Expression e
Expression to convert IRState irs
context 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* e
elem to take address of Type t
Type of elem bool alwaysCopy
when 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 var
declaration 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 s
frontend 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 e
expression tree IRState irs
context Returns:backend elem tree
Copyright © 1999-2024 by the D Language Foundation | Page generated by
Ddoc on Wed Dec 18 08:51:54 2024