mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-15 22:28:18 +00:00
Fix a FIXME. The SlotIndex::Slot enum should be private.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110826 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -128,7 +128,8 @@ namespace llvm {
|
|||||||
friend class SlotIndexes;
|
friend class SlotIndexes;
|
||||||
friend struct DenseMapInfo<SlotIndex>;
|
friend struct DenseMapInfo<SlotIndex>;
|
||||||
|
|
||||||
private:
|
enum Slot { LOAD, USE, DEF, STORE, NUM };
|
||||||
|
|
||||||
static const unsigned PHI_BIT = 1 << 2;
|
static const unsigned PHI_BIT = 1 << 2;
|
||||||
|
|
||||||
PointerIntPair<IndexListEntry*, 3, unsigned> lie;
|
PointerIntPair<IndexListEntry*, 3, unsigned> lie;
|
||||||
@@ -146,6 +147,11 @@ namespace llvm {
|
|||||||
return entry().getIndex() | getSlot();
|
return entry().getIndex() | getSlot();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns the slot for this SlotIndex.
|
||||||
|
Slot getSlot() const {
|
||||||
|
return static_cast<Slot>(lie.getInt() & ~PHI_BIT);
|
||||||
|
}
|
||||||
|
|
||||||
static inline unsigned getHashValue(const SlotIndex &v) {
|
static inline unsigned getHashValue(const SlotIndex &v) {
|
||||||
IndexListEntry *ptrVal = &v.entry();
|
IndexListEntry *ptrVal = &v.entry();
|
||||||
return (unsigned((intptr_t)ptrVal) >> 4) ^
|
return (unsigned((intptr_t)ptrVal) >> 4) ^
|
||||||
@@ -153,11 +159,6 @@ namespace llvm {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
// FIXME: Ugh. This is public because LiveIntervalAnalysis is still using it
|
|
||||||
// for some spill weight stuff. Fix that, then make this private.
|
|
||||||
enum Slot { LOAD, USE, DEF, STORE, NUM };
|
|
||||||
|
|
||||||
static inline SlotIndex getEmptyKey() {
|
static inline SlotIndex getEmptyKey() {
|
||||||
return SlotIndex(IndexListEntry::getEmptyKeyEntry(), 0);
|
return SlotIndex(IndexListEntry::getEmptyKeyEntry(), 0);
|
||||||
}
|
}
|
||||||
@@ -235,16 +236,31 @@ namespace llvm {
|
|||||||
return other.getIndex() - getIndex();
|
return other.getIndex() - getIndex();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns the slot for this SlotIndex.
|
|
||||||
Slot getSlot() const {
|
|
||||||
return static_cast<Slot>(lie.getInt() & ~PHI_BIT);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Returns the state of the PHI bit.
|
/// Returns the state of the PHI bit.
|
||||||
bool isPHI() const {
|
bool isPHI() const {
|
||||||
return lie.getInt() & PHI_BIT;
|
return lie.getInt() & PHI_BIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// isLoad - Return true if this is a LOAD slot.
|
||||||
|
bool isLoad() const {
|
||||||
|
return getSlot() == LOAD;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// isDef - Return true if this is a DEF slot.
|
||||||
|
bool isDef() const {
|
||||||
|
return getSlot() == DEF;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// isUse - Return true if this is a USE slot.
|
||||||
|
bool isUse() const {
|
||||||
|
return getSlot() == USE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// isStore - Return true if this is a STORE slot.
|
||||||
|
bool isStore() const {
|
||||||
|
return getSlot() == STORE;
|
||||||
|
}
|
||||||
|
|
||||||
/// Returns the base index for associated with this index. The base index
|
/// Returns the base index for associated with this index. The base index
|
||||||
/// is the one associated with the LOAD slot for the instruction pointed to
|
/// is the one associated with the LOAD slot for the instruction pointed to
|
||||||
/// by this index.
|
/// by this index.
|
||||||
|
@@ -551,11 +551,9 @@ namespace llvm {
|
|||||||
return AliveStack;
|
return AliveStack;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (i.getSlot() == SlotIndex::DEF &&
|
if (i.isDef() && mi->definesRegister(li->reg, tri)) {
|
||||||
mi->definesRegister(li->reg, tri)) {
|
|
||||||
return Defined;
|
return Defined;
|
||||||
} else if (i.getSlot() == SlotIndex::USE &&
|
} else if (i.isUse() && mi->readsRegister(li->reg)) {
|
||||||
mi->readsRegister(li->reg)) {
|
|
||||||
return Used;
|
return Used;
|
||||||
} else {
|
} else {
|
||||||
if (vrm == 0 ||
|
if (vrm == 0 ||
|
||||||
@@ -771,7 +769,7 @@ namespace llvm {
|
|||||||
os << indent + s(2) << "<tr height=6ex>\n";
|
os << indent + s(2) << "<tr height=6ex>\n";
|
||||||
|
|
||||||
// Render the code column.
|
// Render the code column.
|
||||||
if (i.getSlot() == SlotIndex::LOAD) {
|
if (i.isLoad()) {
|
||||||
MachineBasicBlock *mbb = sis->getMBBFromIndex(i);
|
MachineBasicBlock *mbb = sis->getMBBFromIndex(i);
|
||||||
mi = sis->getInstructionFromIndex(i);
|
mi = sis->getInstructionFromIndex(i);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user