View source code
Display the source code in dmd/backend/cgreg.d from which this page was generated on github.
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 local clone.

Module dmd.backend.cgreg

Compiler implementation of the D programming language.

Functions

NameDescription
cgreg_benefit(s, reg, retsym) Determine 'benefit' of assigning symbol s to register reg. Benefit is roughly the number of clocks saved. A negative value means that s cannot or should not be assigned to reg.
cgreg_benefit(s, reg, retsym) Determine 'benefit' of assigning symbol s to register reg. Benefit is roughly the number of clocks saved. A negative value means that s cannot or should not be assigned to reg.
cgreg_gotoepilog(b, s) Determine if block gets symbol loaded by predecessor epilog (1), or by prolog (0).
cgreg_gotoepilog(b, s) Determine if block gets symbol loaded by predecessor epilog (1), or by prolog (0).
cgreg_init()
cgreg_init()
cgreg_map(s, regmsw, reglsw) Map symbol s into registers [NOREG,reglsw] or [regmsw, reglsw].
cgreg_map(s, regmsw, reglsw) Map symbol s into registers [NOREG,reglsw] or [regmsw, reglsw].
cgreg_reset()
cgreg_reset()
cgreg_spillreg_epilog(b, s, cdbstore, cdbload) Determine block epilog code - it's either assignments to register, or storing register back in memory.
cgreg_spillreg_epilog(b, s, cdbstore, cdbload) Determine block epilog code - it's either assignments to register, or storing register back in memory.
cgreg_spillreg_prolog(b, s, cdbstore, cdbload) Determine block prolog code for s - it's either assignments to register, or storing register back in memory.
cgreg_spillreg_prolog(b, s, cdbstore, cdbload) Determine block prolog code for s - it's either assignments to register, or storing register back in memory.
cgreg_term()
cgreg_term()
cgreg_unregister(conflict) The register variables in this mask can not be in registers. "Unregister" them.
cgreg_unregister(conflict) The register variables in this mask can not be in registers. "Unregister" them.
cgreg_used(bi, used) Registers used in block bi.
cgreg_used(bi, used) Registers used in block bi.

Structs

NameDescription
Reg Do register assignments.
Reg Do register assignments.

Authors

Walter Bright

License

Boost License 1.0