Don't run instrumented value profiler changes with afdo
authorAndi Kleen <ak@linux.intel.com>
Thu, 14 Jul 2016 02:14:02 +0000 (02:14 +0000)
committerAndi Kleen <ak@gcc.gnu.org>
Thu, 14 Jul 2016 02:14:02 +0000 (02:14 +0000)
The pass to transform gimple based on value profiling runs with autofdo
on, but currently every transformation fails. For indirect calls autofdo
does it on its own, and it doesn't suppport other value profiling. So don't
run this pass when autofdo is active. This also avoids bogus
dump file entries.

gcc/:

2016-07-13  Andi Kleen  <ak@linux.intel.com>

* value-prof.c (gimple_value_profile_transformations): Don't run
when auto_profile is on.

From-SVN: r238321

gcc/ChangeLog
gcc/value-prof.c

index b4b8f74c1caad6f38c5d9fc990377b3f7fb568b7..134db049278c76744da1fad46dfd01dabc0c73a6 100644 (file)
@@ -1,3 +1,8 @@
+2016-07-13  Andi Kleen  <ak@linux.intel.com>
+
+       * value-prof.c (gimple_value_profile_transformations): Don't run
+       when auto_profile is on.
+
 2016-07-13  Andi Kleen  <ak@linux.intel.com>
 
        * auto-profile.c (update_inlined_ind_target,
index f9574b679bd6e3dcefaec2d806f70be1530c9386..2976a86c7941b3cbb21452354fc2357f9dbf9084 100644 (file)
@@ -645,6 +645,12 @@ gimple_value_profile_transformations (void)
   basic_block bb;
   gimple_stmt_iterator gsi;
   bool changed = false;
+
+  /* Autofdo does its own transformations for indirect calls,
+     and otherwise does not support value profiling.  */
+  if (flag_auto_profile)
+    return false;
+
   FOR_EACH_BB_FN (bb, cfun)
     {
       for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))