Bernd Schmidt <ber...@codesourcery.com> writes:
> On 11/29/11 20:02, Richard Sandiford wrote:
>> Bernd Schmidt <ber...@codesourcery.com> writes:
>>>> The reason I'm suddenly "reviewing" the code now is that it
>>>> doesn't prevent shrink-wrapping, because nothing adds register 2
>>>> to the liveness info of the affected blocks.  The temporary prologue
>>>> value of register 2 is then moved into register 15.
>>>
>>> Hmm. Are we just missing another df_analyze call?
>> 
>> Well, if we do the kind of backwards walk I was thinking about (so that
>> we can handle chains), it might be better to update the liveness sets
>> we care about as we go.  A full df_analyze after each move would be
>> pretty expensive.
>
> Doesn't that have some cleverness to update only modified basic blocks?

Yes, but it still involves recomputing the LR info for each bb,
which in turn means walking the insns in the affected blocks.
Then we enter the iterative dataflow solver to propagate the
changes to other blocks (although it will of course converge
quickly in this case).  Doing that once per move would be expensive.

Richard

Reply via email to