Do not assume loop header threading in backward threader.
authorAldy Hernandez <aldyh@redhat.com>
Fri, 3 Sep 2021 10:07:49 +0000 (12:07 +0200)
committerAldy Hernandez <aldyh@redhat.com>
Fri, 3 Sep 2021 15:22:04 +0000 (17:22 +0200)
commit01005550377ff17716e6ad57c62df726877ab79f
tree51d3c834eb82b6fe444f28e1f473d79e85d2cf22
parent62099645c204f64cbf2546fc7c2cd0428c4990e0
Do not assume loop header threading in backward threader.

The registry's thread_through_all_blocks() has a may_peel_loop_headers
argument.  When refactoring the backward threader code, I removed this
argument for the local passthru method because it was always TRUE.  This
may not necessarily be true in the future, if the backward threader is
called from another context.  This patch removes the default definition,
in favor of an argument that is exactly the same as the identically
named function in tree-ssa-threadupdate.c.  I think this also makes it
less confusing when looking at both methods across the source base.

Tested on x86-64 Linux.

gcc/ChangeLog:

* tree-ssa-threadbackward.c (back_threader::thread_through_all_blocks):
Add may_peel_loop_headers.
(back_threader_registry::thread_through_all_blocks): Same.
(try_thread_blocks): Pass may_peel_loop_headers argument.
(pass_early_thread_jumps::execute): Same.
gcc/tree-ssa-threadbackward.c