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: new-regalloc vs alpha




On Tue, 30 Jan 2001, Richard Henderson wrote:

> On Tue, Jan 30, 2001 at 12:23:06PM -0500, Daniel Berlin wrote:
> > I was trying to decide whether to do it the way your patch does,
> > or insert them as precolored nodes and make them interefere with
> > everything.
>
> The later may be better.  I found a case where a pseudo was
> coelesed with a fixed register, which is bad.  I hacked around
> the problem like so.
Yeah, I know about this.
I have to add it into the heuristic for coalescing hard regs that you
can't coalesce fixed regs, ever.

See, we can coalesce hard regs with normal regs, and even (dependning on
the situation) hard regs with hard regs, but never fixed regs with
anything.

(IIRC, we already take care to coalesce the pseudo witht he hard, so that
the hard stays, rather than the other way around.)

It is effectively your patch, moved to the OK routine (which
is the misnamed routine that handles coalescing of precolored nodes. I'll
rename it, even though this is what the paper uses.).


>
> > Weird. We should't be giving a register to something that isn't compatible
> > with that register. We use HARD_REGNO_MODE_OK to verify the register can

> > hold something of the mode of the thing we want to put in it.
>
> No, no, you misunderstand.  An FP register _can_ hold a DImode value.
> In fact, it is required to in order for fp<->int conversion to work.
> It's just that if you write
>
> 	(set (reg:DI foo) (mem:DI (reg:DI $f10)))
>
> Ie use an FP register as a base reg for a memory, then this insn
> will not be recognized.

Oh, oh, i get it.
Gotcha.
Shouldn't reload fix this for us though?
I'll take a look at all of this after i finish live range splitting.


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