]> git.ipfire.org Git - thirdparty/gcc.git/commit
Move array_bounds warnings into a separate pass.
authorAndrew MacLeod <amacleod@redhat.com>
Wed, 5 Jun 2024 19:12:27 +0000 (15:12 -0400)
committerAndrew MacLeod <amacleod@redhat.com>
Mon, 10 Jun 2024 20:26:58 +0000 (16:26 -0400)
commit74ee12ff68243bb177fb8653474dff80c3792139
tree6c006043c78264870d2d3424305ee5cd489fee29
parent9aaf29b9ba5ffe332220d002ddde85d96fd6657d
Move array_bounds warnings into a separate pass.

Array bounds checking is currently tied to VRP.  This causes issues with
using laternate VRP algorithms as well as experimenting with moving
the location of the warnings later.   This moves it to its own pass
and cleans up the vrp_pass object.

* gimple-array-bounds.cc (array_bounds_checker::array_bounds_checker):
Always use current range_query.
(pass_data_array_bounds): New.
(pass_array_bounds): New.
(make_pass_array_bounds): New.
* gimple-array-bounds.h  (array_bounds_checker): Adjust prototype.
* passes.def (pass_array_bounds): New.  Add after VRP1.
* timevar.def (TV_TREE_ARRAY_BOUNDS): New timevar.
* tree-pass.h (make_pass_array_bounds): Add prototype.
* tree-vrp.cc (execute_ranger_vrp): Remove warning param and do
not invoke array bounds warning pass.
(pass_vrp::pass_vrp): Adjust params.
(pass_vrp::close): Adjust parameters.
(pass_vrp::warn_array_bounds_p): Remove.
(make_pass_vrp): Remove warning param.
(make_pass_early_vrp): Remove warning param.
(make_pass_fast_vrp): Remove warning param.
gcc/gimple-array-bounds.cc
gcc/gimple-array-bounds.h
gcc/passes.def
gcc/timevar.def
gcc/tree-pass.h
gcc/tree-vrp.cc