diff options
| author | Owen Anderson <resistor@mac.com> | 2008-11-05 00:32:13 +0000 | 
|---|---|---|
| committer | Owen Anderson <resistor@mac.com> | 2008-11-05 00:32:13 +0000 | 
| commit | 26c10f1b4ad4b404bdd7094033e4d4e41f2ef2ab (patch) | |
| tree | c8d8ea0fde81fee5f95e8c0705252ea01ab69ce5 /llvm | |
| parent | 33ba5e78d2679d989dd5bbab0d5274b736ac6d1e (diff) | |
| download | bcm5719-llvm-26c10f1b4ad4b404bdd7094033e4d4e41f2ef2ab.tar.gz bcm5719-llvm-26c10f1b4ad4b404bdd7094033e4d4e41f2ef2ab.zip  | |
Use the new predicate to control when we do prealloc splitting.  Fix a small bug.
llvm-svn: 58738
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/CodeGen/PreAllocSplitting.cpp | 6 | 
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/PreAllocSplitting.cpp b/llvm/lib/CodeGen/PreAllocSplitting.cpp index f09ea23c108..09f002aa265 100644 --- a/llvm/lib/CodeGen/PreAllocSplitting.cpp +++ b/llvm/lib/CodeGen/PreAllocSplitting.cpp @@ -648,6 +648,10 @@ bool PreAllocSplitting::SplitRegLiveInterval(LiveInterval *LI) {    if (DefMI && LIs->isReMaterializable(*LI, ValNo, DefMI))      return false; +  // If this would create a new join point, do not split. +  if (DefMI && createsNewJoin(LR, DefMI->getParent(), Barrier->getParent())) +    return false; +    // Find all references in the barrier mbb.    SmallPtrSet<MachineInstr*, 4> RefsInMBB;    for (MachineRegisterInfo::reg_iterator I = MRI->reg_begin(CurrLI->reg), @@ -862,7 +866,7 @@ bool PreAllocSplitting::createsNewJoin(LiveRange* LR,        Stack.push_back(std::make_pair(PredMBB, ++S));        continue;      } else -      Stack.push_back(std::make_pair(PredMBB, ++S)); +      Stack.push_back(std::make_pair(PredMBB, S+1));      MachineBasicBlock* MBB = *S;      Visited.insert(MBB);  | 

