summaryrefslogtreecommitdiff
path: root/gcc/ipa-fnsummary.c
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2017-05-23 12:20:05 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2017-05-23 12:20:05 +0000
commit03211402fa5654d1c8510fd5eedef4645086bb17 (patch)
treee4d22843243ba91a62b378b110a3a43beb809462 /gcc/ipa-fnsummary.c
parent1297cbcd474e8dd6e8e16001321498d3c5749b8f (diff)
downloadgcc-03211402fa5654d1c8510fd5eedef4645086bb17.tar.gz
* ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
that nonconst implies exec. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248366 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ipa-fnsummary.c')
-rw-r--r--gcc/ipa-fnsummary.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/ipa-fnsummary.c b/gcc/ipa-fnsummary.c
index d9006d1e218..0a5abb54780 100644
--- a/gcc/ipa-fnsummary.c
+++ b/gcc/ipa-fnsummary.c
@@ -2738,11 +2738,14 @@ estimate_node_size_and_time (struct cgraph_node *node,
for (i = 0; vec_safe_iterate (info->size_time_table, i, &e); i++)
{
- bool nonconst = e->nonconst_predicate.evaluate (possible_truths);
bool exec = e->exec_predicate.evaluate (nonspec_possible_truths);
- gcc_assert (!nonconst || exec);
+
+ /* Because predicates are conservative, it can happen that nonconst is 1
+ but exec is 0. */
if (exec)
{
+ bool nonconst = e->nonconst_predicate.evaluate (possible_truths);
+
gcc_checking_assert (e->time >= 0);
gcc_checking_assert (time >= 0);