From 907cc8f38df212a87a6028682d91df01ba923f4f Mon Sep 17 00:00:00 2001 From: Lang Hames Date: Fri, 27 Jan 2012 22:36:19 +0000 Subject: Add a "moveInstr" method to LiveIntervals. This can be used to move instructions around within a basic block while maintaining live-intervals. Updated ScheduleTopDownLive in MachineScheduler.cpp to use the moveInstr API when reordering MIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149147 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/MachineScheduler.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'lib/CodeGen/MachineScheduler.cpp') diff --git a/lib/CodeGen/MachineScheduler.cpp b/lib/CodeGen/MachineScheduler.cpp index a14b391223..73560bdc61 100644 --- a/lib/CodeGen/MachineScheduler.cpp +++ b/lib/CodeGen/MachineScheduler.cpp @@ -43,6 +43,7 @@ public: const TargetInstrInfo *TII; const MachineLoopInfo *MLI; const MachineDominatorTree *MDT; + LiveIntervals *LIS; MachineScheduler(); @@ -236,7 +237,7 @@ void ScheduleTopDownLive::Schedule() { if (&*InsertPos == MI) ++InsertPos; else { - BB->splice(InsertPos, BB, MI); + Pass->LIS->moveInstr(InsertPos, MI); if (Begin == InsertPos) Begin = MI; } @@ -253,6 +254,7 @@ bool MachineScheduler::runOnMachineFunction(MachineFunction &mf) { MF = &mf; MLI = &getAnalysis(); MDT = &getAnalysis(); + LIS = &getAnalysis(); TII = MF->getTarget().getInstrInfo(); // Select the scheduler, or set the default. -- cgit v1.2.3-18-g5258