aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndi Kleen <ak@linux.intel.com>2016-07-14 02:14:02 +0000
committerAndi Kleen <ak@gcc.gnu.org>2016-07-14 02:14:02 +0000
commit038ec4b7b90f6278e686d61634cb046cd09d3b8f (patch)
tree176c06c787d25806a113c92e1a36e48970b573d5 /gcc
parent0ea221ef245cd19b2308fdfa497d49156e1b801d (diff)
downloadgcc-038ec4b7b90f6278e686d61634cb046cd09d3b8f.zip
gcc-038ec4b7b90f6278e686d61634cb046cd09d3b8f.tar.gz
gcc-038ec4b7b90f6278e686d61634cb046cd09d3b8f.tar.bz2
Don't run instrumented value profiler changes with afdo
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/value-prof.c6
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b4b8f74..134db04 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
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,
afdo_indirect_call): Print information to dump file.
diff --git a/gcc/value-prof.c b/gcc/value-prof.c
index f9574b6..2976a86 100644
--- a/gcc/value-prof.c
+++ b/gcc/value-prof.c
@@ -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))