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.
ddmd.e2ir
Compiler implementation of the
D programming language.
Authors:
License:
Source: e2ir.d
- elem*
useOPstrpar
(elem*e
); - If argument to a function should use OPstrpar, fix it so it does and return it.
- elem*
callfunc
(Locloc
, IRState*irs
, intdirectcall
, Typetret
, elem*ec
, Typeectype
, FuncDeclarationfd
, Typet
, elem*ehidden
, Expressions*arguments
, elem*esel
= null); - Call a function.
- 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.
- elem*
array_toDarray
(Typet
, elem*e
); - Convert array to a dynamic array.
- elem*
sarray_toDarray
(Locloc
, Typetfrom
, Typetto
, elem*e
); - elem*
getTypeInfo
(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. - elem*
setArray
(elem*eptr
, elem*edim
, Typetb
, elem*evalue
, IRState*irs
, intop
); - Set an array pointed to by
eptr
toevalue
:eptr
[0..edim
] =evalue
;Input:
eptr
where to write the data toevalue
value to writeedim
number of times to writeevalue
toeptr
[]tb
type ofevalue
- void
clearStringTab
(); - Reset stringTab[] between object files being emitted, because the symbols are local.
- elem*
fillHole
(Symbol*stmp
, size_t*poffset
, size_toffset2
, size_tmaxoff
); - Generate elem to zero fill contents of Symbol
stmp
from *poffset
..offset2
. May store anywhere from 0..maxoff
, as this function tries to use aligned int stores whereever possible. Update *poffset
to end of initialized hole; *poffset
will be >=offset2
. - elem*
appendDtors
(IRState*irs
, elem*er
, size_tstarti
, size_tendi
); - Add destructors
- elem*
toElemDtor
(Expressione
, IRState*irs
); - Evaluate Expression, then call destructors on any temporaries in it.
- 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 comdat emit string in its own comdat (default is read-only segment). Comdats are useful when linker does not coalesce redundant strings. Returns:Symbol - Symbol*
toStringSymbol
(StringExpse
); - Turn StringExp into Symbol.
- elem*
filelinefunction
(IRState*irs
, Loc*loc
); - Return an elem that is the file, line, and function suitable for insertion into the parameter list.
- elem*
buildArrayBoundsError
(IRState*irs
, ref const Locloc
); - Construct elem to run when an array bounds check fails.Returns:elem generated
- void
toTraceGC
(IRState*irs
, elem*e
, Loc*loc
); - Replace call to GC allocator with call to tracing GC allocator.Parameters:
IRState* irs
to get function from elem* e
elem to modify eloc to get file/line from
Copyright © 1999-2017 by the D Language Foundation | Page generated by
Ddoc on Mon Apr 10 10:54:58 2017