[LLVMdev] HazardRecognizer and RegisterAllocation

Dan Gohman gohman at apple.com
Tue Jan 20 12:46:11 PST 2009


On Jan 19, 2009, at 6:39 PM, Scott Michel wrote:

> Dan:
>
> CellSPU could clearly benefit from the post-RA scheduler. In fact, we
> were thinking about writing a machine pass of our own.
>
> One thing that does "disturb" me is that both HazardRecognizer and
> post-RA sched assume there's only one kind of NOP. For Cell, there
> are two, depending upon the pipeline being filled. Pipe 0 takes
> "ENOP" whereas Pipe 1 take "LNOP" (depends on the low order PC bits.)

I'm open to suggestions and patches for making the HazardRecognizer
interface more flexible. It may also be worthwhile to look at
whether the TargetInstrInfo::insertNoop hook could be extended to
be able to meet this need.

One potential problem to watch out for is that the post-RA scheduler
currently runs before BranchFolding, which may disturb things if
you're depending on lining up the code with even/odd PC addresses.
I would prefer to run the scheduler after BranchFolding, but
BranchFolding doesn't currently preserve liveness information on
which the scheduler currently depends.

Dan




More information about the llvm-dev mailing list