This is the mail archive of the gcc@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: new-new-ra thoughts


neroden@fastmail.fm (Nathanael Nerode) writes:

> OK, so we've come up with some interesting information...
> 
> Steven Bosscher said:
> >Specifically, "instruction selection",
> >or in GCC terms alternative selection, should happen before regalloc
> >as much as possible, and in general machine descriptions should not
> >rely on reload to fix all the silly insns that look nothing like the
> >actual machine instructions.
> 
> This is clearly correct.  This could be, in some sense, a "lowering" stage,
> in which "generic RTL" (well, semi-generic) is transformed into
> "machine-specific RTL".
> 
> Can this, in fact, be done before register allocation using the current
> machine descriptions?  If so, it would be worth working out a proof of concept.
> 
> --
> I don't know the state of pseudo use prior to regalloc.  Has liveness analysis
> been performed, so that each pseudo corresponds to a single live range?
> 
> If so it would be worthwhile to have a pass which identified pseudos for
> which there simply is no valid register class available, and split their
> ranges early.
> 
> Thinking out loud:
> If a particular pseudo (live range) has several alternative instruction
> selection choices, but some combinations could only be satisfied by a
> particularly small register class, perhaps some sort of cost mechanism could
> encourage use of the instructions which have large register classes.  Hmm.
> That's not going to work because it won't spread the use of the classes
> around.  How about (grotesque, I know) producing solutions for both
> expansions and providing them to the register allocator?...
> 
> -- 
> This space intentionally left blank.


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