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 Sat, 17 Mar 2001, Richard Henderson wrote:

> (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.

Uhhhh.  This idea is nice, except that once you try it, you run into all
sorts of problems.

1) The USE won't help, because the scheduler will move it up across the
   call and we're back to where we started.
2) Once that's fixed (I added a use_predicate named pattern), it turns out
   that reg_set_p returns 1 for all regs, not just call-clobbered ones,
   when it sees a call.  The reason seems to be historical/braindead, so
   it's easily fixed as well.
3) flow complains about registers that are less wide than a word (e.g.
   BImode).  I'm inclined to kill verify_wide_reg - what's the idea behind
   it?


Bernd


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