GCC Middle and Back End API Reference
temp_slot Class Reference
Collaboration diagram for temp_slot:

Data Fields

class temp_slotnext
class temp_slotprev
rtx slot
poly_int64 size
tree type
unsigned int align
bool in_use
int level
poly_int64 base_offset
poly_int64 full_size

Detailed Description

In order to evaluate some expressions, such as function calls returning
structures in memory, we need to temporarily allocate stack locations.
We record each allocated temporary in the following structure.

Associated with each temporary slot is a nesting level.  When we pop up
one level, all temporaries associated with the previous level are freed.
Normally, all temporaries are freed after the execution of the statement
in which they were created.  However, if we are inside a ({...}) grouping,
the result may be in a temporary and hence must be preserved.  If the
result could be in a temporary, we preserve it if we can determine which
one it is in.  If we cannot determine which temporary may contain the
result, all temporaries are preserved.  A temporary is preserved by
pretending it was allocated at the previous nesting level.   

Field Documentation

◆ align

unsigned int temp_slot::align

◆ base_offset

◆ full_size

◆ in_use

◆ level

◆ next

◆ prev

class temp_slot* temp_slot::prev

Referenced by insert_slot_to_list().

◆ size

◆ slot

rtx temp_slot::slot

◆ type

tree temp_slot::type

The documentation for this class was generated from the following file: