LLVM  4.0.0
Public Types | Public Member Functions | Friends | List of all members
llvm::PseudoSourceValue Class Reference

Special value supplied for machine level alias analysis. More...

#include <PseudoSourceValue.h>

Inheritance diagram for llvm::PseudoSourceValue:
[legend]

Public Types

enum  PSVKind {
  Stack, GOT, JumpTable, ConstantPool,
  FixedStack, GlobalValueCallEntry, ExternalSymbolCallEntry, TargetCustom
}
 

Public Member Functions

 PseudoSourceValue (PSVKind Kind)
 
virtual ~PseudoSourceValue ()
 
PSVKind kind () const
 
bool isStack () const
 
bool isGOT () const
 
bool isConstantPool () const
 
bool isJumpTable () const
 
unsigned getTargetCustom () const
 
virtual bool isConstant (const MachineFrameInfo *) const
 Test whether the memory pointed to by this PseudoSourceValue has a constant value. More...
 
virtual bool isAliased (const MachineFrameInfo *) const
 Test whether the memory pointed to by this PseudoSourceValue may also be pointed to by an LLVM IR Value. More...
 
virtual bool mayAlias (const MachineFrameInfo *) const
 Return true if the memory pointed to by this PseudoSourceValue can ever alias an LLVM IR Value. More...
 

Friends

class MachineMemOperand
 
raw_ostreamllvm::operator<< (raw_ostream &OS, const PseudoSourceValue *PSV)
 

Detailed Description

Special value supplied for machine level alias analysis.

It indicates that a memory access references the functions stack frame (e.g., a spill slot), below the stack frame (e.g., argument space), or constant pool.

Definition at line 36 of file PseudoSourceValue.h.

Member Enumeration Documentation

Enumerator
Stack 
GOT 
JumpTable 
ConstantPool 
FixedStack 
GlobalValueCallEntry 
ExternalSymbolCallEntry 
TargetCustom 

Definition at line 38 of file PseudoSourceValue.h.

Constructor & Destructor Documentation

PseudoSourceValue::PseudoSourceValue ( PSVKind  Kind)
explicit

Definition at line 27 of file PseudoSourceValue.cpp.

PseudoSourceValue::~PseudoSourceValue ( )
virtual

Definition at line 29 of file PseudoSourceValue.cpp.

Member Function Documentation

unsigned llvm::PseudoSourceValue::getTargetCustom ( ) const
inline

Definition at line 71 of file PseudoSourceValue.h.

References Kind, and TargetCustom.

bool PseudoSourceValue::isAliased ( const MachineFrameInfo ) const
virtual

Test whether the memory pointed to by this PseudoSourceValue may also be pointed to by an LLVM IR Value.

Reimplemented in llvm::CallEntryPseudoSourceValue, llvm::FixedStackPseudoSourceValue, llvm::AMDGPUBufferPseudoSourceValue, and llvm::AMDGPUImagePseudoSourceValue.

Definition at line 43 of file PseudoSourceValue.cpp.

References isConstantPool(), isGOT(), isJumpTable(), isStack(), and llvm_unreachable.

bool PseudoSourceValue::isConstant ( const MachineFrameInfo ) const
virtual
bool llvm::PseudoSourceValue::isConstantPool ( ) const
inline

Definition at line 69 of file PseudoSourceValue.h.

References ConstantPool, and Kind.

Referenced by isAliased(), isConstant(), and mayAlias().

bool llvm::PseudoSourceValue::isGOT ( ) const
inline

Definition at line 68 of file PseudoSourceValue.h.

References GOT, and Kind.

Referenced by isAliased(), isConstant(), and mayAlias().

bool llvm::PseudoSourceValue::isJumpTable ( ) const
inline

Definition at line 70 of file PseudoSourceValue.h.

References JumpTable, and Kind.

Referenced by isAliased(), isConstant(), and mayAlias().

bool llvm::PseudoSourceValue::isStack ( ) const
inline

Definition at line 67 of file PseudoSourceValue.h.

References Kind, and Stack.

Referenced by isAliased(), and isConstant().

PSVKind llvm::PseudoSourceValue::kind ( ) const
inline
bool PseudoSourceValue::mayAlias ( const MachineFrameInfo ) const
virtual

Return true if the memory pointed to by this PseudoSourceValue can ever alias an LLVM IR Value.

Reimplemented in llvm::CallEntryPseudoSourceValue, llvm::FixedStackPseudoSourceValue, llvm::AMDGPUBufferPseudoSourceValue, and llvm::AMDGPUImagePseudoSourceValue.

Definition at line 49 of file PseudoSourceValue.cpp.

References isConstantPool(), isGOT(), and isJumpTable().

Friends And Related Function Documentation

raw_ostream& llvm::operator<< ( raw_ostream OS,
const PseudoSourceValue PSV 
)
friend
friend class MachineMemOperand
friend

Definition at line 54 of file PseudoSourceValue.h.


The documentation for this class was generated from the following files: