diff options
author | Jakub Jelinek <jakub@redhat.com> | 2024-01-05 11:18:17 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2024-01-05 11:18:17 +0100 |
commit | b8faf1fca42a9b987fec0992ca5d63995b2640b3 (patch) | |
tree | 9778db5cc23ae6696c7415fa9769e1f1c3afc51d /contrib/mark_spam.py | |
parent | 0152637c74c9eab7658483b1cca4e3d584dd4262 (diff) | |
download | gcc-b8faf1fca42a9b987fec0992ca5d63995b2640b3.zip gcc-b8faf1fca42a9b987fec0992ca5d63995b2640b3.tar.gz gcc-b8faf1fca42a9b987fec0992ca5d63995b2640b3.tar.bz2 |
scev: Avoid ICE on results used in abnormal PHI args [PR113201]
The following testcase ICEs when rslt is SSA_NAME_OCCURS_IN_ABNORMAL_PHI
and we call replace_uses_by with a INTEGER_CST def, where it ICEs on:
if (e->flags & EDGE_ABNORMAL
&& !SSA_NAME_OCCURS_IN_ABNORMAL_PHI (val))
because val is not an SSA_NAME. One way would be to add
&& TREE_CODE (val) == SSA_NAME
check in between the above 2 lines in replace_uses_by.
And/or the following patch just punts propagating constants to
SSA_NAME_OCCURS_IN_ABNORMAL_PHI rslt uses.
Or we could punt somewhere earlier in final value replacement (but dunno
where).
2024-01-05 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/113201
* tree-scalar-evolution.cc (final_value_replacement_loop): Don't call
replace_uses_by on SSA_NAME_OCCURS_IN_ABNORMAL_PHI rslt.
* gcc.c-torture/compile/pr113201.c: New test.
Diffstat (limited to 'contrib/mark_spam.py')
0 files changed, 0 insertions, 0 deletions