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;
30 raw_ostream &
operator<<(raw_ostream &OS,
const PseudoSourceValue* PSV);
158 std::map<int, std::unique_ptr<FixedStackPseudoSourceValue>> FSValues;
162 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
int getFrameIndex() const
FixedStackPseudoSourceValue(int FI, const TargetMachine &TM)
static bool classof(const PseudoSourceValue *V)
A specialized pseudo source value for holding external symbol values.
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)
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...
CallEntryPseudoSourceValue(unsigned Kind, const TargetMachine &TM)
bool isConstant(const MachineFrameInfo *) const override
Test whether the memory pointed to by this PseudoSourceValue has a constant value.
unsigned getAddressSpace() const
Primary interface to the complete machine description for the target machine.
virtual ~PseudoSourceValue()
PseudoSourceValueManager(const TargetMachine &TM)
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.
ExternalSymbolPseudoSourceValue(const char *ES, const TargetMachine &TM)
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.
PseudoSourceValue(unsigned Kind, const TargetMachine &TM)
Manages creation of pseudo source values.
GlobalValuePseudoSourceValue(const GlobalValue *GV, const TargetMachine &TM)
const char LLVMTargetMachineRef TM
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.