Author: shenruifen Date: 2010-08-03 23:11:36 -0400 (Tue, 03 Aug 2010) New Revision: 3301
Modified: trunk/osprey/be/cg/gra_mon/gra_color.cxx trunk/osprey/be/cg/gra_mon/gra_create.cxx trunk/osprey/be/cg/gra_mon/gra_grant.cxx trunk/osprey/be/cg/gra_mon/gra_split.cxx Log: Format GRA code enclosed by TARG_SL Modified: trunk/osprey/be/cg/gra_mon/gra_color.cxx =================================================================== --- trunk/osprey/be/cg/gra_mon/gra_color.cxx 2010-08-03 05:03:53 UTC (rev 3300) +++ trunk/osprey/be/cg/gra_mon/gra_color.cxx 2010-08-04 03:11:36 UTC (rev 3301) @@ -248,38 +248,37 @@ void Get_Rid_For_Lrange(LRANGE* lrange, vector <RID*> * rid_vec ) { - - LRANGE_LIVE_GBB_ITER live_gbb_iter; - BB* bb; - if(lrange->Type()== LRANGE_TYPE_REGION) { //region for major thread; - return; - } - if(lrange->Type() ==LRANGE_TYPE_LOCAL) { - bb = lrange->Gbb()->Bb(); - RID* rid = BB_rid(bb); - if(rid ) { // don't split register for major fork - if(RID_TYPE_major(rid)) - return; - else { // for minor fork - rid_vec->push_back(rid); - return; - } - } - } - else { //complement region - Is_True((lrange->Type()==LRANGE_TYPE_COMPLEMENT), ("unknown region type")); - LRANGE_LUNIT_ITER lunit_iter; - for (lunit_iter.Init(lrange); ! lunit_iter.Done(); lunit_iter.Step()) - { - LUNIT* lunit = lunit_iter.Current(); - GRA_BB* gbb = lunit->Gbb(); - bb = gbb->Bb(); - if(BB_rid(bb) && (find(rid_vec->begin(), rid_vec->end(), BB_rid(bb)) == rid_vec->end())) { - rid_vec->push_back(BB_rid(bb)); - } - } - } - return; + LRANGE_LIVE_GBB_ITER live_gbb_iter; + BB* bb; + if(lrange->Type()== LRANGE_TYPE_REGION) { //region for major thread; + return; + } + if(lrange->Type() ==LRANGE_TYPE_LOCAL) { + bb = lrange->Gbb()->Bb(); + RID* rid = BB_rid(bb); + if(rid ) { // don't split register for major fork + if(RID_TYPE_major(rid)) + return; + else { // for minor fork + rid_vec->push_back(rid); + return; + } + } + } + else { //complement region + Is_True((lrange->Type()==LRANGE_TYPE_COMPLEMENT), ("unknown region type")); + LRANGE_LUNIT_ITER lunit_iter; + for (lunit_iter.Init(lrange); ! lunit_iter.Done(); lunit_iter.Step()) + { + LUNIT* lunit = lunit_iter.Current(); + GRA_BB* gbb = lunit->Gbb(); + bb = gbb->Bb(); + if(BB_rid(bb) && (find(rid_vec->begin(), rid_vec->end(), BB_rid(bb)) == rid_vec->end())) { + rid_vec->push_back(BB_rid(bb)); + } + } + } + return; } #endif @@ -335,20 +334,20 @@ } #ifdef TARG_SL //minor_reg_alloc -// if( !lrange->Spans_Multiregions()) { - vector< RID* > rid_vec; - vector<RID* >::iterator iter; - Get_Rid_For_Lrange(lrange, &rid_vec); - for(iter = rid_vec.begin(); iter != rid_vec.end(); iter++) { - RID* rid = *iter; - if(rid && RID_TYPE_minor(rid)) { - RID * pair_rid = gra_para_region_mgr.Get_Pair_Rid(rid); - Is_True((pair_rid), ("pair_rid is NULL")); - GRA_PARA_REGION* pair_region = gra_para_region_mgr.Get(pair_rid); - pair_region->Add_One_Exclude_Register(rc, reg); - } - } -// } +//if( !lrange->Spans_Multiregions()) { + vector< RID* > rid_vec; + vector<RID* >::iterator iter; + Get_Rid_For_Lrange(lrange, &rid_vec); + for(iter = rid_vec.begin(); iter != rid_vec.end(); iter++) { + RID* rid = *iter; + if(rid && RID_TYPE_minor(rid)) { + RID * pair_rid = gra_para_region_mgr.Get_Pair_Rid(rid); + Is_True((pair_rid), ("pair_rid is NULL")); + GRA_PARA_REGION* pair_region = gra_para_region_mgr.Get(pair_rid); + pair_region->Add_One_Exclude_Register(rc, reg); + } + } +//} #endif } @@ -689,20 +688,19 @@ current_lrange = 0; #endif // TARG_IA64 #ifdef TARG_SL //minor_reg_alloc -// if(!lrange->Spans_Multiregions()) -// { - vector< RID*> rid_vec; - vector< RID* >::iterator iter; - Get_Rid_For_Lrange(lrange, &rid_vec); +//if(!lrange->Spans_Multiregions()) { + vector< RID*> rid_vec; + vector< RID* >::iterator iter; + Get_Rid_For_Lrange(lrange, &rid_vec); for(iter=rid_vec.begin(); iter !=rid_vec.end(); iter++ ) { - RID* rid = *iter; - if(rid && RID_TYPE_minor(rid)) { - GRA_PARA_REGION* region = gra_para_region_mgr.Get(rid); - REGISTER_SET exclude_set = region->Registers_Exclude(lrange->Rc()); - allowed = REGISTER_SET_Difference(allowed, exclude_set); - } + RID* rid = *iter; + if(rid && RID_TYPE_minor(rid)) { + GRA_PARA_REGION* region = gra_para_region_mgr.Get(rid); + REGISTER_SET exclude_set = region->Registers_Exclude(lrange->Rc()); + allowed = REGISTER_SET_Difference(allowed, exclude_set); + } } -// } +//} #endif if ( lrange->Has_Wired_Register() ) { @@ -918,11 +916,11 @@ #ifdef TARG_SL2 //minor_reg_alloc BB* bb = gbb->Bb(); - if(BB_rid(bb) && RID_TYPE_minor(BB_rid(bb))) { - GRA_PARA_REGION* region = gra_para_region_mgr.Get(BB_rid(bb)); - REGISTER_SET exclude_set = region->Registers_Exclude(rc); + if(BB_rid(bb) && RID_TYPE_minor(BB_rid(bb))) { + GRA_PARA_REGION* region = gra_para_region_mgr.Get(BB_rid(bb)); + REGISTER_SET exclude_set = region->Registers_Exclude(rc); allowed = REGISTER_SET_Difference(allowed, exclude_set); - } + } #endif #ifdef HAS_STACKED_REGISTERS @@ -967,12 +965,12 @@ GRA_GRANT_Local_Register(gbb,rc,reg); #ifdef TARG_SL //minor_reg_alloc if(BB_rid(gbb->Bb()) && RID_TYPE_minor(BB_rid(gbb->Bb()))) { - RID* rid = BB_rid(gbb->Bb()); - RID* pair_rid = gra_para_region_mgr.Get_Pair_Rid(rid); - GRA_PARA_REGION * pair_region = - gra_para_region_mgr.Get(pair_rid); - pair_region->Add_One_Exclude_Register(rc, reg); - } + RID* rid = BB_rid(gbb->Bb()); + RID* pair_rid = gra_para_region_mgr.Get_Pair_Rid(rid); + GRA_PARA_REGION * pair_region = + gra_para_region_mgr.Get(pair_rid); + pair_region->Add_One_Exclude_Register(rc, reg); + } #endif } else { @@ -1454,18 +1452,18 @@ void Set_Children_GRA_Colored (RID * rid) { - RID* kid; + RID* kid; - if(rid == NULL) return; //func_entry rid - - RID_was_gra_Set(rid); - RID_has_reg_alloc_Set(rid); + if(rid == NULL) return; //func_entry rid - for(kid = RID_first_kid(rid); kid != NULL; kid = RID_next(kid)) - { - Set_Children_GRA_Colored(kid); - } - return; + RID_was_gra_Set(rid); + RID_has_reg_alloc_Set(rid); + + for(kid = RID_first_kid(rid); kid != NULL; kid = RID_next(kid)) + { + Set_Children_GRA_Colored(kid); + } + return; } #endif // TARG_SL Modified: trunk/osprey/be/cg/gra_mon/gra_create.cxx =================================================================== --- trunk/osprey/be/cg/gra_mon/gra_create.cxx 2010-08-03 05:03:53 UTC (rev 3300) +++ trunk/osprey/be/cg/gra_mon/gra_create.cxx 2010-08-04 03:11:36 UTC (rev 3301) @@ -481,10 +481,10 @@ RID * rid = BB_rid(bb); GRA_PARA_REGION* para_region = gra_para_region_mgr.Get(rid); if(rid && RID_TYPE_minor(rid)) { - gra_para_region_mgr.Add_Rid_Into_Minor_Vector(rid); + gra_para_region_mgr.Add_Rid_Into_Minor_Vector(rid); } if(para_region) - para_region->Add_BB(bb); + para_region->Add_BB(bb); #endif @@ -2245,40 +2245,39 @@ void Mark_Lrange_For_Minor_Thread() { - ISA_REGISTER_CLASS rc; - GRA_REGION_RC_NL_LRANGE_ITER iter0; - GRA_REGION_GBB_ITER gbb_iter; - GRA_REGION *region = gra_region_mgr.Complement_Region(); + ISA_REGISTER_CLASS rc; + GRA_REGION_RC_NL_LRANGE_ITER iter0; + GRA_REGION_GBB_ITER gbb_iter; + GRA_REGION *region = gra_region_mgr.Complement_Region(); -// FOR_ALL_ISA_REGISTER_CLASS( rc ) { - rc = ISA_REGISTER_CLASS_integer; - for (iter0.Init(region,rc); ! iter0.Done(); iter0.Step()) { - LRANGE* lrange0 = iter0.Current(); - LRANGE_LIVE_GBB_ITER live_gbb_iter; - LRANGE_LUNIT_ITER lunit_iter; -/* for now we think the rid_count greater than 2 means the lrange spans multi-region, - * there only two parallel regions active at same time in minor mode - */ - vector<INT> met_rid; - for (lunit_iter.Init(lrange0); !lunit_iter.Done(); lunit_iter.Step()) - { - LUNIT* lunit = lunit_iter.Current(); - GRA_BB *live_gbb = lunit->Gbb(); - BB* bb = live_gbb->Bb(); - if(BB_rid(bb) && RID_TYPE_minor(BB_rid(bb))) { // NULL for func_entry region - if(find(met_rid.begin(), met_rid.end(), RID_id(BB_rid(bb))) == met_rid.end()) { - met_rid.push_back(RID_id(BB_rid(bb))); - } - } - } - if(met_rid.size() > 1 && met_rid.size() < 3) - { - lrange0->Spans_Multiregions_Set(); - } - met_rid.clear(); + // FOR_ALL_ISA_REGISTER_CLASS( rc ) { + rc = ISA_REGISTER_CLASS_integer; + for (iter0.Init(region,rc); ! iter0.Done(); iter0.Step()) { + LRANGE* lrange0 = iter0.Current(); + LRANGE_LIVE_GBB_ITER live_gbb_iter; + LRANGE_LUNIT_ITER lunit_iter; + /* for now we think the rid_count greater than 2 means the lrange spans multi-region, + * there only two parallel regions active at same time in minor mode + */ + vector<INT> met_rid; + for (lunit_iter.Init(lrange0); !lunit_iter.Done(); lunit_iter.Step()) + { + LUNIT* lunit = lunit_iter.Current(); + GRA_BB *live_gbb = lunit->Gbb(); + BB* bb = live_gbb->Bb(); + if(BB_rid(bb) && RID_TYPE_minor(BB_rid(bb))) { // NULL for func_entry region + if(find(met_rid.begin(), met_rid.end(), RID_id(BB_rid(bb))) == met_rid.end()) { + met_rid.push_back(RID_id(BB_rid(bb))); + } } -//} - + } + if(met_rid.size() > 1 && met_rid.size() < 3) + { + lrange0->Spans_Multiregions_Set(); + } + met_rid.clear(); + } + //} } #endif Modified: trunk/osprey/be/cg/gra_mon/gra_grant.cxx =================================================================== --- trunk/osprey/be/cg/gra_mon/gra_grant.cxx 2010-08-03 05:03:53 UTC (rev 3300) +++ trunk/osprey/be/cg/gra_mon/gra_grant.cxx 2010-08-04 03:11:36 UTC (rev 3301) @@ -226,10 +226,10 @@ #if defined (TARG_SL) if ((REGISTER_SET_MemberP(REGISTER_CLASS_function_value(rc), reg))) { if (BB_call(gbb->Bb())) - if (GTN_SET_MemberP(BB_live_out(gbb->Bb()),Build_Dedicated_TN(rc, reg, 8))) - return; - else if (GTN_SET_MemberP(BB_live_in (gbb->Bb()),Build_Dedicated_TN(rc, reg, 8))) - return; + if (GTN_SET_MemberP(BB_live_out(gbb->Bb()),Build_Dedicated_TN(rc, reg, 8))) + return; + else if (GTN_SET_MemberP(BB_live_in (gbb->Bb()),Build_Dedicated_TN(rc, reg, 8))) + return; } else #endif @@ -293,15 +293,15 @@ gbb->Registers_Used(rc)); FOR_ALL_REGISTER_SET_members(free_regs, reg) { #ifdef TARG_SL2 //minor_reg_alloc - if(BB_rid(gbb->Bb()) && RID_TYPE_minor(BB_rid(gbb->Bb()))) - { - GRA_PARA_REGION* region = gra_para_region_mgr.Get(BB_rid(gbb->Bb())); - if( !REGISTER_SET_Intersection1(region->Registers_Exclude(rc), reg)) - GRA_GRANT_Local_Register(gbb, rc, reg); - } - else + if(BB_rid(gbb->Bb()) && RID_TYPE_minor(BB_rid(gbb->Bb()))) + { + GRA_PARA_REGION* region = gra_para_region_mgr.Get(BB_rid(gbb->Bb())); + if( !REGISTER_SET_Intersection1(region->Registers_Exclude(rc), reg)) + GRA_GRANT_Local_Register(gbb, rc, reg); + } + else #endif - GRA_GRANT_Local_Register(gbb, rc, reg); + GRA_GRANT_Local_Register(gbb, rc, reg); } } } Modified: trunk/osprey/be/cg/gra_mon/gra_split.cxx =================================================================== --- trunk/osprey/be/cg/gra_mon/gra_split.cxx 2010-08-03 05:03:53 UTC (rev 3300) +++ trunk/osprey/be/cg/gra_mon/gra_split.cxx 2010-08-04 03:11:36 UTC (rev 3301) @@ -339,13 +339,13 @@ #ifdef TARG_SL //minor_reg_alloc /* exclude registers used in parallel region */ - if(BB_rid(gbb->Bb()) && RID_TYPE_minor(BB_rid(gbb->Bb()))) { - RID* rid = BB_rid(gbb->Bb()); - GRA_PARA_REGION* region = gra_para_region_mgr.Get(rid); - Is_True((region), ("para region is NULL")); - REGISTER_SET exclude_set = region->Registers_Exclude(rc); - used = REGISTER_SET_Union(used, exclude_set); - } + if(BB_rid(gbb->Bb()) && RID_TYPE_minor(BB_rid(gbb->Bb()))) { + RID* rid = BB_rid(gbb->Bb()); + GRA_PARA_REGION* region = gra_para_region_mgr.Get(rid); + Is_True((region), ("para region is NULL")); + REGISTER_SET exclude_set = region->Registers_Exclude(rc); + used = REGISTER_SET_Union(used, exclude_set); + } #endif return used; ------------------------------------------------------------------------------ The Palm PDK Hot Apps Program offers developers who use the Plug-In Development Kit to bring their C/C++ apps to Palm for a share of $1 Million in cash or HP Products. Visit us here for more details: http://p.sf.net/sfu/dev2dev-palm _______________________________________________ Open64-devel mailing list Open64-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open64-devel