diff options
author | Owen Anderson <resistor@mac.com> | 2009-03-14 21:40:05 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2009-03-14 21:40:05 +0000 |
commit | 0422efc994583959b7f4308daf771989783bf18c (patch) | |
tree | 560ce37fb6fcf6bc11f649d55d76a8980105ab60 | |
parent | 8e0f9ac051d32cd3b7f67648c7dde735f53a698f (diff) | |
download | bcm5719-llvm-0422efc994583959b7f4308daf771989783bf18c.tar.gz bcm5719-llvm-0422efc994583959b7f4308daf771989783bf18c.zip |
Give the pre-alloc splitter access to the VirtRegMap. It doesn't do anything
useful with it at the moment, but it will in the future.
llvm-svn: 67012
-rw-r--r-- | llvm/lib/CodeGen/PreAllocSplitting.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/PreAllocSplitting.cpp b/llvm/lib/CodeGen/PreAllocSplitting.cpp index 581320a3961..f5e540dfbb4 100644 --- a/llvm/lib/CodeGen/PreAllocSplitting.cpp +++ b/llvm/lib/CodeGen/PreAllocSplitting.cpp @@ -15,6 +15,7 @@ //===----------------------------------------------------------------------===// #define DEBUG_TYPE "pre-alloc-split" +#include "VirtRegMap.h" #include "llvm/CodeGen/LiveIntervalAnalysis.h" #include "llvm/CodeGen/LiveStackAnalysis.h" #include "llvm/CodeGen/MachineDominators.h" @@ -57,6 +58,7 @@ namespace { MachineRegisterInfo *MRI; LiveIntervals *LIs; LiveStacks *LSs; + VirtRegMap *VRM; // Barrier - Current barrier being processed. MachineInstr *Barrier; @@ -100,8 +102,10 @@ namespace { AU.addPreservedID(PHIEliminationID); AU.addRequired<MachineDominatorTree>(); AU.addRequired<MachineLoopInfo>(); + AU.addRequired<VirtRegMap>(); AU.addPreserved<MachineDominatorTree>(); AU.addPreserved<MachineLoopInfo>(); + AU.addPreserved<VirtRegMap>(); MachineFunctionPass::getAnalysisUsage(AU); } @@ -917,6 +921,9 @@ void PreAllocSplitting::RenumberValno(VNInfo* VN) { MO.setReg(NewVReg); } + // Grow the VirtRegMap, since we've created a new vreg. + VRM->grow(); + // The renumbered vreg shares a stack slot with the old register. if (IntervalSSMap.count(CurrLI->reg)) IntervalSSMap[NewVReg] = IntervalSSMap[CurrLI->reg]; @@ -1512,6 +1519,7 @@ bool PreAllocSplitting::runOnMachineFunction(MachineFunction &MF) { MRI = &MF.getRegInfo(); LIs = &getAnalysis<LiveIntervals>(); LSs = &getAnalysis<LiveStacks>(); + VRM = &getAnalysis<VirtRegMap>(); bool MadeChange = false; |