On Fri, Jan 13, 2012 at 10:58 AM, Richard Sandiford
<richard.sandif...@linaro.org> wrote:

>>>> The problem my patch solves is the answer to the question "Is the
>>>> choosen non-live temporary register untouched over the insn
>>>> sequence?". The answer: "Yes, if it was not set or clobbered by any
>>>> insn in the sequence".
>>>
>>> Are you sure that you don't need to do this in addition to the existing 
>>> test,
>>> instead of in lieu of the existing test?
>>
>> Yes, because new test ALWAYS includes the registers that were wrongly
>> marked as dead by previous test due to REG_UNUSED and noclobber
>> processing.
>
> Yeah, the patch looks like the right fix to me FWIW.  Being able to use
> DF_INSN_DEFS in this way is part of the point of having df: when going
> from one insn to the next within the same bb, there are no "hidden"
> influences that would cause a register to become live outside of
> DF_INSN_DEFS.  The only requirement is that we call df_insn_rescan
> on new instructions, and we do (in peep2_update_life, where we need
> it for df_simulate_one_insn_backwards).
>
> Or to put it another way: the insn-to-insn changes in the current liveness
> sets are all produced by df_simulate_one_insn_{backwards,forwards}, which
> uses the same information.  So I don't think there's any reason why we
> need to keep the current code as well.

Patch was approved offline by Richard Sandiford, so committed to
mainline SVN, will be committed to release branches after bootstrap &
regression tests.

Thanks,
Uros.

Reply via email to