[patch] Fix PR rtl-optimization/100411

2021-05-05 Thread Eric Botcazou
Hi, this is the bootstrap failure of GCC 11 on MinGW64 configured with --enable- tune=nocona. The bottom line is that SEH does not support CFI for epilogues but the x86 back-end nevertheless attaches it to instructions, so we have to filter it out and this is done by detecting the end of the pr

Re: [patch] Fix PR rtl-optimization/100411

2021-05-05 Thread Jakub Jelinek via Gcc-patches
On Wed, May 05, 2021 at 01:00:35PM +0200, Eric Botcazou wrote: > 2021-05-05 Eric Botcazou > > PR rtl-optimization/100411 > * cfgcleanup.c (try_crossjump_to_edge): Also skip end of prologue > and beginning of function markers. > > -- > Eric Botcazou > diff --git a/gcc/cfgcle

Re: [patch] Fix PR rtl-optimization/100411

2021-05-05 Thread Eric Botcazou
> I mean, can't we have just one while loop that skips over all debug insns, > NOTE_INSN_BASIC_BLOCK_P, NOTE_INSN_PROLOGUE_END and NOTE_INSN_FUNCTION_BEG > and stops on anything else, or, if we want to skip at most one of some or > all of those note kinds, do some tracking if we've already skipped

Re: [patch] Fix PR rtl-optimization/100411

2021-05-05 Thread Jakub Jelinek via Gcc-patches
On Wed, May 05, 2021 at 01:21:20PM +0200, Eric Botcazou wrote: > > I mean, can't we have just one while loop that skips over all debug insns, > > NOTE_INSN_BASIC_BLOCK_P, NOTE_INSN_PROLOGUE_END and NOTE_INSN_FUNCTION_BEG > > and stops on anything else, or, if we want to skip at most one of some or

Re: [patch] Fix PR rtl-optimization/100411

2021-05-05 Thread Eric Botcazou
> At least for NOTE_INSN_BASIC_BLOCK skipping more than one might > be problematic, because that would mean we've skipped into a different basic > block and it wouldn't surprise me if split_block in that case crashed or > did something weird (if the first argument is not BLOCK_FOR_INSN of the > sec

Re: [patch] Fix PR rtl-optimization/100411

2021-05-05 Thread Jakub Jelinek via Gcc-patches
On Wed, May 05, 2021 at 02:19:27PM +0200, Eric Botcazou wrote: > > At least for NOTE_INSN_BASIC_BLOCK skipping more than one might > > be problematic, because that would mean we've skipped into a different basic > > block and it wouldn't surprise me if split_block in that case crashed or > > did so