Author: rramanar Date: 2011-07-01 04:06:42 -0400 (Fri, 01 Jul 2011) New Revision: 3667
Modified: trunk/osprey/be/cg/cg_flags.cxx trunk/osprey/be/cg/cg_flags.h trunk/osprey/be/cg/cgdriver.cxx Log: This diff enables more control to X8664 - Scale, Index, Base - (SIB) flag CG_merge_counters_x86 with the BOOL variable CG_merge_counters_x86_set. Using this hook, we proceed to set CG_merge_counters_x86 at O3 thereby enabling default SIB at O3. This change has been tested with SPEC 2006 int/fp and other FP applications. Code reviewed by Jian-Xin Lai (CG domain gatekeeper) Modified: trunk/osprey/be/cg/cg_flags.cxx =================================================================== --- trunk/osprey/be/cg/cg_flags.cxx 2011-06-30 02:34:59 UTC (rev 3666) +++ trunk/osprey/be/cg/cg_flags.cxx 2011-07-01 08:06:42 UTC (rev 3667) @@ -127,6 +127,7 @@ BOOL CG_LOOP_nounroll_best_fit_set = FALSE; BOOL CG_strcmp_expand = TRUE; BOOL CG_merge_counters_x86 = FALSE; +BOOL CG_merge_counters_x86_set = FALSE; BOOL CG_interior_ptrs_x86 = FALSE; BOOL CG_NoClear_Avx_Simd = FALSE; #endif Modified: trunk/osprey/be/cg/cg_flags.h =================================================================== --- trunk/osprey/be/cg/cg_flags.h 2011-06-30 02:34:59 UTC (rev 3666) +++ trunk/osprey/be/cg/cg_flags.h 2011-07-01 08:06:42 UTC (rev 3667) @@ -538,6 +538,7 @@ extern BOOL CG_branch_fuse; extern BOOL CG_strcmp_expand; extern BOOL CG_merge_counters_x86; +extern BOOL CG_merge_counters_x86_set; extern BOOL CG_interior_ptrs_x86; // enable,disable interior pointer trans extern BOOL CG_NoClear_Avx_Simd; #endif Modified: trunk/osprey/be/cg/cgdriver.cxx =================================================================== --- trunk/osprey/be/cg/cgdriver.cxx 2011-06-30 02:34:59 UTC (rev 3666) +++ trunk/osprey/be/cg/cgdriver.cxx 2011-07-01 08:06:42 UTC (rev 3667) @@ -481,7 +481,7 @@ { OVK_BOOL, OV_VISIBLE, TRUE, "strcmp_expand", "", 0, 0, 0, &CG_strcmp_expand, NULL }, { OVK_BOOL, OV_VISIBLE, TRUE, "merge_counters_x86", "", - 0, 0, 0, &CG_merge_counters_x86, NULL }, + 0, 0, 0, &CG_merge_counters_x86, &CG_merge_counters_x86_set }, { OVK_BOOL, OV_VISIBLE, TRUE, "interior_ptrs", "", 0, 0, 0, &CG_interior_ptrs_x86, NULL }, { OVK_BOOL, OV_VISIBLE, TRUE, "noavx_clear", "", @@ -2659,6 +2659,8 @@ // for unrolled loops. CG_merge_counters_x86 = TRUE; LOCS_PRE_Enable_Unroll_RegPressure_Sched = TRUE; + } else if (CG_opt_level == 3 && CG_merge_counters_x86_set == FALSE) { + CG_merge_counters_x86 = TRUE; } } #endif //TARG_X8664 ------------------------------------------------------------------------------ All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2d-c2 _______________________________________________ Open64-devel mailing list Open64-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open64-devel