comparison lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp @ 120:1172e4bd9c6f

update 4.0.0
author mir3636
date Fri, 25 Nov 2016 19:14:25 +0900
parents afa8332a0e37
children 803732b1fca8
comparison
equal deleted inserted replaced
101:34baf5011add 120:1172e4bd9c6f
319 // This is a temporary workaround. 319 // This is a temporary workaround.
320 SUnits.reserve(NumNodes * 2); 320 SUnits.reserve(NumNodes * 2);
321 321
322 // Add all nodes in depth first order. 322 // Add all nodes in depth first order.
323 SmallVector<SDNode*, 64> Worklist; 323 SmallVector<SDNode*, 64> Worklist;
324 SmallPtrSet<SDNode*, 64> Visited; 324 SmallPtrSet<SDNode*, 32> Visited;
325 Worklist.push_back(DAG->getRoot().getNode()); 325 Worklist.push_back(DAG->getRoot().getNode());
326 Visited.insert(DAG->getRoot().getNode()); 326 Visited.insert(DAG->getRoot().getNode());
327 327
328 SmallVector<SUnit*, 8> CallSUnits; 328 SmallVector<SUnit*, 8> CallSUnits;
329 while (!Worklist.empty()) { 329 while (!Worklist.empty()) {
748 // Did not insert any instruction. 748 // Did not insert any instruction.
749 Orders.push_back(std::make_pair(Order, (MachineInstr*)nullptr)); 749 Orders.push_back(std::make_pair(Order, (MachineInstr*)nullptr));
750 return; 750 return;
751 } 751 }
752 752
753 Orders.push_back(std::make_pair(Order, std::prev(Emitter.getInsertPos()))); 753 Orders.push_back(std::make_pair(Order, &*std::prev(Emitter.getInsertPos())));
754 ProcessSDDbgValues(N, DAG, Emitter, Orders, VRBaseMap, Order); 754 ProcessSDDbgValues(N, DAG, Emitter, Orders, VRBaseMap, Order);
755 } 755 }
756 756
757 void ScheduleDAGSDNodes:: 757 void ScheduleDAGSDNodes::
758 EmitPhysRegCopy(SUnit *SU, DenseMap<SUnit*, unsigned> &VRBaseMap, 758 EmitPhysRegCopy(SUnit *SU, DenseMap<SUnit*, unsigned> &VRBaseMap,