This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug debug/47881] [4.6 Regression] -fcompare-debug failure (length) with -O -fno-dce -funroll-loops -fno-web
- From: "jakub at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 7 Mar 2011 11:33:09 +0000
- Subject: [Bug debug/47881] [4.6 Regression] -fcompare-debug failure (length) with -O -fno-dce -funroll-loops -fno-web
- Auto-submitted: auto-generated
- References: <bug-47881-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47881
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-03-07 11:32:53 UTC ---
Problems start when the combiner leaves in a trivially dead insn by substing it
later on in some subsequent insn. Nothing until IRA calls
delete_trivially_dead_insns, and when IRA calls it, it removes that insn, which
effectively shortens the lifetime of one of the pseudos. Unfortunately that
psuedo is set multiple times (probably -funroll-loops is the reason), so
delete_trivially_dead_insns isn't trying to reset or change related debug
insns, it doesn't have enough infrastructure to do so. Normally DF would then
reset them, but DF isn't recomputed until IRA finishes.