diff options
author | Andrew MacLeod <amacleod@redhat.com> | 2023-09-13 11:52:15 -0400 |
---|---|---|
committer | Andrew MacLeod <amacleod@redhat.com> | 2023-09-19 10:30:40 -0400 |
commit | bf6b107e2a342319b3787ec960fc8014ef3aff91 (patch) | |
tree | 3eb95486492b81a13d602cc1c3bddb098ce2c87a /gcc/range-op-float.cc | |
parent | 6851e3423c2b5ec6516efa0677745d25c905e079 (diff) | |
download | gcc-bf6b107e2a342319b3787ec960fc8014ef3aff91.zip gcc-bf6b107e2a342319b3787ec960fc8014ef3aff91.tar.gz gcc-bf6b107e2a342319b3787ec960fc8014ef3aff91.tar.bz2 |
New early __builtin_unreachable processing.
in VRP passes before __builtin_unreachable MUST be removed, only remove it
if all exports affected by the unreachable can have global values updated, and
do not involve loads from memory.
PR tree-optimization/110080
PR tree-optimization/110249
gcc/
* tree-vrp.cc (remove_unreachable::final_p): New.
(remove_unreachable::maybe_register): Rename from
maybe_register_block and call early or final routine.
(fully_replaceable): New.
(remove_unreachable::handle_early): New.
(remove_unreachable::remove_and_update_globals): Remove
non-final processing.
(rvrp_folder::rvrp_folder): Add final flag to constructor.
(rvrp_folder::post_fold_bb): Remove unreachable registration.
(rvrp_folder::pre_fold_stmt): Move unreachable processing to here.
(execute_ranger_vrp): Adjust some call parameters.
gcc/testsuite/
* g++.dg/pr110249.C: New.
* gcc.dg/pr110080.c: New.
* gcc.dg/pr93917.c: Adjust.
Diffstat (limited to 'gcc/range-op-float.cc')
0 files changed, 0 insertions, 0 deletions