mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-12 17:25:49 +00:00
Make SplitAnalysis::UseSlots private.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148031 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1264,7 +1264,7 @@ void RAGreedy::calcGapWeights(unsigned PhysReg,
|
|||||||
SmallVectorImpl<float> &GapWeight) {
|
SmallVectorImpl<float> &GapWeight) {
|
||||||
assert(SA->getUseBlocks().size() == 1 && "Not a local interval");
|
assert(SA->getUseBlocks().size() == 1 && "Not a local interval");
|
||||||
const SplitAnalysis::BlockInfo &BI = SA->getUseBlocks().front();
|
const SplitAnalysis::BlockInfo &BI = SA->getUseBlocks().front();
|
||||||
const SmallVectorImpl<SlotIndex> &Uses = SA->UseSlots;
|
ArrayRef<SlotIndex> Uses = SA->getUseSlots();
|
||||||
const unsigned NumGaps = Uses.size()-1;
|
const unsigned NumGaps = Uses.size()-1;
|
||||||
|
|
||||||
// Start and end points for the interference check.
|
// Start and end points for the interference check.
|
||||||
@@ -1325,7 +1325,7 @@ unsigned RAGreedy::tryLocalSplit(LiveInterval &VirtReg, AllocationOrder &Order,
|
|||||||
// that the interval is continuous from FirstInstr to LastInstr. We should
|
// that the interval is continuous from FirstInstr to LastInstr. We should
|
||||||
// make sure that we don't do anything illegal to such an interval, though.
|
// make sure that we don't do anything illegal to such an interval, though.
|
||||||
|
|
||||||
const SmallVectorImpl<SlotIndex> &Uses = SA->UseSlots;
|
ArrayRef<SlotIndex> Uses = SA->getUseSlots();
|
||||||
if (Uses.size() <= 2)
|
if (Uses.size() <= 2)
|
||||||
return 0;
|
return 0;
|
||||||
const unsigned NumGaps = Uses.size()-1;
|
const unsigned NumGaps = Uses.size()-1;
|
||||||
@@ -1333,7 +1333,7 @@ unsigned RAGreedy::tryLocalSplit(LiveInterval &VirtReg, AllocationOrder &Order,
|
|||||||
DEBUG({
|
DEBUG({
|
||||||
dbgs() << "tryLocalSplit: ";
|
dbgs() << "tryLocalSplit: ";
|
||||||
for (unsigned i = 0, e = Uses.size(); i != e; ++i)
|
for (unsigned i = 0, e = Uses.size(); i != e; ++i)
|
||||||
dbgs() << ' ' << SA->UseSlots[i];
|
dbgs() << ' ' << Uses[i];
|
||||||
dbgs() << '\n';
|
dbgs() << '\n';
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -46,9 +46,6 @@ public:
|
|||||||
const MachineLoopInfo &Loops;
|
const MachineLoopInfo &Loops;
|
||||||
const TargetInstrInfo &TII;
|
const TargetInstrInfo &TII;
|
||||||
|
|
||||||
// Sorted slot indexes of using instructions.
|
|
||||||
SmallVector<SlotIndex, 8> UseSlots;
|
|
||||||
|
|
||||||
/// Additional information about basic blocks where the current variable is
|
/// Additional information about basic blocks where the current variable is
|
||||||
/// live. Such a block will look like one of these templates:
|
/// live. Such a block will look like one of these templates:
|
||||||
///
|
///
|
||||||
@@ -85,6 +82,9 @@ private:
|
|||||||
// Current live interval.
|
// Current live interval.
|
||||||
const LiveInterval *CurLI;
|
const LiveInterval *CurLI;
|
||||||
|
|
||||||
|
// Sorted slot indexes of using instructions.
|
||||||
|
SmallVector<SlotIndex, 8> UseSlots;
|
||||||
|
|
||||||
/// LastSplitPoint - Last legal split point in each basic block in the current
|
/// LastSplitPoint - Last legal split point in each basic block in the current
|
||||||
/// function. The first entry is the first terminator, the second entry is the
|
/// function. The first entry is the first terminator, the second entry is the
|
||||||
/// last valid split point for a variable that is live in to a landing pad
|
/// last valid split point for a variable that is live in to a landing pad
|
||||||
@@ -155,6 +155,10 @@ public:
|
|||||||
/// splitting.
|
/// splitting.
|
||||||
bool isOriginalEndpoint(SlotIndex Idx) const;
|
bool isOriginalEndpoint(SlotIndex Idx) const;
|
||||||
|
|
||||||
|
/// getUseSlots - Return an array of SlotIndexes of instructions using CurLI.
|
||||||
|
/// This include both use and def operands, at most one entry per instruction.
|
||||||
|
ArrayRef<SlotIndex> getUseSlots() const { return UseSlots; }
|
||||||
|
|
||||||
/// getUseBlocks - Return an array of BlockInfo objects for the basic blocks
|
/// getUseBlocks - Return an array of BlockInfo objects for the basic blocks
|
||||||
/// where CurLI has uses.
|
/// where CurLI has uses.
|
||||||
ArrayRef<BlockInfo> getUseBlocks() const { return UseBlocks; }
|
ArrayRef<BlockInfo> getUseBlocks() const { return UseBlocks; }
|
||||||
|
Reference in New Issue
Block a user