On Fri, May 8, 2020 at 7:11 PM Jeff Law via Gcc-patches <gcc-patches@gcc.gnu.org> wrote: > > On Fri, 2020-05-08 at 13:06 -0300, Giuliano Belinassi via Gcc-patches wrote: > > Hi, > > > > This patch Refactors tree-vrp.c to eliminate all global variables except > > 'x_vrp_values', which will require that 'thread_outgoing_edges' to > > accept an extra argument and pass it to the 'simplify' callback. > > > > It also removes every access to 'cfun', retrieving the function being > > compiled from the pass engine. > > > > Bootstrapped and ran the testsuite on Linux x86_64. > > > > gcc/ChangeLog > > 2020-05-08 Giuliano Belinassi <giuliano.belina...@usp.br> > > > > * tree-vrp.c (class liveness): New. > > (insert_range_assertions): Move to class liveness. > > (dump_all_asserts): Same as above. > > (dump_asserts_for): Same as above. > > (live): Same as above. > > (need_assert_for): Same as above. > > (live_on_edge): Same as above. > > (finish_register_edge_assert_for): Same as above. > > (find_switch_asserts): Same as above. > > (find_assert_locations): Same as above. > > (find_assert_locations_1): Same as above. > > (find_conditional_asserts): Same as above. > > (process_assert_insertions): Same as above. > > (register_new_assert_for): Same as above. > > (vrp_prop): New variable fun. > > (vrp_initialize): New parameter. > > (identify_jump_threads): Same as above. > > (execute_vrp): Same as above. > Just a note. While the old VRP implementation in tree-vrp.c is on the > chopping > block, but it'll likely be the end of summer before we know if further work in > the new Ranger based implementation will be needed to totally replace tree-vrp > w/o introducing any performance regressions. > > Thus, IMHO, we should go forward with the review.
Agreed, so I went ahead and reviewed it. The only comment I have is that 'liveness' is not a good match for the machinery which is about insertion of ASSERT_EXPR stmts for VRP. I suggest to use vrp_insert or vrp_asserts instead. OK with that change. Richard. > > Jeff > > >