diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2021-07-29 20:15:26 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2021-07-29 20:15:26 +0000 |
commit | 344a3780b2e33f6ca763666c380202b18aab72a3 (patch) | |
tree | f0b203ee6eb71d7fdd792373e3c81eb18d6934dd /llvm/lib/CodeGen/SplitKit.h | |
parent | b60736ec1405bb0a8dd40989f67ef4c93da068ab (diff) | |
download | src-344a3780b2e33f6ca763666c380202b18aab72a3.tar.gz src-344a3780b2e33f6ca763666c380202b18aab72a3.zip |
Vendor import of llvm-project main 88e66fa60ae5, the last commit beforevendor/llvm-project/llvmorg-13-init-16847-g88e66fa60ae5vendor/llvm-project/llvmorg-12.0.1-rc2-0-ge7dac564cd0evendor/llvm-project/llvmorg-12.0.1-0-gfed41342a82f
the upstream release/13.x branch was created.
Diffstat (limited to 'llvm/lib/CodeGen/SplitKit.h')
-rw-r--r-- | llvm/lib/CodeGen/SplitKit.h | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/llvm/lib/CodeGen/SplitKit.h b/llvm/lib/CodeGen/SplitKit.h index a94518f5a4fc..fbcffacb49ab 100644 --- a/llvm/lib/CodeGen/SplitKit.h +++ b/llvm/lib/CodeGen/SplitKit.h @@ -44,6 +44,7 @@ class MachineRegisterInfo; class TargetInstrInfo; class TargetRegisterInfo; class VirtRegMap; +class VirtRegAuxInfo; /// Determines the latest safe point in a block in which we can insert a split, /// spill or other instruction related with CurLI. @@ -131,6 +132,9 @@ public: bool isOneInstr() const { return SlotIndex::isSameInstr(FirstInstr, LastInstr); } + + void print(raw_ostream &OS) const; + void dump() const; }; private: @@ -235,6 +239,10 @@ public: return IPA.getLastInsertPoint(*CurLI, *MF.getBlockNumbered(Num)); } + SlotIndex getLastSplitPoint(MachineBasicBlock *BB) { + return IPA.getLastInsertPoint(*CurLI, *BB); + } + MachineBasicBlock::iterator getLastSplitPointIter(MachineBasicBlock *BB) { return IPA.getLastInsertPointIter(*CurLI, *BB); } @@ -265,6 +273,7 @@ class LLVM_LIBRARY_VISIBILITY SplitEditor { const TargetInstrInfo &TII; const TargetRegisterInfo &TRI; const MachineBlockFrequencyInfo &MBFI; + VirtRegAuxInfo &VRAI; public: /// ComplementSpillMode - Select how the complement live range should be @@ -450,9 +459,9 @@ private: public: /// Create a new SplitEditor for editing the LiveInterval analyzed by SA. /// Newly created intervals will be appended to newIntervals. - SplitEditor(SplitAnalysis &sa, AAResults &aa, LiveIntervals &lis, - VirtRegMap &vrm, MachineDominatorTree &mdt, - MachineBlockFrequencyInfo &mbfi); + SplitEditor(SplitAnalysis &SA, AAResults &AA, LiveIntervals &LIS, + VirtRegMap &VRM, MachineDominatorTree &MDT, + MachineBlockFrequencyInfo &MBFI, VirtRegAuxInfo &VRAI); /// reset - Prepare for a new split. void reset(LiveRangeEdit&, ComplementSpillMode = SM_Partition); @@ -502,7 +511,8 @@ public: SlotIndex leaveIntvAtTop(MachineBasicBlock &MBB); /// overlapIntv - Indicate that all instructions in range should use the open - /// interval, but also let the complement interval be live. + /// interval if End does not have tied-def usage of the register and in this + /// case compliment interval is used. Let the complement interval be live. /// /// This doubles the register pressure, but is sometimes required to deal with /// register uses after the last valid split point. |