Hi all,I'm currently building a vliw port based on a llvm 3.5.0 from 2014, where I have enabled the MachineScheduler to run bottom up. I see that there is an issue with respect to the moment when instructions move from pending to ready. Namely instructions which should still be pending become ready too earlysuch that I end up with true dependent instructions being issued at the same cycle.I think the issue comes from ScheduleDAGMILive::schedule() function. Inside it the updating of the queues happens before SchedImpl->schedNode(SU, IsTopNode) is being called while should have happened after.See bellow the code fragment where perhaps the call from 1020 should be after line 1032: 1020: updateQueues(SU, IsTopNode); if (DFSResult) { unsigned SubtreeID = DFSResult->getSubtreeID(SU); if (!ScheduledTrees.test(SubtreeID)) { ScheduledTrees.set(SubtreeID); DFSResult->scheduleTree(SubtreeID); SchedImpl->scheduleTree(SubtreeID); } } // Notify the scheduling strategy after updating the DAG.1032: SchedImpl->schedNode(SU, IsTopNode); The MachineScheduler.cpp file that I use in my port you can see here:http://llvm.org/viewvc/llvm-project/llvm/branches/release_35/lib/CodeGen/MachineScheduler.cpp?revision=215011&view=markup For oo machines the issue that I observe wont trigger a bug but in my case as im porting llvmto a vliw (where i produce bundles) instructions becoming ready too early leads to incorrect code. thanks,Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20151112/fbd3b434/attachment.html>