Pārlūkot izejas kodu

Force the greedy register allocator to always use the inline spiller.

Soon, RegAllocGreedy will start splitting live ranges, and then deferred
spilling won't work anyway.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121591 91177308-0d34-0410-b5e6-96231b3b80d8
Jakob Stoklund Olesen 14 gadi atpakaļ
vecāks
revīzija
f6dff84d4e
3 mainītis faili ar 8 papildinājumiem un 7 dzēšanām
  1. 1 1
      lib/CodeGen/RegAllocGreedy.cpp
  2. 0 6
      lib/CodeGen/Spiller.cpp
  3. 7 0
      lib/CodeGen/Spiller.h

+ 1 - 1
lib/CodeGen/RegAllocGreedy.cpp

@@ -311,7 +311,7 @@ bool RAGreedy::runOnMachineFunction(MachineFunction &mf) {
                      getAnalysis<LiveIntervals>());
 
   ReservedRegs = TRI->getReservedRegs(*MF);
-  SpillerInstance.reset(createSpiller(*this, *MF, *VRM));
+  SpillerInstance.reset(createInlineSpiller(*this, *MF, *VRM));
   allocatePhysRegs();
   addMBBLiveIns(MF);
 

+ 0 - 6
lib/CodeGen/Spiller.cpp

@@ -231,12 +231,6 @@ public:
 
 } // end anonymous namespace
 
-namespace llvm {
-Spiller *createInlineSpiller(MachineFunctionPass &pass,
-                             MachineFunction &mf,
-                             VirtRegMap &vrm);
-}
-
 llvm::Spiller* llvm::createSpiller(MachineFunctionPass &pass,
                                    MachineFunction &mf,
                                    VirtRegMap &vrm) {

+ 7 - 0
lib/CodeGen/Spiller.h

@@ -44,6 +44,13 @@ namespace llvm {
   Spiller* createSpiller(MachineFunctionPass &pass,
                          MachineFunction &mf,
                          VirtRegMap &vrm);
+
+  /// Create and return a spiller that will insert spill code directly instead
+  /// of deferring though VirtRegMap.
+  Spiller *createInlineSpiller(MachineFunctionPass &pass,
+                               MachineFunction &mf,
+                               VirtRegMap &vrm);
+
 }
 
 #endif