> So, here is a new patch which doesn't need two loops, just might go a
> little bit backwards to unchain dead_debug_use for the reset insn.
>
> It still needs the change of the gcc_assert (reg) into if (reg == NULL)
> return;, because the dead->used bitmap is with this sometimes a false
> positive
On Wed, Jul 06, 2011 at 10:36:02PM +0200, Eric Botcazou wrote:
> > And here is a version that passed bootstrap/regtest on x86_64-linux and
> > i686-linux:
> >
> > 2011-07-06 Jakub Jelinek
> >
> > PR debug/49522
> > * df-problems.c (dead_debug_reset): Remove dead_debug_uses
> > refere
> And here is a version that passed bootstrap/regtest on x86_64-linux and
> i686-linux:
>
> 2011-07-06 Jakub Jelinek
>
> PR debug/49522
> * df-problems.c (dead_debug_reset): Remove dead_debug_uses
> referencing debug insns that have been reset.
> (dead_debug_insert_before
> So you prefer something like this (untested) instead?
I think that, ideally, we should avoid leaving the dead_debug chain in the
semi-broken state that we currently have.
> Without the second loop I have no idea how to make it work in
> dead_debug_reset, the other dead_debug_use referencing th
On Tue, Jul 05, 2011 at 10:06:51PM +0200, Jakub Jelinek wrote:
> On Tue, Jul 05, 2011 at 10:35:11AM +0200, Eric Botcazou wrote:
> > > There are two kinds of changes we do on the debug insns without immediate
> > > rescanning:
> > > 1) reset the debug insn
> > > 2) replace a reg use with DEBUG_EXPR
On Tue, Jul 05, 2011 at 10:35:11AM +0200, Eric Botcazou wrote:
> > There are two kinds of changes we do on the debug insns without immediate
> > rescanning:
> > 1) reset the debug insn
> > 2) replace a reg use with DEBUG_EXPR of the same mode or
> >subreg of a larger DEBUG_EXPR with the same ou
> There are two kinds of changes we do on the debug insns without immediate
> rescanning:
> 1) reset the debug insn
> 2) replace a reg use with DEBUG_EXPR of the same mode or
>subreg of a larger DEBUG_EXPR with the same outer mode as the reg
>
> In the attached testcase on arm a debug insn is r
Hi!
In dead_debug_* we don't immediately rescan insns, because that kills all
the df links we need to use, only queue their rescanning.
There are two kinds of changes we do on the debug insns without immediate
rescanning:
1) reset the debug insn
2) replace a reg use with DEBUG_EXPR of the same mo