From f6dff84d4e44d6c4a46c4f8a18e13c78f804547c Mon Sep 17 00:00:00 2001 From: Jakob Stoklund Olesen Date: Fri, 10 Dec 2010 22:54:44 +0000 Subject: 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 --- lib/CodeGen/RegAllocGreedy.cpp | 2 +- lib/CodeGen/Spiller.cpp | 6 ------ lib/CodeGen/Spiller.h | 7 +++++++ 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/CodeGen/RegAllocGreedy.cpp b/lib/CodeGen/RegAllocGreedy.cpp index df816f6539..b527b9fe4e 100644 --- a/lib/CodeGen/RegAllocGreedy.cpp +++ b/lib/CodeGen/RegAllocGreedy.cpp @@ -311,7 +311,7 @@ bool RAGreedy::runOnMachineFunction(MachineFunction &mf) { getAnalysis()); ReservedRegs = TRI->getReservedRegs(*MF); - SpillerInstance.reset(createSpiller(*this, *MF, *VRM)); + SpillerInstance.reset(createInlineSpiller(*this, *MF, *VRM)); allocatePhysRegs(); addMBBLiveIns(MF); diff --git a/lib/CodeGen/Spiller.cpp b/lib/CodeGen/Spiller.cpp index 3167eeb941..c7df369583 100644 --- a/lib/CodeGen/Spiller.cpp +++ b/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) { diff --git a/lib/CodeGen/Spiller.h b/lib/CodeGen/Spiller.h index 92f092a0da..f017583494 100644 --- a/lib/CodeGen/Spiller.h +++ b/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 -- cgit v1.2.3