On 7/31/2022 1:17 PM, Iain Sandoe via Gcc-patches wrote:
Hi Richi,
On 29 Jul 2022, at 09:54, Richard Biener via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
The following makes the backward threader reject threads whose entry
edge is probably never executed according to the profile. That in
particular, for the testcase, avoids threading the irq == 1 check
on the path where irq > 31, thereby avoiding spurious -Warray-bounds
diagnostics
This breaks bootstrap on i686-darwin{9,17} with what looks like a valid
warning (werrors on stage2)
cc1plus … -O2 -Wall … is enough to.
I can repeat it on a cross from x86_64-darwin19, so I can probably reduce the
.ii (it’s like 2M5 raw) and file a PR if you like - depends if the solution
might be obvious to you …
I suspect what's happening here is by suppressing the jump thread we're
leaving an unexecutable path through the CFG in the IL. The warning is
likely on that unexecutable path or at a join point where the
unexecutable path re-joins the main path through the CFG.
Jeff