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
[email protected]
https://lists.sourceforge.net/lists/listinfo/open64-devel