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
Compiler implementation of the
D programming language.
Authors:
License:
Source e2ir.d
Documentation https://dlang.org/phobos/dmd_e2ir.html
- elem*
addressElem(elem*e, Typet, boolalwaysCopy= false); - Take address of an elem.
- elem*
array_toPtr(Typet, elem*e); - Convert array to a pointer to the data.Parameters:
Type tarray type elem* earray to convert, it is "consumed" by the function Returns:e rebuilt into a pointer to the data - elem*
array_toDarray(Typet, elem*e); - Convert array to a dynamic array.
- elem*
sarray_toDarray(ref const Locloc, Typetfrom, Typetto, elem*e); - elem*
getTypeInfo(Locloc, Typet, IRState*irs); - StructDeclaration
needsPostblit(Typet); - Determine if t is a struct that has postblit.
- StructDeclaration
needsDtor(Typet); - Determine if t is a struct that has destructor.
- void
clearStringTab(); - Reset stringTab[] between object files being emitted, because the symbols are local.
- elem*
toElemDtor(Expressione, IRState*irs); - Convert Expression to elem, then append destructors for any temporaries created in elem.Parameters:
Expression eExpression to convert IRState* irscontext Returns:generated elem tree - 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.
- elem*
buildArrayBoundsError(IRState*irs, ref const Locloc, elem*lwr, elem*upr, elem*elength); - Construct elem to run when an array bounds check fails.Parameters:
IRState* irsto get function from Loc locto get file/line from elem* lwrlower bound passed, if slice (array[lwr .. upr]). null otherwise. elem* uprupper bound passed if slice (array[lwr .. upr]), index if not a slice (array[upr]) elem* elengthlength of array Returns:elem generated - void
toTraceGC(IRState*irs, elem*e, ref const 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*
callCAssert(IRState*irs, ref const Locloc, Expressionexp, Expressionemsg, const(char)*str); - Generate call to C's assert failure function. One of exp, emsg, or str must not be null.Parameters:
IRState* irscontext Loc loclocation to use for assert message Expression expif not null expression to test (not evaluated, but converted to a string) Expression emsgif not null then informative message to be computed at run time const(char)* strif not null then informative message string Returns:generated call - elem*
genHalt(ref const Locloc); - Generate HALT instruction.Parameters:
Loc loclocation to use for debug info Returns:generated instruction - 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 - 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 - elem*
setEthis2(ref const Locloc, IRState*irs, FuncDeclarationfd, elem*ethis2, elem**ethis, elem**eside); - Initialize the dual-context array with the context pointers.Parameters:
Loc locline and file of what line to show usage for IRState* irscurrent context to get the second context from FuncDeclaration fdthe target function elem* ethis2dual-context array elem** ethisthe first context elem** esidewhere to store the assignment expressions Returns:ethis2if successful, null otherwise
Copyright © 1999-2019 by the D Language Foundation | Page generated by
Ddoc on Sun Sep 1 19:49:15 2019