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

Data Fields

struct temp_slotnext
struct temp_slotprev
rtx slot
HOST_WIDE_INT size
tree type
unsigned int align
char in_use
int level
HOST_WIDE_INT base_offset
HOST_WIDE_INT 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

unsigned int temp_slot::align
HOST_WIDE_INT temp_slot::base_offset
HOST_WIDE_INT temp_slot::full_size
struct temp_slot* temp_slot::prev
rtx temp_slot::slot
tree temp_slot::type

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