25 "Stack",
"GOT",
"JumpTable",
"ConstantPool",
"FixedStack",
26 "GlobalValueCallEntry",
"ExternalSymbolCallEntry"};
36 void PseudoSourceValue::printCustom(
raw_ostream &
O)
const {
40 O <<
"TargetCustom" << Kind;
80 OS <<
"FixedStack" << FI;
122 return &ConstantPoolPSV;
126 return &JumpTablePSV;
131 std::unique_ptr<FixedStackPseudoSourceValue> &V = FSValues[FI];
133 V = llvm::make_unique<FixedStackPseudoSourceValue>(FI, TII);
139 std::unique_ptr<const GlobalValuePseudoSourceValue> &
E =
140 GlobalCallEntries[GV];
142 E = llvm::make_unique<GlobalValuePseudoSourceValue>(GV, TII);
148 std::unique_ptr<const ExternalSymbolPseudoSourceValue> &
E =
149 ExternalCallEntries[ES];
151 E = llvm::make_unique<ExternalSymbolPseudoSourceValue>(ES, TII);
This class represents lattice values for constants.
virtual bool mayAlias(const MachineFrameInfo *) const
Return true if the memory pointed to by this PseudoSourceValue can ever alias an LLVM IR Value...
virtual bool isAliased(const MachineFrameInfo *) const
Test whether the memory pointed to by this PseudoSourceValue may also be pointed to by an LLVM IR Val...
virtual ~PseudoSourceValue()
virtual bool isConstant(const MachineFrameInfo *) const
Test whether the memory pointed to by this PseudoSourceValue has a constant value.
const HexagonInstrInfo * TII
The MachineFrameInfo class represents an abstract stack frame until prolog/epilog code is inserted...
bool isImmutableObjectIndex(int ObjectIdx) const
Returns true if the specified index corresponds to an immutable object.
bool isAliased(const MachineFrameInfo *) const override
Test whether the memory pointed to by this PseudoSourceValue may also be pointed to by an LLVM IR Val...
bool isConstant(const MachineFrameInfo *MFI) const override
Test whether the memory pointed to by this PseudoSourceValue has a constant value.
bool mayAlias(const MachineFrameInfo *) const override
Return true if the memory pointed to by this PseudoSourceValue can ever alias an LLVM IR Value...
const PseudoSourceValue * getFixedStack(int FI)
Return a pseudo source value referencing a fixed stack frame entry, e.g., a spill slot...
TargetInstrInfo - Interface to description of machine instruction set.
ExternalSymbolPseudoSourceValue(const char *ES, const TargetInstrInfo &TII)
const PseudoSourceValue * getExternalSymbolCallEntry(const char *ES)
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
bool isConstantPool() const
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
virtual unsigned getAddressSpaceForPseudoSourceKind(unsigned Kind) const
getAddressSpaceForPseudoSourceKind - Given the kind of memory (e.g.
CallEntryPseudoSourceValue(unsigned Kind, const TargetInstrInfo &TII)
GlobalValuePseudoSourceValue(const GlobalValue *GV, const TargetInstrInfo &TII)
Special value supplied for machine level alias analysis.
const PseudoSourceValue * getJumpTable()
Return a pseudo source value referencing a jump table.
const PseudoSourceValue * getGlobalValueCallEntry(const GlobalValue *GV)
const PseudoSourceValue * getGOT()
Return a pseudo source value referencing the global offset table (or something the like)...
bool isAliasedObjectIndex(int ObjectIdx) const
Returns true if the specified index corresponds to an object that might be pointed to by an LLVM IR v...
PseudoSourceValue(unsigned Kind, const TargetInstrInfo &TII)
static const char *const PSVNames[]
bool isAliased(const MachineFrameInfo *MFI) const override
Test whether the memory pointed to by this PseudoSourceValue may also be pointed to by an LLVM IR Val...
const PseudoSourceValue * getStack()
Return a pseudo source value referencing the area below the stack frame of a function, e.g., the argument space.
bool isConstant(const MachineFrameInfo *) const override
Test whether the memory pointed to by this PseudoSourceValue has a constant value.
PseudoSourceValueManager(const TargetInstrInfo &TII)
void printCustom(raw_ostream &OS) const override
Implement printing for PseudoSourceValue.
This class implements an extremely fast bulk output stream that can only output to a stream...
bool mayAlias(const MachineFrameInfo *) const override
Return true if the memory pointed to by this PseudoSourceValue can ever alias an LLVM IR Value...
const PseudoSourceValue * getConstantPool()
Return a pseudo source value referencing the constant pool.
bool isSpillSlotObjectIndex(int ObjectIdx) const
Returns true if the specified index corresponds to a spill slot.