Remove loop crossing restriction from the backward threader.
authorAldy Hernandez <aldyh@redhat.com>
Thu, 11 Nov 2021 15:12:32 +0000 (16:12 +0100)
committerAldy Hernandez <aldyh@redhat.com>
Thu, 11 Nov 2021 21:13:17 +0000 (22:13 +0100)
commita7753db4a7c071fef7a4e7fe2650d6c59cc34066
treed2b37dbb84682571cca65114fea68eacf267155a
parent8a8458ac6bbc4263dd2c1ee55979b29fc7195794
Remove loop crossing restriction from the backward threader.

We have much more thorough restrictions, that are shared between both
threader implementations, in the registry.  I've been meaning to
remove the backward threader one, since it's only purpose was reducing
the search space.  Previously there was a small time penalty for its
removal, but with the various patches in the past month, it looks like
the removal is a wash performance wise.

This catches 8 more jump threads in the backward threader in my suite.
Presumably, because we disallowed all loop crossing, whereas the
registry restrictions allow some crossing (if we exit the loop, etc).

Tested on x86-64 Linux.

gcc/ChangeLog:

* tree-ssa-threadbackward.c
(back_threader_profitability::profitable_path_p): Remove loop
crossing restriction.
gcc/tree-ssa-threadbackward.c