https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120003
Andrew Macleod <amacleod at redhat dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |aldy at quesejoda dot com
--- Comment #3 from Andrew Macleod <amacleod at redhat dot com> ---
Im not good with the threader, but it does seem like there is a big difference
in the threading oass just before VRP1:
--- gcc11: ----
Checking profitability of path (backwards): bb:3 (2 insns) bb:7 (4 insns) bb:6
(1 insns) bb:5
Control statement insns: 2
Overall: 5 insns
Registering FSM jump thread: (5, 6) incoming edge; (6, 7) (7, 3) (3, 6)
nocopy; (3, 6)
Checking profitability of path (backwards): bb:3 (2 insns) bb:7 (4 insns) bb:6
(1 insns) bb:4
Control statement insns: 2
Overall: 5 insns
Registering FSM jump thread: (4, 6) incoming edge; (6, 7) (7, 3) (3, 4)
nocopy; (3, 4)
Checking profitability of path (backwards): bb:3 (2 insns) bb:7 (4 insns) bb:6
(1 insns) bb:3
Control statement insns: 2
Overall: 5 insns
Registering FSM jump thread: (3, 6) incoming edge; (6, 7) (7, 3) (3, 6)
nocopy; (3, 6)
about to thread: path: 5 -> 6, 6 -> 7, 7 -> 3, 3 -> 6,
just threaded: path: 5 -> 9, 6 -> 7, 7 -> 3, 3 -> 6,
about to thread: path: 3 -> 6, 6 -> 7, 7 -> 3, 3 -> 6,
Jump threading proved probability of edge 3->6 too small (it is 59.0% (guessed)
should be always (guessed))
just threaded: path: 3 -> 12, 6 -> 7, 7 -> 3, 3 -> 12,
about to thread: path: 4 -> 6, 6 -> 7, 7 -> 3, 3 -> 4,
Jump threading proved probability of edge 3->4 too small (it is 73.5% (guessed)
should be 88.5% (guessed))
just threaded: path: 4 -> 15, 6 -> 7, 7 -> 3, 3 -> 4,
--- trunk: ----
And with trunk it appears we we reject those threads due to
"FAIL: Would create irreducible loop early without threading multiway
branch.
Checking profitability of path (backwards): bb:3 (2 insns) bb:7
Control statement insns: 2
Overall: 0 insns
path: 7->3->xx REJECTED
Checking profitability of path (backwards): bb:3 (2 insns) bb:7 (2 insns) bb:6
(latch)
Control statement insns: 2
Overall: 2 insns
Registering killing_def (path_oracle) retval_10
path: 6->7->3->xx REJECTED
Checking profitability of path (backwards): bb:3 (2 insns) bb:7 (2 insns) bb:6
(1 insns) (latch) bb:4
Control statement insns: 2
Overall: 3 insns
Registering killing_def (path_oracle) retval_10
Checking profitability of path (backwards): FAIL: Would create irreducible
loop early without threading multiway branch.
path: 4->6->7->3->xx REJECTED
Checking profitability of path (backwards): bb:3 (2 insns) bb:7 (2 insns) bb:6
(1 insns) (latch) bb:9
Control statement insns: 2
Overall: 3 insns
Registering killing_def (path_oracle) retval_10
Checking profitability of path (backwards): FAIL: Would create irreducible
loop early without threading multiway branch.
path: 9->6->7->3->xx REJECTED
Checking profitability of path (backwards): bb:7 (2 insns) bb:6 (latch)
Control statement insns: 2
Overall: 0 insns