diff options
author | Richard Biener <rguenther@suse.de> | 2022-05-03 12:48:43 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2022-05-03 12:59:09 +0200 |
commit | 7bb6fa5a1c77ef6af26c70e3126a8b1353d1f987 (patch) | |
tree | 5c86d6c80e0891cb2a49a6fb46f165da40d733ff | |
parent | 6b4cc784806ac8676a08ecbbeadbd1bfa56073bb (diff) | |
download | gcc-7bb6fa5a1c77ef6af26c70e3126a8b1353d1f987.zip gcc-7bb6fa5a1c77ef6af26c70e3126a8b1353d1f987.tar.gz gcc-7bb6fa5a1c77ef6af26c70e3126a8b1353d1f987.tar.bz2 |
middle-end/105083 - check prerequesites in scev_initialize
2022-05-03 Richard Biener <rguenther@suse.de>
PR middle-end/105083
* tree-scalar-evolution.cc (scev_initialize): Verify we
have appropriate loop state.
* tree-ssa-dce.cc (perform_tree_ssa_dce): Re-order SCEV and
loop init and finalization.
-rw-r--r-- | gcc/tree-scalar-evolution.cc | 3 | ||||
-rw-r--r-- | gcc/tree-ssa-dce.cc | 4 |
2 files changed, 4 insertions, 3 deletions
diff --git a/gcc/tree-scalar-evolution.cc b/gcc/tree-scalar-evolution.cc index b53d7aa..72ceb40 100644 --- a/gcc/tree-scalar-evolution.cc +++ b/gcc/tree-scalar-evolution.cc @@ -2977,7 +2977,8 @@ gather_stats_on_scev_database (void) void scev_initialize (void) { - gcc_assert (! scev_initialized_p ()); + gcc_assert (! scev_initialized_p () + && loops_state_satisfies_p (cfun, LOOPS_NORMAL)); scalar_evolution_info = hash_table<scev_info_hasher>::create_ggc (100); diff --git a/gcc/tree-ssa-dce.cc b/gcc/tree-ssa-dce.cc index 2067b71..a6b2840 100644 --- a/gcc/tree-ssa-dce.cc +++ b/gcc/tree-ssa-dce.cc @@ -1866,9 +1866,9 @@ perform_tree_ssa_dce (bool aggressive) bool in_loop_pipeline = scev_initialized_p (); if (aggressive && ! in_loop_pipeline) { - scev_initialize (); loop_optimizer_init (LOOPS_NORMAL | LOOPS_HAVE_RECORDED_EXITS); + scev_initialize (); } if (aggressive) @@ -1895,8 +1895,8 @@ perform_tree_ssa_dce (bool aggressive) if (aggressive && ! in_loop_pipeline) { - loop_optimizer_finalize (); scev_finalize (); + loop_optimizer_finalize (); } longest_chain = 0; |