This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Patch,AVR]: Fix PR36467, PR49687 (better widening mul)


On 07/18/2011 12:15 PM, Georg-Johann Lay wrote:
>> However, what you've done is try very hard to work around reload
>> doing the Right Thing with constant spilling, namely re-generate
>> the constant rather than spill and restore it.  I cannot believe
>> that's the right way to proceed.
> 
> You mean that with a clobber reload will rematerialize the constant
> if there are not enough registers instead of spilling it?
> And with an ordinary move like
>    (set (reg) (const_int))
> reload will not see that it can reaterialize it and spill it to
> the stack?

Well, it certainly didn't use to.

Vlad, do you know what the current state of the register allocator
is wrt this sort of rematerialization?

> Moreover, I wonder why target-independent code does not already
> catch the situation because the pattern to be generated is just
> an ordinary umulqihi3 widening multiplication.

Yes, it is sad that the backends have to work around the fact
that sign/zero_extension of constants is invalid rtl.


r~ 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]