diff options
Diffstat (limited to 'llvm/lib/CodeGen/SplitKit.h')
-rw-r--r-- | llvm/lib/CodeGen/SplitKit.h | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/llvm/lib/CodeGen/SplitKit.h b/llvm/lib/CodeGen/SplitKit.h index 78f0bbd24db5e..3ab5f2585f346 100644 --- a/llvm/lib/CodeGen/SplitKit.h +++ b/llvm/lib/CodeGen/SplitKit.h @@ -23,8 +23,8 @@ #include "llvm/ADT/SmallPtrSet.h" #include "llvm/ADT/SmallVector.h" #include "llvm/CodeGen/LiveInterval.h" +#include "llvm/CodeGen/LiveIntervalCalc.h" #include "llvm/CodeGen/LiveIntervals.h" -#include "llvm/CodeGen/LiveRangeCalc.h" #include "llvm/CodeGen/MachineBasicBlock.h" #include "llvm/CodeGen/MachineFunction.h" #include "llvm/CodeGen/SlotIndexes.h" @@ -34,6 +34,7 @@ namespace llvm { +class AAResults; class LiveIntervals; class LiveRangeEdit; class MachineBlockFrequencyInfo; @@ -53,7 +54,7 @@ private: /// Last legal insert point in each basic block in the current function. /// The first entry is the first terminator, the second entry is the /// last valid point to insert a split or spill for a variable that is - /// live into a landing pad successor. + /// live into a landing pad or inlineasm_br successor. SmallVector<std::pair<SlotIndex, SlotIndex>, 8> LastInsertPoint; SlotIndex computeLastInsertPoint(const LiveInterval &CurLI, @@ -256,7 +257,7 @@ public: /// class LLVM_LIBRARY_VISIBILITY SplitEditor { SplitAnalysis &SA; - AliasAnalysis &AA; + AAResults &AA; LiveIntervals &LIS; VirtRegMap &VRM; MachineRegisterInfo &MRI; @@ -327,21 +328,21 @@ private: /// its def. The full live range can be inferred exactly from the range /// of RegIdx in RegAssign. /// 3. (Null, true). As above, but the ranges in RegAssign are too large, and - /// the live range must be recomputed using LiveRangeCalc::extend(). + /// the live range must be recomputed using ::extend(). /// 4. (VNI, false) The value is mapped to a single new value. /// The new value has no live ranges anywhere. ValueMap Values; - /// LRCalc - Cache for computing live ranges and SSA update. Each instance + /// LICalc - Cache for computing live ranges and SSA update. Each instance /// can only handle non-overlapping live ranges, so use a separate - /// LiveRangeCalc instance for the complement interval when in spill mode. - LiveRangeCalc LRCalc[2]; + /// LiveIntervalCalc instance for the complement interval when in spill mode. + LiveIntervalCalc LICalc[2]; - /// getLRCalc - Return the LRCalc to use for RegIdx. In spill mode, the + /// getLICalc - Return the LICalc to use for RegIdx. In spill mode, the /// complement interval can overlap the other intervals, so it gets its own - /// LRCalc instance. When not in spill mode, all intervals can share one. - LiveRangeCalc &getLRCalc(unsigned RegIdx) { - return LRCalc[SpillMode != SM_Partition && RegIdx != 0]; + /// LICalc instance. When not in spill mode, all intervals can share one. + LiveIntervalCalc &getLICalc(unsigned RegIdx) { + return LICalc[SpillMode != SM_Partition && RegIdx != 0]; } /// Find a subrange corresponding to the lane mask @p LM in the live @@ -414,7 +415,7 @@ private: /// all predecessor values that reach this def. If @p LR is a subrange, /// the array @p Undefs is the set of all locations where it is undefined /// via <def,read-undef> in other subranges for the same register. - void extendPHIRange(MachineBasicBlock &B, LiveRangeCalc &LRC, + void extendPHIRange(MachineBasicBlock &B, LiveIntervalCalc &LIC, LiveRange &LR, LaneBitmask LM, ArrayRef<SlotIndex> Undefs); @@ -442,7 +443,7 @@ private: public: /// Create a new SplitEditor for editing the LiveInterval analyzed by SA. /// Newly created intervals will be appended to newIntervals. - SplitEditor(SplitAnalysis &sa, AliasAnalysis &aa, LiveIntervals &lis, + SplitEditor(SplitAnalysis &sa, AAResults &aa, LiveIntervals &lis, VirtRegMap &vrm, MachineDominatorTree &mdt, MachineBlockFrequencyInfo &mbfi); |