GCC Middle and Back End API Reference
ira_object Struct Reference

#include <ira-int.h>

Collaboration diagram for ira_object:

Data Fields

ira_allocno_t allocno
void * conflicts_array
live_range_t live_ranges
int subword
unsigned int conflicts_array_size
int id
int min
int max
HARD_REG_SET conflict_hard_regs
HARD_REG_SET total_conflict_hard_regs
int num_accumulated_conflicts
unsigned int conflict_vec_p: 1

Detailed Description

A structure representing conflict information for an allocno (or one of its subwords).


Field Documentation

ira_allocno_t ira_object::allocno

The allocno associated with this record.

HARD_REG_SET ira_object::conflict_hard_regs

Initial and accumulated hard registers conflicting with this object and as a consequences can not be assigned to the allocno. All non-allocatable hard regs and hard regs of register classes different from given allocno one are included in the sets.

unsigned int ira_object::conflict_vec_p

TRUE if conflicts are represented by a vector of pointers to ira_object structures. Otherwise, we use a bit vector indexed by conflict ID numbers.

void* ira_object::conflicts_array

Vector of accumulated conflicting conflict_redords with NULL end marker (if OBJECT_CONFLICT_VEC_P is true) or conflict bit vector otherwise.

unsigned int ira_object::conflicts_array_size

Allocated size of the conflicts array.

int ira_object::id

A unique number for every instance of this structure, which is used to represent it in conflict bit vectors.

live_range_t ira_object::live_ranges

Pointer to structures describing at what program point the object lives. We always maintain the list in such way that the ranges in the list are not intersected and ordered by decreasing their program points.

int ira_object::max
int ira_object::min

Before building conflicts, MIN and MAX are initialized to correspondingly minimal and maximal points of the accumulated live ranges. Afterwards, they hold the minimal and maximal ids of other ira_objects that this one can conflict with.

int ira_object::num_accumulated_conflicts

Number of accumulated conflicts in the vector of conflicting objects.

int ira_object::subword

The subword within ALLOCNO which is represented by this object. Zero means the lowest-order subword (or the entire allocno in case it is not being tracked in subwords).

HARD_REG_SET ira_object::total_conflict_hard_regs

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