diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-08-03 20:59:32 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-08-03 20:59:32 +0000 |
commit | b2beac2b9671f7d9773329d62c2821c8ac449ac5 (patch) | |
tree | 217b2015fc4a4720d27c99cbfb147a2e7ba4f2b4 /include | |
parent | 1599a64277f3a01619b5614974be9bec662c7ec0 (diff) | |
download | external_llvm-b2beac2b9671f7d9773329d62c2821c8ac449ac5.zip external_llvm-b2beac2b9671f7d9773329d62c2821c8ac449ac5.tar.gz external_llvm-b2beac2b9671f7d9773329d62c2821c8ac449ac5.tar.bz2 |
Completely eliminate VNInfo flags.
The 'unused' state of a value number can be represented as an invalid
def SlotIndex. This also exposed code that shouldn't have been looking
at unused value VNInfos.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161258 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/CodeGen/LiveInterval.h | 33 |
1 files changed, 6 insertions, 27 deletions
diff --git a/include/llvm/CodeGen/LiveInterval.h b/include/llvm/CodeGen/LiveInterval.h index 8e31792..a3ce47c 100644 --- a/include/llvm/CodeGen/LiveInterval.h +++ b/include/llvm/CodeGen/LiveInterval.h @@ -40,13 +40,6 @@ namespace llvm { /// definition and use points. /// class VNInfo { - private: - enum { - IS_UNUSED = 1 - }; - - unsigned char flags; - public: typedef BumpPtrAllocator Allocator; @@ -58,29 +51,19 @@ namespace llvm { /// VNInfo constructor. VNInfo(unsigned i, SlotIndex d) - : flags(0), id(i), def(d) + : id(i), def(d) { } /// VNInfo construtor, copies values from orig, except for the value number. VNInfo(unsigned i, const VNInfo &orig) - : flags(orig.flags), id(i), def(orig.def) + : id(i), def(orig.def) { } /// Copy from the parameter into this VNInfo. void copyFrom(VNInfo &src) { - flags = src.flags; def = src.def; } - /// Used for copying value number info. - unsigned getFlags() const { return flags; } - void setFlags(unsigned flags) { this->flags = flags; } - - /// Merge flags from another VNInfo - void mergeFlags(const VNInfo *VNI) { - flags = (flags | VNI->flags) & ~IS_UNUSED; - } - /// Returns true if this value is defined by a PHI instruction (or was, /// PHI instrucions may have been eliminated). /// PHI-defs begin at a block boundary, all other defs begin at register or @@ -88,14 +71,10 @@ namespace llvm { bool isPHIDef() const { return def.isBlock(); } /// Returns true if this value is unused. - bool isUnused() const { return flags & IS_UNUSED; } - /// Set the "is unused" flag on this value. - void setIsUnused(bool unused) { - if (unused) - flags |= IS_UNUSED; - else - flags &= ~IS_UNUSED; - } + bool isUnused() const { return !def.isValid(); } + + /// Mark this value as unused. + void markUnused() { def = SlotIndex(); } }; /// LiveRange structure - This represents a simple register range in the |