aboutsummaryrefslogtreecommitdiff
path: root/gcc/range-op-float.cc
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@redhat.com>2023-09-13 11:52:15 -0400
committerAndrew MacLeod <amacleod@redhat.com>2023-09-19 10:30:40 -0400
commitbf6b107e2a342319b3787ec960fc8014ef3aff91 (patch)
tree3eb95486492b81a13d602cc1c3bddb098ce2c87a /gcc/range-op-float.cc
parent6851e3423c2b5ec6516efa0677745d25c905e079 (diff)
downloadgcc-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