This is the mail archive of the gcc-bugs@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: Dec 30 patch causes large performance regression on ia64


On Thu, Mar 01, 2001 at 02:41:30PM +0000, Bernd Schmidt wrote:
> The problem: if conversion doesn't deal with calls very well;
> they have to end the block or we can't optimize.
[...]
> Ideas?

(A) Teach reload about cond_exec, so that the spill/fill instructions
    it generates are protected by the same predicate.  Then we can do
    if-conversion before register allocation and then reload will see
    that the predicate register is live across a call and put it in a
    call-saved hard reg.

(B) Hack pre-reload ifcvt to notice when we'd like to if-convert a
    block and emit a USE at the end.  Now the pseudo is live across
    the call (and conflicts with other predicates used within the
    block).  This might let us if-convert more often.

Either one would require that we know that there are call-saved
predicates in the architecture.


r~


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