13#ifndef LLVM_CODEGEN_PSEUDOSOURCEVALUE_H
14#define LLVM_CODEGEN_PSEUDOSOURCEVALUE_H
21class MachineFrameInfo;
22class MachineMemOperand;
24class PseudoSourceValue;
64 unsigned kind()
const {
return Kind; }
66 bool isStack()
const {
return Kind == Stack; }
67 bool isGOT()
const {
return Kind == GOT; }
74 return (Kind >= TargetCustom) ? ((Kind+1) - TargetCustom) : 0;
100 return V->kind() == FixedStack;
static bool mayAlias(MachineInstr &MIa, SmallVectorImpl< MachineInstr * > &MemInsns, AliasAnalysis *AA)
static bool isConstant(const MachineInstr &MI)
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.
FixedStackPseudoSourceValue(int FI, const TargetMachine &TM)
static bool classof(const PseudoSourceValue *V)
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.
Special value supplied for machine level alias analysis.
virtual ~PseudoSourceValue()
unsigned getAddressSpace() const
unsigned getTargetCustom() const
@ ExternalSymbolCallEntry
bool isConstantPool() const
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)