summaryrefslogtreecommitdiff
path: root/lib/CodeGen/PseudoSourceValue.cpp
diff options
context:
space:
mode:
authorDavid Greene <greened@obbligato.org>2009-11-12 20:25:07 +0000
committerDavid Greene <greened@obbligato.org>2009-11-12 20:25:07 +0000
commitcf62632d835313b720b68669bd1e5682d4d52d0d (patch)
treecb0b6c90f2c7f0856586b7de387eca12f8aea130 /lib/CodeGen/PseudoSourceValue.cpp
parent1251443929a256c833717e1030c368d3b6e4cb7c (diff)
downloadllvm-cf62632d835313b720b68669bd1e5682d4d52d0d.tar.gz
llvm-cf62632d835313b720b68669bd1e5682d4d52d0d.tar.bz2
llvm-cf62632d835313b720b68669bd1e5682d4d52d0d.tar.xz
Make FixedStackPseudoSourceValue a first-class PseudoSourceValue by
making it visible to clients and adding LLVM-style cast capability. This will be used by AsmPrinter to determine when to emit spill comments for an instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87019 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/PseudoSourceValue.cpp')
-rw-r--r--lib/CodeGen/PseudoSourceValue.cpp25
1 files changed, 2 insertions, 23 deletions
diff --git a/lib/CodeGen/PseudoSourceValue.cpp b/lib/CodeGen/PseudoSourceValue.cpp
index 5507646878..e95f017fc3 100644
--- a/lib/CodeGen/PseudoSourceValue.cpp
+++ b/lib/CodeGen/PseudoSourceValue.cpp
@@ -43,35 +43,14 @@ static const char *const PSVNames[] = {
// Eventually these should be uniqued on LLVMContext rather than in a managed
// static. For now, we can safely use the global context for the time being to
// squeak by.
-PseudoSourceValue::PseudoSourceValue() :
+PseudoSourceValue::PseudoSourceValue(enum ValueTy Subclass) :
Value(Type::getInt8PtrTy(getGlobalContext()),
- PseudoSourceValueVal) {}
+ Subclass) {}
void PseudoSourceValue::printCustom(raw_ostream &O) const {
O << PSVNames[this - *PSVs];
}
-namespace {
- /// FixedStackPseudoSourceValue - A specialized PseudoSourceValue
- /// for holding FixedStack values, which must include a frame
- /// index.
- class FixedStackPseudoSourceValue : public PseudoSourceValue {
- const int FI;
- public:
- explicit FixedStackPseudoSourceValue(int fi) : FI(fi) {}
-
- virtual bool isConstant(const MachineFrameInfo *MFI) const;
-
- virtual bool isAliased(const MachineFrameInfo *MFI) const;
-
- virtual bool mayAlias(const MachineFrameInfo *) const;
-
- virtual void printCustom(raw_ostream &OS) const {
- OS << "FixedStack" << FI;
- }
- };
-}
-
static ManagedStatic<std::map<int, const PseudoSourceValue *> > FSValues;
const PseudoSourceValue *PseudoSourceValue::getFixedStack(int FI) {