mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +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:
parent
32c727cd95
commit
edfb72c628
@ -28,8 +28,7 @@ namespace llvm {
|
||||
public:
|
||||
PseudoSourceValue();
|
||||
|
||||
virtual void print(std::ostream &OS) const;
|
||||
virtual void print(raw_ostream &OS) const;
|
||||
void print(raw_ostream &OS) const;
|
||||
|
||||
/// isConstant - Test whether this PseudoSourceValue has a constant value.
|
||||
///
|
||||
@ -61,16 +60,6 @@ namespace llvm {
|
||||
/// A SV referencing the jump table
|
||||
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
|
||||
|
||||
#endif
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include "llvm/Support/LeakDetector.h"
|
||||
#include "llvm/Support/MathExtras.h"
|
||||
#include "llvm/Support/Streams.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#include "llvm/ADT/FoldingSet.h"
|
||||
#include <ostream>
|
||||
using namespace llvm;
|
||||
@ -756,9 +757,10 @@ void MachineInstr::print(std::ostream &OS, const TargetMachine *TM) const {
|
||||
OS << "<unknown>";
|
||||
else if (!V->getName().empty())
|
||||
OS << V->getName();
|
||||
else if (const PseudoSourceValue *PSV = dyn_cast<PseudoSourceValue>(V))
|
||||
OS << *PSV;
|
||||
else
|
||||
else if (const PseudoSourceValue *PSV = dyn_cast<PseudoSourceValue>(V)) {
|
||||
raw_os_ostream OSS(OS);
|
||||
PSV->print(OSS);
|
||||
} else
|
||||
OS << V;
|
||||
|
||||
OS << " + " << MRO.getOffset() << "]";
|
||||
|
@ -18,36 +18,34 @@
|
||||
#include "llvm/Support/ManagedStatic.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#include <map>
|
||||
using namespace llvm;
|
||||
|
||||
namespace llvm {
|
||||
static ManagedStatic<PseudoSourceValue[4]> PSVs;
|
||||
static ManagedStatic<PseudoSourceValue[4]> PSVs;
|
||||
|
||||
const PseudoSourceValue *PseudoSourceValue::getStack()
|
||||
{ return &(*PSVs)[0]; }
|
||||
const PseudoSourceValue *PseudoSourceValue::getGOT()
|
||||
{ return &(*PSVs)[1]; }
|
||||
const PseudoSourceValue *PseudoSourceValue::getJumpTable()
|
||||
{ return &(*PSVs)[2]; }
|
||||
const PseudoSourceValue *PseudoSourceValue::getConstantPool()
|
||||
{ return &(*PSVs)[3]; }
|
||||
const PseudoSourceValue *PseudoSourceValue::getStack()
|
||||
{ return &(*PSVs)[0]; }
|
||||
const PseudoSourceValue *PseudoSourceValue::getGOT()
|
||||
{ return &(*PSVs)[1]; }
|
||||
const PseudoSourceValue *PseudoSourceValue::getJumpTable()
|
||||
{ return &(*PSVs)[2]; }
|
||||
const PseudoSourceValue *PseudoSourceValue::getConstantPool()
|
||||
{ return &(*PSVs)[3]; }
|
||||
|
||||
static const char *const PSVNames[] = {
|
||||
"Stack",
|
||||
"GOT",
|
||||
"JumpTable",
|
||||
"ConstantPool"
|
||||
};
|
||||
static const char *const PSVNames[] = {
|
||||
"Stack",
|
||||
"GOT",
|
||||
"JumpTable",
|
||||
"ConstantPool"
|
||||
};
|
||||
|
||||
PseudoSourceValue::PseudoSourceValue() :
|
||||
Value(PointerType::getUnqual(Type::Int8Ty), PseudoSourceValueVal) {}
|
||||
PseudoSourceValue::PseudoSourceValue() :
|
||||
Value(PointerType::getUnqual(Type::Int8Ty), PseudoSourceValueVal) {}
|
||||
|
||||
void PseudoSourceValue::print(std::ostream &OS) const {
|
||||
OS << PSVNames[this - *PSVs];
|
||||
}
|
||||
void PseudoSourceValue::print(raw_ostream &OS) const {
|
||||
OS << PSVNames[this - *PSVs];
|
||||
}
|
||||
void PseudoSourceValue::print(raw_ostream &OS) const {
|
||||
OS << PSVNames[this - *PSVs];
|
||||
}
|
||||
|
||||
namespace {
|
||||
/// FixedStackPseudoSourceValue - A specialized PseudoSourceValue
|
||||
/// for holding FixedStack values, which must include a frame
|
||||
/// index.
|
||||
@ -66,29 +64,28 @@ namespace llvm {
|
||||
OS << "FixedStack" << FI;
|
||||
}
|
||||
};
|
||||
|
||||
static ManagedStatic<std::map<int, const PseudoSourceValue *> > FSValues;
|
||||
|
||||
const PseudoSourceValue *PseudoSourceValue::getFixedStack(int FI) {
|
||||
const PseudoSourceValue *&V = (*FSValues)[FI];
|
||||
if (!V)
|
||||
V = new FixedStackPseudoSourceValue(FI);
|
||||
return V;
|
||||
}
|
||||
|
||||
bool PseudoSourceValue::isConstant(const MachineFrameInfo *) const {
|
||||
if (this == getStack())
|
||||
return false;
|
||||
if (this == getGOT() ||
|
||||
this == getConstantPool() ||
|
||||
this == getJumpTable())
|
||||
return true;
|
||||
assert(0 && "Unknown PseudoSourceValue!");
|
||||
return false;
|
||||
}
|
||||
|
||||
bool
|
||||
FixedStackPseudoSourceValue::isConstant(const MachineFrameInfo *MFI) const {
|
||||
return MFI && MFI->isImmutableObjectIndex(FI);
|
||||
}
|
||||
}
|
||||
|
||||
static ManagedStatic<std::map<int, const PseudoSourceValue *> > FSValues;
|
||||
|
||||
const PseudoSourceValue *PseudoSourceValue::getFixedStack(int FI) {
|
||||
const PseudoSourceValue *&V = (*FSValues)[FI];
|
||||
if (!V)
|
||||
V = new FixedStackPseudoSourceValue(FI);
|
||||
return V;
|
||||
}
|
||||
|
||||
bool PseudoSourceValue::isConstant(const MachineFrameInfo *) const {
|
||||
if (this == getStack())
|
||||
return false;
|
||||
if (this == getGOT() ||
|
||||
this == getConstantPool() ||
|
||||
this == getJumpTable())
|
||||
return true;
|
||||
assert(0 && "Unknown PseudoSourceValue!");
|
||||
return false;
|
||||
}
|
||||
|
||||
bool FixedStackPseudoSourceValue::isConstant(const MachineFrameInfo *MFI) const{
|
||||
return MFI && MFI->isImmutableObjectIndex(FI);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user