diff options
author | Richard Biener <rguenther@suse.de> | 2022-11-09 13:52:58 +0100 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2022-11-09 14:51:00 +0100 |
commit | 837be6c7cfb49e16a18ef8f6c44d98bfa6d2396b (patch) | |
tree | c9140707ce2acb3c57d6df163a2ad5b4d71bff44 | |
parent | 3ed1b4ce7c9bdf8c777d12da0f5fe4cae8ba7c8e (diff) | |
download | gcc-837be6c7cfb49e16a18ef8f6c44d98bfa6d2396b.zip gcc-837be6c7cfb49e16a18ef8f6c44d98bfa6d2396b.tar.gz gcc-837be6c7cfb49e16a18ef8f6c44d98bfa6d2396b.tar.bz2 |
tree-optimization/84646 - remove premature thread path rejection
This removes a premature rejection that's done later in a different
way.
PR tree-optimization/84646
* tree-ssa-threadbackward.cc (back_threader::maybe_register_path):
Remove premature cycle rejection.
-rw-r--r-- | gcc/tree-ssa-threadbackward.cc | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/gcc/tree-ssa-threadbackward.cc b/gcc/tree-ssa-threadbackward.cc index 2a8cfa3..2290b95 100644 --- a/gcc/tree-ssa-threadbackward.cc +++ b/gcc/tree-ssa-threadbackward.cc @@ -249,25 +249,16 @@ back_threader::maybe_register_path (back_threader_profitability &profit) if (taken_edge && taken_edge != UNREACHABLE_EDGE) { - if (m_visited_bbs.contains (taken_edge->dest)) + bool irreducible = false; + if (profit.profitable_path_p (m_path, taken_edge, &irreducible) + && debug_counter () + && m_registry.register_path (m_path, taken_edge)) { - // Avoid circular paths by indicating there is nothing to - // see in this direction. - taken_edge = UNREACHABLE_EDGE; + if (irreducible) + vect_free_loop_info_assumptions (m_path[0]->loop_father); } else - { - bool irreducible = false; - if (profit.profitable_path_p (m_path, taken_edge, &irreducible) - && debug_counter () - && m_registry.register_path (m_path, taken_edge)) - { - if (irreducible) - vect_free_loop_info_assumptions (m_path[0]->loop_father); - } - else - taken_edge = NULL; - } + taken_edge = NULL; } if (dump_file && (dump_flags & TDF_DETAILS)) |