Compiler implementation of the D programming language.
Take address of an elem.
Convert array to a pointer to the data.
Type t
| array type |
elem* e
| array to convert, it is "consumed" by the function |
Convert array to a dynamic array.
Determine if t is a struct that has postblit.
Determine if t is a struct that has destructor.
Reset stringTab[] between object files being emitted, because the symbols are local.
Convert Expression to elem, then append destructors for any temporaries created in elem.
Expression e
| Expression to convert |
IRState* irs
| context |
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.
const(char)* str
| string |
size_t len
| number of code units in string |
size_t sz
| number of bytes per code unit |
Turn StringExp into Symbol.
Construct elem to run when an array bounds check fails.
IRState* irs
| to get function from |
Loc loc
| to get file/line from |
elem* lwr
| lower bound passed, if slice (array[lwr .. upr]). null otherwise. |
elem* upr
| upper bound passed if slice (array[lwr .. upr]), index if not a slice (array[upr]) |
elem* elength
| length of array |
Replace call to GC allocator with call to tracing GC allocator.
IRState* irs
| to get function from |
elem* e
| elem to modify in place |
Loc loc
| to get file/line from |
Generate call to C's assert failure function. One of exp, emsg, or str must not be null.
IRState* irs
| context |
Loc loc
| location to use for assert message |
Expression exp
| if not null expression to test (not evaluated, but converted to a string) |
Expression emsg
| if not null then informative message to be computed at run time |
const(char)* str
| if not null then informative message string |
Generate HALT instruction.
Loc loc
| location to use for debug info |
Determine if zero bits need to be copied for this backend type
type* t
| backend type |
Generate a copy from e2 to e1.
elem* e1
| lvalue |
elem* e2
| rvalue |
Type t
| value type |
type* tx
| if !null, then t converted to C type |
Initialize the dual-context array with the context pointers.
Loc loc
| line and file of what line to show usage for |
IRState* irs
| current context to get the second context from |
FuncDeclaration fd
| the target function |
elem* ethis2
| dual-context array |
elem** ethis
| the first context |
elem** eside
| where to store the assignment expressions |
ethis2
if successful, null otherwise
© 1999–2019 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/dmd_e2ir.html