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