libFirm
Frame

Functions

ir_typenew_type_frame (void)
 Makes a new frame type.
int is_frame_type (const ir_type *tp)
 Checks, whether a type is a frame type.
ir_typeclone_frame_type (ir_type *type)
 Makes a clone of a frame type.
ir_entityframe_alloc_area (ir_type *frame_type, int size, unsigned alignment, int at_start)
 Allocate an area of size bytes aligned at alignment at the start or the end of a frame type.

Detailed Description

Function Documentation

ir_type* clone_frame_type ( ir_type type)

Makes a clone of a frame type.

Sets entity links from old frame entities to new onces and vice versa.

ir_entity* frame_alloc_area ( ir_type frame_type,
int  size,
unsigned  alignment,
int  at_start 
)

Allocate an area of size bytes aligned at alignment at the start or the end of a frame type.

The frame type must already have a fixed layout.

Parameters
frame_typea frame type
sizethe size of the entity
alignmentthe alignment of the entity
at_startif true, put the area at the frame type's start, else at end
Returns
the entity representing the area
int is_frame_type ( const ir_type tp)

Checks, whether a type is a frame type.

ir_type* new_type_frame ( void  )

Makes a new frame type.

Frame types are class types, so all class access functions work. Frame types are not in the global list of types.