X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FCodeGen%2FDFAPacketizer.cpp;h=ff2f11353afd04b4a770800490c3fc5c13600678;hb=10ad98bbbb00d67d4272e8f29186a65e2a75215e;hp=bfbe7790998fd8ebf2fd894c6a1223204413442b;hpb=d1a87a68064e0b9af3b71b681286954f861bb1b3;p=oota-llvm.git diff --git a/lib/CodeGen/DFAPacketizer.cpp b/lib/CodeGen/DFAPacketizer.cpp index bfbe7790998..ff2f11353af 100644 --- a/lib/CodeGen/DFAPacketizer.cpp +++ b/lib/CodeGen/DFAPacketizer.cpp @@ -116,6 +116,7 @@ DefaultVLIWScheduler::DefaultVLIWScheduler( MachineFunction &MF, MachineLoopInfo &MLI, MachineDominatorTree &MDT, bool IsPostRA) : ScheduleDAGInstrs(MF, MLI, MDT, IsPostRA) { + CanHandleTerminators = true; } void DefaultVLIWScheduler::schedule() { @@ -158,12 +159,11 @@ void VLIWPacketizerList::PacketizeMIs(MachineBasicBlock *MBB, MachineBasicBlock::iterator BeginItr, MachineBasicBlock::iterator EndItr) { assert(VLIWScheduler && "VLIW Scheduler is not initialized!"); + VLIWScheduler->startBlock(MBB); VLIWScheduler->enterRegion(MBB, BeginItr, EndItr, MBB->size()); VLIWScheduler->schedule(); - VLIWScheduler->exitRegion(); // Generate MI -> SU map. - //std::map MIToSUnit; MIToSUnit.clear(); for (unsigned i = 0, e = VLIWScheduler->SUnits.size(); i != e; ++i) { SUnit *SU = &VLIWScheduler->SUnits[i]; @@ -220,4 +220,6 @@ void VLIWPacketizerList::PacketizeMIs(MachineBasicBlock *MBB, // End any packet left behind. endPacket(MBB, EndItr); + VLIWScheduler->exitRegion(); + VLIWScheduler->finishBlock(); }