LRANGE Module Reference

#include <gra_lrange.h>

Collaboration diagram for LRANGE:

Collaboration graph
[legend]

Public Member Functions

 LRANGE (void)
 ~LRANGE (void)
TNOriginal_TN (void)
TNTn (void)
INTERFERE Neighbors (void)
INT32 Neighbors_Left (void)
INT32 Neighbors_Left_Increment (void)
INT32 Neighbors_Left_Decrement (void)
float Priority (void)
void Priority_Set (float p)
ISA_REGISTER_CLASS Rc (void)
REGISTER Reg (void)
LRANGE_TYPE Type (void)
INT32 Id (void)
void Id_Set (INT32 i)
BB_SET * Live_BB_Set (void)
void Clear_Live_BBs (void)
GTN_SET * Global_Pref_Set (void)
void Clear_Global_Pref_Set (void)
void First_Lunit_Reset (void)
GRA_PREFPref (void)
GRA_BBGbb (void)
GRA_REGIONRegion (void)
float Pref_Priority (void)
REGISTER Orig_Reg (void)
INT32 Priority_Queue_Index (void)
void Priority_Queue_Index_Set (INT32 index)
BOOL Listed (void)
void Listed_Set (void)
BOOL Allocated (void)
void Allocated_Reset (void)
BOOL Spans_A_Call (void)
void Spans_A_Call_Set (void)
void Spans_A_Call_Reset (void)
BOOL Spans_Infreq_Call (void)
void Spans_Infreq_Call_Set (void)
void Spans_Infreq_Call_Reset (void)
BOOL Split_Listed (void)
void Split_Listed_Set (void)
BOOL Spans_Rot_Reg_Clob (void)
void Spans_Rot_Reg_Clob_Set (void)
void Spans_Rot_Reg_Clob_Reset (void)
BOOL Spans_A_Setjmp (void)
void Spans_A_Setjmp_Set (void)
void Spans_A_Setjmp_Reset (void)
BOOL Avoid_RA (void)
void Avoid_RA_Set (void)
BOOL Spilled (void)
void Spilled_Set (void)
BOOL Must_Allocate (void)
void Must_Allocate_Set (void)
BOOL Has_Wired_Register (void)
BOOL Region_Invariant (void)
BOOL Tn_Is_Save_Reg (void)
void Tn_Is_Save_Reg_Set (void)
BOOL Cannot_Split (void)
void Cannot_Split_Set (void)
BOOL No_Appearance (void)
void No_Appearance_Set (void)
void Wire_Register (REGISTER r)
void Preallocated_Region_Invariant (REGISTER r)
BOOL Has_Preference (void)
void Neighbors_Left_Initialize (void)
LRANGEBB_Local_List_Push (LRANGE *new_elt)
LRANGESplit_List_Push (LRANGE *new_elt)
INT32 Candidate_Reg_Count (void)
void Add_Live_BB (GRA_BB *gbb)
void Remove_Live_BB (GRA_BB *gbb)
BOOL Contains_BB (GRA_BB *gbb)
void Add_Global_Pref (TN *tn)
void Remove_Global_Pref (TN *tn)
BOOL Check_Global_Pref (TN *tn)
void Initialize_Region_Inteference (GRA_REGION *region)
void Add_LUNIT (LUNIT *lunit)
void Add_Lunit (LUNIT *lunit)
REGISTER_SET Allowed_Registers (GRA_REGION *region)
BOOL Interferes (LRANGE *lr1)
void Region_Interference (LRANGE *lrange1, GRA_REGION *region)
void Remove_Neighbor (LRANGE *neighbor, GRA_REGION *region)
void Allocate_Register (REGISTER reg, BOOL reclaim=FALSE)
INT32 Neighbor_Count (void)
void Calculate_Priority (void)
BOOL Find_LUNIT_For_GBB (const GRA_BB *gbb, LUNIT **lunitp)
void Preference_Copy (LRANGE *lrange1, GRA_BB *gbb)
void Recompute_Preference (void)
char * Format (char *buff)

Private Attributes

