Skip to content

Commit 2e97d64

Browse files
committed
ipa-cp: One more safe_add (PR 97816)
The new behavior of safe_add triggered an ICE because of one use where it had not been used instead of a simple addition. I'll fix it with the following obvious patch so that periodic benchmarkers can continue working because a proper fix (see below) will need a review. The testcase showed me, however, that we can propagate time and cost from one lattice to another more than once even when that was not the intent. I'll address that as a follow-up after I verify it does not affect the IPA-CP heuristics too much or change the corresponding params accordingly. Bootstrapped and tested on x86_64-linux. gcc/ChangeLog: 2020-11-13 Martin Jambor <mjambor@suse.cz> PR ipa/97816 * ipa-cp.c (value_topo_info<valtype>::propagate_effects): Use safe_add instead of a simple addition.
1 parent 6f1ae1e commit 2e97d64

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

gcc/ipa-cp.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3873,7 +3873,8 @@ value_topo_info<valtype>::propagate_effects ()
38733873
for (val = base; val; val = val->scc_next)
38743874
{
38753875
time = time + val->local_time_benefit + val->prop_time_benefit;
3876-
size = safe_add (size, val->local_size_cost + val->prop_size_cost);
3876+
size = safe_add (size, safe_add (val->local_size_cost,
3877+
val->prop_size_cost));
38773878
}
38783879

38793880
for (val = base; val; val = val->scc_next)

0 commit comments

Comments
 (0)