mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-01 00:17:01 +00:00
simplify PseudoSourceValue printing a bit. Unnest all of PseudoSourceValue.cpp from the llvm namespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55293 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -28,8 +28,7 @@ namespace llvm {
|
|||||||
public:
|
public:
|
||||||
PseudoSourceValue();
|
PseudoSourceValue();
|
||||||
|
|
||||||
virtual void print(std::ostream &OS) const;
|
void print(raw_ostream &OS) const;
|
||||||
virtual void print(raw_ostream &OS) const;
|
|
||||||
|
|
||||||
/// isConstant - Test whether this PseudoSourceValue has a constant value.
|
/// isConstant - Test whether this PseudoSourceValue has a constant value.
|
||||||
///
|
///
|
||||||
@@ -61,16 +60,6 @@ namespace llvm {
|
|||||||
/// A SV referencing the jump table
|
/// A SV referencing the jump table
|
||||||
static const PseudoSourceValue *getJumpTable();
|
static const PseudoSourceValue *getJumpTable();
|
||||||
};
|
};
|
||||||
|
|
||||||
inline std::ostream &operator<<(std::ostream &OS,const PseudoSourceValue &PSV) {
|
|
||||||
PSV.print(OS);
|
|
||||||
return OS;
|
|
||||||
}
|
|
||||||
inline raw_ostream &operator<<(raw_ostream &OS, const PseudoSourceValue &PSV) {
|
|
||||||
PSV.print(OS);
|
|
||||||
return OS;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // End llvm namespace
|
} // End llvm namespace
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
#include "llvm/Support/LeakDetector.h"
|
#include "llvm/Support/LeakDetector.h"
|
||||||
#include "llvm/Support/MathExtras.h"
|
#include "llvm/Support/MathExtras.h"
|
||||||
#include "llvm/Support/Streams.h"
|
#include "llvm/Support/Streams.h"
|
||||||
|
#include "llvm/Support/raw_ostream.h"
|
||||||
#include "llvm/ADT/FoldingSet.h"
|
#include "llvm/ADT/FoldingSet.h"
|
||||||
#include <ostream>
|
#include <ostream>
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
@@ -756,9 +757,10 @@ void MachineInstr::print(std::ostream &OS, const TargetMachine *TM) const {
|
|||||||
OS << "<unknown>";
|
OS << "<unknown>";
|
||||||
else if (!V->getName().empty())
|
else if (!V->getName().empty())
|
||||||
OS << V->getName();
|
OS << V->getName();
|
||||||
else if (const PseudoSourceValue *PSV = dyn_cast<PseudoSourceValue>(V))
|
else if (const PseudoSourceValue *PSV = dyn_cast<PseudoSourceValue>(V)) {
|
||||||
OS << *PSV;
|
raw_os_ostream OSS(OS);
|
||||||
else
|
PSV->print(OSS);
|
||||||
|
} else
|
||||||
OS << V;
|
OS << V;
|
||||||
|
|
||||||
OS << " + " << MRO.getOffset() << "]";
|
OS << " + " << MRO.getOffset() << "]";
|
||||||
|
|||||||
@@ -18,36 +18,34 @@
|
|||||||
#include "llvm/Support/ManagedStatic.h"
|
#include "llvm/Support/ManagedStatic.h"
|
||||||
#include "llvm/Support/raw_ostream.h"
|
#include "llvm/Support/raw_ostream.h"
|
||||||
#include <map>
|
#include <map>
|
||||||
|
using namespace llvm;
|
||||||
|
|
||||||
namespace llvm {
|
static ManagedStatic<PseudoSourceValue[4]> PSVs;
|
||||||
static ManagedStatic<PseudoSourceValue[4]> PSVs;
|
|
||||||
|
|
||||||
const PseudoSourceValue *PseudoSourceValue::getStack()
|
const PseudoSourceValue *PseudoSourceValue::getStack()
|
||||||
{ return &(*PSVs)[0]; }
|
{ return &(*PSVs)[0]; }
|
||||||
const PseudoSourceValue *PseudoSourceValue::getGOT()
|
const PseudoSourceValue *PseudoSourceValue::getGOT()
|
||||||
{ return &(*PSVs)[1]; }
|
{ return &(*PSVs)[1]; }
|
||||||
const PseudoSourceValue *PseudoSourceValue::getJumpTable()
|
const PseudoSourceValue *PseudoSourceValue::getJumpTable()
|
||||||
{ return &(*PSVs)[2]; }
|
{ return &(*PSVs)[2]; }
|
||||||
const PseudoSourceValue *PseudoSourceValue::getConstantPool()
|
const PseudoSourceValue *PseudoSourceValue::getConstantPool()
|
||||||
{ return &(*PSVs)[3]; }
|
{ return &(*PSVs)[3]; }
|
||||||
|
|
||||||
static const char *const PSVNames[] = {
|
static const char *const PSVNames[] = {
|
||||||
"Stack",
|
"Stack",
|
||||||
"GOT",
|
"GOT",
|
||||||
"JumpTable",
|
"JumpTable",
|
||||||
"ConstantPool"
|
"ConstantPool"
|
||||||
};
|
};
|
||||||
|
|
||||||
PseudoSourceValue::PseudoSourceValue() :
|
PseudoSourceValue::PseudoSourceValue() :
|
||||||
Value(PointerType::getUnqual(Type::Int8Ty), PseudoSourceValueVal) {}
|
Value(PointerType::getUnqual(Type::Int8Ty), PseudoSourceValueVal) {}
|
||||||
|
|
||||||
void PseudoSourceValue::print(std::ostream &OS) const {
|
void PseudoSourceValue::print(raw_ostream &OS) const {
|
||||||
OS << PSVNames[this - *PSVs];
|
OS << PSVNames[this - *PSVs];
|
||||||
}
|
}
|
||||||
void PseudoSourceValue::print(raw_ostream &OS) const {
|
|
||||||
OS << PSVNames[this - *PSVs];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
namespace {
|
||||||
/// FixedStackPseudoSourceValue - A specialized PseudoSourceValue
|
/// FixedStackPseudoSourceValue - A specialized PseudoSourceValue
|
||||||
/// for holding FixedStack values, which must include a frame
|
/// for holding FixedStack values, which must include a frame
|
||||||
/// index.
|
/// index.
|
||||||
@@ -66,29 +64,28 @@ namespace llvm {
|
|||||||
OS << "FixedStack" << FI;
|
OS << "FixedStack" << FI;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
}
|
||||||
static ManagedStatic<std::map<int, const PseudoSourceValue *> > FSValues;
|
|
||||||
|
static ManagedStatic<std::map<int, const PseudoSourceValue *> > FSValues;
|
||||||
const PseudoSourceValue *PseudoSourceValue::getFixedStack(int FI) {
|
|
||||||
const PseudoSourceValue *&V = (*FSValues)[FI];
|
const PseudoSourceValue *PseudoSourceValue::getFixedStack(int FI) {
|
||||||
if (!V)
|
const PseudoSourceValue *&V = (*FSValues)[FI];
|
||||||
V = new FixedStackPseudoSourceValue(FI);
|
if (!V)
|
||||||
return V;
|
V = new FixedStackPseudoSourceValue(FI);
|
||||||
}
|
return V;
|
||||||
|
}
|
||||||
bool PseudoSourceValue::isConstant(const MachineFrameInfo *) const {
|
|
||||||
if (this == getStack())
|
bool PseudoSourceValue::isConstant(const MachineFrameInfo *) const {
|
||||||
return false;
|
if (this == getStack())
|
||||||
if (this == getGOT() ||
|
return false;
|
||||||
this == getConstantPool() ||
|
if (this == getGOT() ||
|
||||||
this == getJumpTable())
|
this == getConstantPool() ||
|
||||||
return true;
|
this == getJumpTable())
|
||||||
assert(0 && "Unknown PseudoSourceValue!");
|
return true;
|
||||||
return false;
|
assert(0 && "Unknown PseudoSourceValue!");
|
||||||
}
|
return false;
|
||||||
|
}
|
||||||
bool
|
|
||||||
FixedStackPseudoSourceValue::isConstant(const MachineFrameInfo *MFI) const {
|
bool FixedStackPseudoSourceValue::isConstant(const MachineFrameInfo *MFI) const{
|
||||||
return MFI && MFI->isImmutableObjectIndex(FI);
|
return MFI && MFI->isImmutableObjectIndex(FI);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user