Go to the documentation of this file.
13 #ifndef LLVM_CODEGEN_PSEUDOSOURCEVALUE_H
14 #define LLVM_CODEGEN_PSEUDOSOURCEVALUE_H
23 class MachineFrameInfo;
24 class MachineMemOperand;
26 class PseudoSourceValue;
28 class TargetInstrInfo;
30 raw_ostream &
operator<<(raw_ostream &OS,
const PseudoSourceValue* PSV);
159 std::map<int, std::unique_ptr<FixedStackPseudoSourceValue>> FSValues;
163 std::unique_ptr<const GlobalValuePseudoSourceValue>>
const PseudoSourceValue * getGOT()
Return a pseudo source value referencing the global offset table (or something the like).
This is an optimization pass for GlobalISel generic memory operations.
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 bool mayAlias(const MachineFrameInfo *) const
Return true if the memory pointed to by this PseudoSourceValue can ever alias an LLVM IR Value.
bool mayAlias(const MachineFrameInfo *) const override
Return true if the memory pointed to by this PseudoSourceValue can ever alias an LLVM IR Value.
A description of a memory reference used in the backend.
const GlobalValue * getValue() const
const PseudoSourceValue * getStack()
Return a pseudo source value referencing the area below the stack frame of a function,...
static bool classof(const PseudoSourceValue *V)
unsigned getTargetCustom() const
TargetInstrInfo - Interface to description of machine instruction set.
int getFrameIndex() const
static bool classof(const PseudoSourceValue *V)
A specialized pseudo source value for holding external symbol values.
const HexagonInstrInfo * TII
PseudoSourceValueManager(const TargetInstrInfo &TII)
This class implements an extremely fast bulk output stream that can only output to a stream.
raw_ostream & operator<<(raw_ostream &OS, const APFixedPoint &FX)
FixedStackPseudoSourceValue(int FI, const TargetInstrInfo &TII)
Special value supplied for machine level alias analysis.
StringMap - This is an unconventional map that is specialized for handling keys that are "strings",...
@ ExternalSymbolCallEntry
bool isConstant(const MachineFrameInfo *MFI) const override
Test whether the memory pointed to by this PseudoSourceValue has a constant value.
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 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...
bool isConstant(const MachineFrameInfo *) const override
Test whether the memory pointed to by this PseudoSourceValue has a constant value.
PseudoSourceValue(unsigned Kind, const TargetInstrInfo &TII)
unsigned getAddressSpace() const
virtual ~PseudoSourceValue()
GlobalValuePseudoSourceValue(const GlobalValue *GV, const TargetInstrInfo &TII)
CallEntryPseudoSourceValue(unsigned Kind, const TargetInstrInfo &TII)
const PseudoSourceValue * getJumpTable()
Return a pseudo source value referencing a jump table.
const PseudoSourceValue * getGlobalValueCallEntry(const GlobalValue *GV)
A specialized pseudo source value for holding GlobalValue values.
const char * getSymbol() const
const PseudoSourceValue * getFixedStack(int FI)
Return a pseudo source value referencing a fixed stack frame entry, e.g., a spill slot.
A specialized PseudoSourceValue for holding FixedStack values, which must include a frame index.
bool mayAlias(const MachineFrameInfo *) const override
Return true if the memory pointed to by this PseudoSourceValue can ever alias an LLVM IR Value.
void printCustom(raw_ostream &OS) const override
Implement printing for PseudoSourceValue.
bool isConstantPool() const
The MachineFrameInfo class represents an abstract stack frame until prolog/epilog code is inserted.
Manages creation of pseudo source values.
static bool classof(const PseudoSourceValue *V)
const PseudoSourceValue * getExternalSymbolCallEntry(const char *ES)
virtual bool isConstant(const MachineFrameInfo *) const
Test whether the memory pointed to by this PseudoSourceValue has a constant value.
const PseudoSourceValue * getConstantPool()
Return a pseudo source value referencing the constant pool.
ExternalSymbolPseudoSourceValue(const char *ES, const TargetInstrInfo &TII)