aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-profile.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ipa-profile.c')
-rw-r--r--gcc/ipa-profile.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/ipa-profile.c b/gcc/ipa-profile.c
index 99d1309..340d033 100644
--- a/gcc/ipa-profile.c
+++ b/gcc/ipa-profile.c
@@ -418,7 +418,8 @@ ipa_propagate_frequency (struct cgraph_node *node)
nor about virtuals. */
if (!node->local.local
|| node->alias
- || (flag_devirtualize && DECL_VIRTUAL_P (node->decl)))
+ || (opt_for_fn (node->decl, flag_devirtualize)
+ && DECL_VIRTUAL_P (node->decl)))
return false;
gcc_assert (node->analyzed);
if (dump_file && (dump_flags & TDF_DETAILS))
@@ -754,7 +755,7 @@ public:
{}
/* opt_pass methods: */
- virtual bool gate (function *) { return flag_ipa_profile; }
+ virtual bool gate (function *) { return flag_ipa_profile || in_lto_p; }
virtual unsigned int execute (function *) { return ipa_profile (); }
}; // class pass_ipa_profile