dmd.backend.dt
Intermediate representation for static data
Discussion
Compiler implementation of the D programming language.
License
Documentation: https://dlang.org/phobos/dmd_backend_dt.html
-
Declaration
nothrow @nogc @trusted void
dt_free
(dt_t*dt
);Free a data definition struct.
-
Declaration
nothrow @nogc @safe void
dt_term
();Free free list.
-
Declaration
nothrow @nogc @safe void
dtpatchoffset
(dt_t*dt
, uintoffset
); -
Declaration
nothrow @nogc @trusted void
init_common
(Symbol*s
);Make a common block for
s
. -
Declaration
nothrow @nogc @trusted uint
dt_size
(const(dt_t)*dtstart
);Compute size of a dt
-
Declaration
nothrow @nogc @safe bool
dtallzeros
(const(dt_t)*dt
);Return
true
ifdt
is all zeros. -
Declaration
nothrow @nogc @safe bool
dtpointers
(const(dt_t)*dtstart
);Return
true
if dt contains pointers (requires relocations). -
Declaration
nothrow @nogc @safe void
dt2common
(dt_t**pdt
);Turn DT_azeros into DTcommon
-
Declaration
struct
DtBuilder
;-
Declaration
nothrow @nogc @safe void
checkInitialized
();Useful for checking if DtBuilder got initialized.
-
Declaration
nothrow @nogc @trusted void
print
();Print state of DtBuilder for debugging.
-
Declaration
nothrow @nogc @safe dt_t*
finish
();Finish and return completed data structure.
-
Declaration
nothrow @nogc @trusted void
nbytes
(uintsize
, const(char)*ptr
);Append data represented by
ptr
[0..size
] -
Declaration
nothrow @nogc @trusted void
abytes
(tym_tty
, uintoffset
, uintsize
, const(char)*ptr
, uintnzeros
, ubyte_align
);Write a reference to the data
ptr
[0..size
+nzeros
]Parameters
tym_t
ty
pointer type
uint
offset
to be added to
offset
of data generateduint
size
number of bytes pointed to by
ptr
const(char)*
ptr
points to data bytes
uint
nzeros
number of zero bytes to add to the end
ubyte
_align
alignment of pointed-to data
-
Declaration
nothrow @nogc @trusted void
dword
(intvalue
);Write 4 bytes of
value
. -
Declaration
nothrow @nogc @trusted void
size
(ulongvalue
);Write a size_t
value
. -
Declaration
nothrow @nogc @safe void
nzeros
(uintsize
);Write a bunch of zeros
-
Declaration
nothrow @nogc @trusted void
xoff
(Symbol*s
, uintoffset
, tym_tty
);Write a reference to
s
+offset
-
Declaration
nothrow @nogc @safe void
xoff
(Symbol*s
, uintoffset
);Create reference to
s
+offset
-
Declaration
nothrow @nogc @trusted dt_t*
xoffpatch
(Symbol*s
, uintoffset
, tym_tty
);Like xoff(), but returns handle with which to patch '
offset
' value. -
Declaration
nothrow @nogc @trusted Symbol*
dtoff
(dt_t*dt
, uintoffset
);Create a reference to another
dt
.Return Value
the internal symbol used for the other
dt
-
Declaration
nothrow @nogc @trusted void
coff
(uintoffset
);Write reference to
offset
in code segment. -
Declaration
nothrow @nogc @safe void
cat
(dt_t*dt
);Append
dt
to data. -
Declaration
nothrow @nogc @safe void
cat
(ref DtBuilderdtb
);Append
dtb
to data. -
Declaration
nothrow @nogc @trusted void
repeat
(dt_t*dt
, size_tcount
);Repeat a list of dt_t's
count
times. -
Declaration
nothrow @nogc @safe uint
length
();Return size of data.
-
Declaration
nothrow @nogc @safe bool
isZeroLength
();Return
true
if size of data is 0.
-
-
Declaration
nothrow @nogc @safe dt_t*
dt_get_nzeros
(uintn
);Temporary hack to initialize a dt_t* for C.