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

Reply via email to