INT32 id
INT32 neighbors_left
INT32 priority_queue_index
LRANGEclist_next
float priority
INT32 mark
GRA_PREFpref
float pref_priority
ISA_REGISTER_CLASS rc:8
mREGISTER reg
mREGISTER orig_reg
LRANGE_TYPE type:8
LR_FLAG flags:24
union {
   type lrange_complement_specific {
      TN *   tn
      INTERFERE   neighbors
      LUNIT *   first_lunit
      BB_SET *   live_bb_set
      GTN_SET *   global_pref_set
      TN *   original_tn
      LRANGE *   next_split_list_lrange
   }   c
   type lrange_region_specific {
      TN *   tn
      INTERFERE   neighbors
      GRA_REGION *   region
      GRA_BB_LIST *   complement_bbs
   }   r
   type lrange_local_specific {
      GRA_BB *   gbb
      LRANGE *   next_bb_local_lrange
   }   l
u

Friends

class LRANGE_MGR
class LRANGE_GLUE_REF_GBB_ITER
class LRANGE_CLIST
class LRANGE_CLIST_ITER
class LRANGE_LOCAL_LIST_ITER
class LRANGE_SPLIT_LIST_ITER
class LRANGE_LIVE_GBB_ITER
class LRANGE_BB_LOCAL_LIST_ITER
class LRANGE_LUNIT_ITER

Detailed Description

Definition at line 164 of file gra_lrange.h.


Constructor & Destructor Documentation

LRANGE::LRANGE ( void   )  [inline]

Definition at line 230 of file gra_lrange.h.

LRANGE::~LRANGE ( void   )  [inline]

Definition at line 231 of file gra_lrange.h.


Member Function/Subroutine Documentation

TN* LRANGE::Original_TN ( void   )  [inline]

TN* LRANGE::Tn ( void   )  [inline]

INTERFERE LRANGE::Neighbors ( void   )  [inline]

INT32 LRANGE::Neighbors_Left ( void   )  [inline]

Definition at line 241 of file gra_lrange.h.

References neighbors_left.

Referenced by Fix_Interference().

INT32 LRANGE::Neighbors_Left_Increment ( void   )  [inline]

Definition at line 242 of file gra_lrange.h.

References neighbors_left.

Referenced by Add_Deferred_To_Coloring_List(), and Fix_Interference().

INT32 LRANGE::Neighbors_Left_Decrement ( void   )  [inline]

Definition at line 243 of file gra_lrange.h.

References neighbors_left.

Referenced by Add_Deferred_To_Coloring_List(), and Fix_Interference().

float LRANGE::Priority ( void   )  [inline]

void LRANGE::Priority_Set ( float  p  )  [inline]

Definition at line 245 of file gra_lrange.h.

References priority.

Referenced by LRANGE_Do_Split().

ISA_REGISTER_CLASS LRANGE::Rc ( void   )  [inline]

REGISTER LRANGE::Reg ( void   )  [inline]

LRANGE_TYPE LRANGE::Type ( void   )  [inline]

INT32 LRANGE::Id ( void   )  [inline]

void LRANGE::Id_Set ( INT32  i  )  [inline]

Definition at line 252 of file gra_lrange.h.

Referenced by LRANGE_SET_SUBUNIVERSE::Add().

BB_SET* LRANGE::Live_BB_Set ( void   )  [inline]

void LRANGE::Clear_Live_BBs ( void   )  [inline]

Definition at line 254 of file gra_lrange.h.

GTN_SET* LRANGE::Global_Pref_Set ( void   )  [inline]

Definition at line 255 of file gra_lrange.h.

Referenced by Check_Global_Pref(), and Global_Preferenced_Regs().

void LRANGE::Clear_Global_Pref_Set ( void   )  [inline]

Definition at line 256 of file gra_lrange.h.

void LRANGE::First_Lunit_Reset ( void   )  [inline]

Definition at line 257 of file gra_lrange.h.

References NULL.

Referenced by Divide_LRANGE().

GRA_PREF* LRANGE::Pref ( void   )  [inline]

Definition at line 258 of file gra_lrange.h.

References pref.

Referenced by Allocate_Register(), LRANGE_PREF_ITER::Init(), and Preference_Copy().

GRA_BB* LRANGE::Gbb ( void   )  [inline]

GRA_REGION* LRANGE::Region ( void   )  [inline]

float LRANGE::Pref_Priority ( void   )  [inline]

Definition at line 261 of file gra_lrange.h.

References pref_priority.

Referenced by GRA_PREF::Allocate_LRANGE().

REGISTER LRANGE::Orig_Reg ( void   )  [inline]

Definition at line 262 of file gra_lrange.h.

References orig_reg.

INT32 LRANGE::Priority_Queue_Index ( void   )  [inline]

Definition at line 263 of file gra_lrange.h.

References priority_queue_index.

void LRANGE::Priority_Queue_Index_Set ( INT32  index  )  [inline]

Definition at line 264 of file gra_lrange.h.

References priority_queue_index.

BOOL LRANGE::Listed ( void   )  [inline]

Definition at line 276 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_listed.

void LRANGE::Listed_Set ( void   )  [inline]

Definition at line 277 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_listed.

BOOL LRANGE::Allocated ( void   )  [inline]

void LRANGE::Allocated_Reset ( void   )  [inline]

Definition at line 279 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_allocated.

BOOL LRANGE::Spans_A_Call ( void   )  [inline]

void LRANGE::Spans_A_Call_Set ( void   )  [inline]

Definition at line 282 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_spans_a_call.

Referenced by Fix_Call_Info(), LRANGE_Split(), and Set_Call_Flag().

void LRANGE::Spans_A_Call_Reset ( void   )  [inline]

Definition at line 283 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_spans_a_call.

Referenced by Fix_Call_Info().

BOOL LRANGE::Spans_Infreq_Call ( void   )  [inline]

void LRANGE::Spans_Infreq_Call_Set ( void   )  [inline]

Definition at line 285 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_spans_infreq_call.

Referenced by Set_Call_Flag().

void LRANGE::Spans_Infreq_Call_Reset ( void   )  [inline]

Definition at line 286 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_spans_infreq_call.

Referenced by Fix_Call_Info(), LRANGE_Split(), and Set_Call_Flag().

BOOL LRANGE::Split_Listed ( void   )  [inline]

Definition at line 287 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_split_listed.

Referenced by Possibly_List_LRANGE().

void LRANGE::Split_Listed_Set ( void   )  [inline]

Definition at line 288 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_split_listed.

Referenced by Possibly_List_LRANGE().

BOOL LRANGE::Spans_Rot_Reg_Clob ( void   )  [inline]

Definition at line 289 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_spans_rot_reg_clob.

Referenced by Allowed_Registers().

void LRANGE::Spans_Rot_Reg_Clob_Set ( void   )  [inline]

Definition at line 290 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_spans_rot_reg_clob.

Referenced by Create_Live_BB_Sets(), and Fix_Rot_Reg_Clob_Info().

void LRANGE::Spans_Rot_Reg_Clob_Reset ( void   )  [inline]

Definition at line 291 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_spans_rot_reg_clob.

Referenced by Fix_Rot_Reg_Clob_Info().

BOOL LRANGE::Spans_A_Setjmp ( void   )  [inline]

Definition at line 292 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_spans_a_setjmp.

Referenced by Allocate_Stacked_Register(), Allowed_Registers(), and LRANGE_Do_Split().

void LRANGE::Spans_A_Setjmp_Set ( void   )  [inline]

Definition at line 293 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_spans_a_setjmp.

Referenced by Create_Live_BB_Sets(), and Fix_Call_Info().

void LRANGE::Spans_A_Setjmp_Reset ( void   )  [inline]

Definition at line 294 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_spans_a_setjmp.

BOOL LRANGE::Avoid_RA ( void   )  [inline]

void LRANGE::Avoid_RA_Set ( void   )  [inline]

Definition at line 296 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_avoid_ra.

Referenced by Avoid_RA_In_Call_Argument().

BOOL LRANGE::Spilled ( void   )  [inline]

Definition at line 297 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_spilled.

Referenced by Dumb_Placement(), Fix_Interference(), and Optimize_Placement().

void LRANGE::Spilled_Set ( void   )  [inline]

Definition at line 298 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_spilled.

Referenced by GRA_Note_Spill().

BOOL LRANGE::Must_Allocate ( void   )  [inline]

Definition at line 299 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_must_allocate.

Referenced by Calculate_Priority().

void LRANGE::Must_Allocate_Set ( void   )  [inline]

Definition at line 300 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_must_allocate.

BOOL LRANGE::Has_Wired_Register ( void   )  [inline]

BOOL LRANGE::Region_Invariant ( void   )  [inline]

Definition at line 302 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_region_invariant.

BOOL LRANGE::Tn_Is_Save_Reg ( void   )  [inline]

Definition at line 303 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_tn_is_save_reg.

Referenced by Calculate_Priority(), Format(), LRANGE_Do_Split(), and Update_Register_Info().

void LRANGE::Tn_Is_Save_Reg_Set ( void   )  [inline]

Definition at line 304 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_tn_is_save_reg.

Referenced by LRANGE_MGR::Create_Complement().

BOOL LRANGE::Cannot_Split ( void   )  [inline]

Definition at line 305 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_cannot_split.

Referenced by LRANGE_Do_Split().

void LRANGE::Cannot_Split_Set ( void   )  [inline]

Definition at line 306 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_cannot_split.

Referenced by LRANGE_MGR::Create_Complement().

BOOL LRANGE::No_Appearance ( void   )  [inline]

Definition at line 307 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_no_appearance.

Referenced by LRANGE_Spill().

void LRANGE::No_Appearance_Set ( void   )  [inline]

Definition at line 308 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_no_appearance.

Referenced by GRA_Remove_Predicates_Save_Restore().

void LRANGE::Wire_Register ( REGISTER  r  )  [inline]

Definition at line 326 of file gra_lrange.h.

References flags, and LRANGE_FLAGS_has_wired_register.

Referenced by GRA_BB::Create_Wired_LRANGE().

void LRANGE::Preallocated_Region_Invariant ( REGISTER  r  )  [inline]

Definition at line 329 of file gra_lrange.h.

References flags, LRANGE_FLAGS_allocated, and LRANGE_FLAGS_region_invariant.

BOOL LRANGE::Has_Preference ( void   )  [inline]

Definition at line 340 of file gra_lrange.h.

References NULL, and pref.

Referenced by List_Preferenced_Wired_Locals(), and Update_Register_Info().

void LRANGE::Neighbors_Left_Initialize ( void   )  [inline]

Definition at line 341 of file gra_lrange.h.

References Neighbor_Count(), and neighbors_left.

LRANGE* LRANGE::BB_Local_List_Push ( LRANGE new_elt  )  [inline]

Definition at line 347 of file gra_lrange.h.

References l, and u.

Referenced by GRA_BB::Create_Local_LRANGEs(), and List_Preferenced_Wired_Locals().

LRANGE* LRANGE::Split_List_Push ( LRANGE new_elt  )  [inline]

Definition at line 350 of file gra_lrange.h.

References c, and u.

Referenced by Possibly_List_LRANGE().

INT32 LRANGE::Candidate_Reg_Count ( void   ) 

void LRANGE::Add_Live_BB ( GRA_BB gbb  ) 

Definition at line 258 of file gra_lrange.cxx.

References GRA_BB::Bb(), GRA_pool, LRANGE_TYPE_COMPLEMENT, and Type().

Referenced by Calculate_Live_BB_Sets(), and Create_Live_BB_Sets().

void LRANGE::Remove_Live_BB ( GRA_BB gbb  ) 

Definition at line 265 of file gra_lrange.cxx.

References GRA_BB::Bb(), LRANGE_TYPE_COMPLEMENT, and Type().

Referenced by Calculate_Live_BB_Sets().

BOOL LRANGE::Contains_BB ( GRA_BB gbb  ) 

void LRANGE::Add_Global_Pref ( TN tn  ) 

Definition at line 304 of file gra_lrange.cxx.

References GRA_pool, GTN_UNIVERSE_size, and NULL.

Referenced by Scan_Complement_BB_For_Referenced_TNs().

void LRANGE::Remove_Global_Pref ( TN tn  ) 

Definition at line 314 of file gra_lrange.cxx.

Referenced by Check_Global_Preference().

BOOL LRANGE::Check_Global_Pref ( TN tn  ) 

Definition at line 320 of file gra_lrange.cxx.

References Global_Pref_Set(), and NULL.

Referenced by Check_Global_Preference().

void LRANGE::Initialize_Region_Inteference ( GRA_REGION region  ) 

void LRANGE::Add_LUNIT ( LUNIT lunit  ) 

Definition at line 328 of file gra_lrange.cxx.

References LUNIT::Lrange_Set().

Referenced by Divide_LRANGE(), and LUNIT_Create().

void LRANGE::Add_Lunit ( LUNIT lunit  ) 

REGISTER_SET LRANGE::Allowed_Registers ( GRA_REGION region  ) 

BOOL LRANGE::Interferes ( LRANGE lr1  ) 

void LRANGE::Region_Interference ( LRANGE lrange1,
GRA_REGION region 
)

Definition at line 384 of file gra_lrange.cxx.

References c, Rc(), su, GRA_REGION::Subuniverse(), and u.

Referenced by Add_To_Live_Set(), and Target_Dependent_Region_Interference().

void LRANGE::Remove_Neighbor ( LRANGE neighbor,
GRA_REGION region 
)

Definition at line 441 of file gra_lrange.cxx.

References LRANGE_TYPE_LOCAL, Rc(), GRA_REGION::Subuniverse(), and Type().

Referenced by Fix_Interference().

void LRANGE::Allocate_Register ( REGISTER  reg,
BOOL  reclaim = FALSE 
)

INT32 LRANGE::Neighbor_Count ( void   ) 

void LRANGE::Calculate_Priority ( void   ) 

BOOL LRANGE::Find_LUNIT_For_GBB ( const GRA_BB gbb,
LUNIT **  lunitp 
)

void LRANGE::Preference_Copy ( LRANGE lrange1,
GRA_BB gbb 
)

void LRANGE::Recompute_Preference ( void   ) 

char * LRANGE::Format ( char *  buff  ) 


Friends And Related Function Documentation

friend class LRANGE_MGR [friend]

Definition at line 165 of file gra_lrange.h.

Definition at line 166 of file gra_lrange.h.

friend class LRANGE_CLIST [friend]

Definition at line 167 of file gra_lrange.h.

friend class LRANGE_CLIST_ITER [friend]

Definition at line 168 of file gra_lrange.h.

friend class LRANGE_LOCAL_LIST_ITER [friend]

Definition at line 169 of file gra_lrange.h.

friend class LRANGE_SPLIT_LIST_ITER [friend]

Definition at line 170 of file gra_lrange.h.

friend class LRANGE_LIVE_GBB_ITER [friend]

Definition at line 171 of file gra_lrange.h.

Definition at line 172 of file gra_lrange.h.

friend class LRANGE_LUNIT_ITER [friend]

Definition at line 173 of file gra_lrange.h.


Field Documentation

INT32 LRANGE::id [private]

Definition at line 175 of file gra_lrange.h.

Definition at line 177 of file gra_lrange.h.

Referenced by Priority_Queue_Index(), and Priority_Queue_Index_Set().

float LRANGE::priority [private]

INT32 LRANGE::mark [private]

GRA_PREF* LRANGE::pref [private]

float LRANGE::pref_priority [private]

Definition at line 189 of file gra_lrange.h.

Referenced by LRANGE_MGR::Create().

Definition at line 190 of file gra_lrange.h.

Referenced by LRANGE_MGR::Create_Region(), and Orig_Reg().

Definition at line 192 of file gra_lrange.h.

Referenced by LRANGE_MGR::Create(), and LRANGE_MGR::Create_Duplicate().

Definition at line 196 of file gra_lrange.h.

Definition at line 197 of file gra_lrange.h.

Definition at line 198 of file gra_lrange.h.

Definition at line 199 of file gra_lrange.h.

Definition at line 204 of file gra_lrange.h.

Definition at line 208 of file gra_lrange.h.

Definition at line 210 of file gra_lrange.h.

struct { ... } ::lrange_complement_specific LRANGE::c

Definition at line 221 of file gra_lrange.h.

Referenced by Candidate_Reg_Count().

GRA_BB_LIST* LRANGE::complement_bbs

Definition at line 222 of file gra_lrange.h.

struct { ... } ::lrange_region_specific LRANGE::r

Definition at line 225 of file gra_lrange.h.

Definition at line 226 of file gra_lrange.h.

struct { ... } ::lrange_local_specific LRANGE::l

union { ... } LRANGE::u [private]


The documentation for this module was generated from the following files:

Generated on Wed Apr 8 16:54:08 2009 for Open64 by  doxygen 1.5.6