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