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

Reply via email to