[PATCH] Filter out Pseudo nodes in ScheduleDAGVLIW

Stefan Hepp stefan at stefant.org
Mon Apr 29 05:53:45 PDT 2013


Hi,

ScheduleDAGVLIW uses the HazardRecognizer, but does not filter out any 
Pseudo nodes, causing the ScoreboardHazardRecognizer to run into an 
assertion:

virtual void 
llvm::ScoreboardHazardRecognizer::EmitInstruction(llvm::SUnit *): 
Assertion `MCID && "The scheduler must filter non-machineinstrs"' failed.

I copied the EmitNode function from ScheduleDAGRRList which does exactly 
that and added it to ScheduleDAGVLIW, and filtered out COPY_TO_REGCLASS 
in the ResourcePriorityQueue, now the VLIW scheduler also works for my 
custom backend (and the llvm tests still work).

I attached the patch to this email. It is against LLVM 3.2, but the 
relevant code has not changed in upstream.

Regards,
  Stefan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Filter-out-pseudo-nodes-in-ScheduleDAGVLIW.patch
Type: text/x-patch
Size: 3404 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130429/07f4569c/attachment.bin>


More information about the llvm-commits mailing list