This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/63348] [5 Regression] gcc.dg/pr43670.c fail on MIPS
- From: "ubizjak at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 24 Sep 2014 08:16:55 +0000
- Subject: [Bug rtl-optimization/63348] [5 Regression] gcc.dg/pr43670.c fail on MIPS
- Auto-submitted: auto-generated
- References: <bug-63348-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63348
--- Comment #2 from UroÅ Bizjak <ubizjak at gmail dot com> ---
(In reply to baoshan from comment #1)
> I believe this regression is introduced by the code for cleanup_barriers()
> in jump.c of patch https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02164.html:
>
> The call insn was followed by a barrier insn, the try_split() would emit
> another barrier insn after call insn for this case( I don't know why, please
> let me know the reason); after applying that patch and with option "-g"
> there would be a note instruction between the call and barrier insns which
> result no barrier insn is emitted by try_split().
try_split should skip eventual note after the call when looking for barrier. It
looks to me that try_split blindly assumes that next insn is the barrier, which
is not the case from the introduction of debug locations.