diff options
author | Martin Liska <mliska@suse.cz> | 2017-07-27 14:54:17 +0200 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2017-07-27 12:54:17 +0000 |
commit | 89722cf73d9f52a127c111f7818d82c89de588a9 (patch) | |
tree | 8bfda1e41f3776ad2cca89ad13ac8cbf12e94589 | |
parent | b8163af7d91c2f5a4158a5cb6e6555b375e61ea4 (diff) | |
download | gcc-89722cf73d9f52a127c111f7818d82c89de588a9.zip gcc-89722cf73d9f52a127c111f7818d82c89de588a9.tar.gz gcc-89722cf73d9f52a127c111f7818d82c89de588a9.tar.bz2 |
Fix indirect call optimization done by autoFDO.
2017-07-27 Martin Liska <mliska@suse.cz>
* auto-profile.c (autofdo_source_profile::update_inlined_ind_target):
Fix wrong condition.
From-SVN: r250622
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/auto-profile.c | 14 |
2 files changed, 12 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cf39fda..ba28895 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2017-07-27 Martin Liska <mliska@suse.cz> + * auto-profile.c (autofdo_source_profile::update_inlined_ind_target): + Fix wrong condition. + +2017-07-27 Martin Liska <mliska@suse.cz> + * auto-profile.c (afdo_annotate_cfg): Assign zero counts to BBs and edges seen by autoFDO. diff --git a/gcc/auto-profile.c b/gcc/auto-profile.c index 552e333..9226e20 100644 --- a/gcc/auto-profile.c +++ b/gcc/auto-profile.c @@ -774,15 +774,15 @@ autofdo_source_profile::update_inlined_ind_target (gcall *stmt, hot any more. Will avoid promote the original target. To check if original promoted target is still hot, we check the total - count of the unpromoted targets (stored in old_info). If it is no less - than half of the callsite count (stored in INFO), the original promoted - target is considered not hot any more. */ - if (total >= info->count / 2) + count of the unpromoted targets (stored in TOTAL). If a callsite count + (stored in INFO) is smaller than half of the total count, the original + promoted target is considered not hot any more. */ + if (info->count < total / 2) { if (dump_file) - fprintf (dump_file, " not hot anymore %ld >= %ld", - (long)total, - (long)info->count /2); + fprintf (dump_file, " not hot anymore %ld < %ld", + (long)info->count, + (long)total /2); return false; } |