aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/constexpr.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2020-08-05 12:04:59 +0200
committerGiuliano Belinassi <giuliano.belinassi@usp.br>2020-08-17 15:07:39 -0300
commitf072878bf9d4cf529d18158808c38e35661d19a0 (patch)
treea55c0a6f88fd2e0bafab050d7f4fa338c71ed8fb /gcc/cp/constexpr.c
parent19f69a3d68bb6f7ad92d6b38aab4dff69eff0945 (diff)
downloadgcc-f072878bf9d4cf529d18158808c38e35661d19a0.zip
gcc-f072878bf9d4cf529d18158808c38e35661d19a0.tar.gz
gcc-f072878bf9d4cf529d18158808c38e35661d19a0.tar.bz2
refactor LIM a bit
This refactors LIM to eschew alloc_aux_for_edges and re-uses the RPO order of the move_computations walk for invariantness computation as well. It also removes one unnecessary sorting (but retaining it as checking code because we bsearch the vector) and moves edge insert commit code to the place where it doesn't have to scan all the functions edges. This was all done when investigating whether LIM can be refactored to work on a specific loop for on-demand processing (but we're not there yet). 2020-08-05 Richard Biener <rguenther@suse.de> * tree-ssa-loop-im.c (invariantness_dom_walker): Remove. (invariantness_dom_walker::before_dom_children): Move to ... (compute_invariantness): ... this function. (move_computations): Inline ... (tree_ssa_lim): ... here, share RPO order and avoid some cfun references. (analyze_memory_references): Remove sorting of location lists, instead assert they are sorted already when checking. (prev_flag_edges): Remove. (execute_sm_if_changed): Pass down and adjust prev edge state. (execute_sm_exit): Likewise. (hoist_memory_references): Likewise. Commit edge insertions of each processed exit. (store_motion_loop): Do not commit edge insertions on all edges in the function. (tree_ssa_lim_initialize): Do not call alloc_aux_for_edges. (tree_ssa_lim_finalize): Do not call free_aux_for_edges.
Diffstat (limited to 'gcc/cp/constexpr.c')
0 files changed, 0 insertions, 0 deletions