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

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

#include "llvm/CodeGen/PseudoSourceValue.h"

Inheritance diagram for llvm::PseudoSourceValue:
Inheritance graph
[legend]

Public Types

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

Public Member Functions

 PseudoSourceValue (PSVKind Kind, const TargetInstrInfo &TII)
 
virtual ~PseudoSourceValue ()
 
PSVKind kind () const
 
bool isStack () const
 
bool isGOT () const
 
bool isConstantPool () const
 
bool isJumpTable () const
 
unsigned getAddressSpace () 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 37 of file PseudoSourceValue.h.

Member Enumeration Documentation

◆ PSVKind

Enumerator
Stack 
GOT 
JumpTable 
ConstantPool 
FixedStack 
GlobalValueCallEntry 
ExternalSymbolCallEntry 
TargetCustom 

Definition at line 39 of file PseudoSourceValue.h.

Constructor & Destructor Documentation

◆ PseudoSourceValue()

PseudoSourceValue::PseudoSourceValue ( PSVKind  Kind,
const TargetInstrInfo TII 
)
explicit

◆ ~PseudoSourceValue()

PseudoSourceValue::~PseudoSourceValue ( )
virtual

Definition at line 34 of file PseudoSourceValue.cpp.

References llvm::RISCVFenceField::O, and TargetCustom.

Member Function Documentation

◆ getAddressSpace()

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

Definition at line 74 of file PseudoSourceValue.h.

◆ getTargetCustom()

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

Definition at line 76 of file PseudoSourceValue.h.

References isAliased(), isConstant(), mayAlias(), and TargetCustom.

◆ isAliased()

bool PseudoSourceValue::isAliased ( const MachineFrameInfo ) const
virtual

◆ isConstant()

bool PseudoSourceValue::isConstant ( const MachineFrameInfo ) const
virtual

◆ isConstantPool()

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

Definition at line 71 of file PseudoSourceValue.h.

References ConstantPool.

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

◆ isGOT()

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

Definition at line 70 of file PseudoSourceValue.h.

References GOT.

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

◆ isJumpTable()

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

Definition at line 72 of file PseudoSourceValue.h.

References JumpTable.

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

◆ isStack()

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

Definition at line 69 of file PseudoSourceValue.h.

References Stack.

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

◆ kind()

PSVKind llvm::PseudoSourceValue::kind ( ) const
inline

◆ mayAlias()

bool PseudoSourceValue::mayAlias ( const MachineFrameInfo ) const
virtual

Friends And Related Function Documentation

◆ llvm::operator<<

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

◆ MachineMemOperand

friend class MachineMemOperand
friend

Definition at line 56 of file PseudoSourceValue.h.


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