diff options
author | Andi Kleen <ak@linux.intel.com> | 2016-07-14 02:14:02 +0000 |
---|---|---|
committer | Andi Kleen <ak@gcc.gnu.org> | 2016-07-14 02:14:02 +0000 |
commit | 038ec4b7b90f6278e686d61634cb046cd09d3b8f (patch) | |
tree | 176c06c787d25806a113c92e1a36e48970b573d5 /gcc | |
parent | 0ea221ef245cd19b2308fdfa497d49156e1b801d (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/value-prof.c | 6 |
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)) |