> I think we need to update there in all cases.  The reason we don't need to
> update beyond i3 resp. undobuf.other_insn is that DF guarantees us that
> there won't be debug insns referring to those pseudos afterwards, otherwise
> either the pseudo must be live afterwards in real code (then it wouldn't
> be a single use case), or debug insns would be reset, or a debug temporary
> would be created, where the temporary is set before last place where
> the pseudo is used in real code.  Now, once we propagate_for_debug after
> some insn, DF hasn't been run in between and thus the pseudos might be live
> afterwards.

Frankly moving down last_combined_insn to undobuf.other_insn in the UNDO_MODE 
case seems a little overengineered at this point.

> If you just want to avoid a global variable, the code can be surely changed
> to have a local variable from combine_instructions and pass address to that
> to all try_combine calls, but other than that I think we should do what the
> patch does.

I'd eliminate the global variable and directly pass the insn to try_combine, 
this is good enough for now IMO.

-- 
Eric Botcazou

Reply via email to