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]

Re: flow patch for building ia64


>> > So it appears that I should do the same thing with ar.pfs on a sibcall
>> > as we do with b0, mark it as used?
>> 
>> I thought EPILOGUE_USES would take care of this.
>> 

EPILOGUE_USES makes sure that ar.pfs is live on exit. The last instruction
in the block is the sibcall, which kills ar.pfs... since the load
of r39 (or whatever it was) into ar.pfs happens 2 or 3 instructions in front
of the sibcall, and the sibcall clobbers ar.pfs, flow now thinks that
the move can be removed. The fact the EPILOGUE_USES makes it live on exit doesn't
help us.
  We'd have the same problem with b0 if the sibcall didn't mark it as used.

>> > And then does that mean I should do that with CCVS and UNAT too?
>> 
>> Definitely not for CCVS -- that's a true temporary.  But
>> UNAT ought to be checked on.

OK, I didnt even know what CCVs was :-)

I fully expect the same situation with UNAT.

So should we mark these registers as uses on the sibcall, like b0?
It is theoretically going to use both of them..... the same way it's
going to use b0...

Andrew


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