LLVM 19.0.0git
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 : unsigned {
  Stack , GOT , JumpTable , ConstantPool ,
  FixedStack , GlobalValueCallEntry , ExternalSymbolCallEntry , TargetCustom
}
 

Public Member Functions

 PseudoSourceValue (unsigned Kind, const TargetMachine &TM)
 
virtual ~PseudoSourceValue ()
 
unsigned 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.
 
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.
 
virtual bool mayAlias (const MachineFrameInfo *) const
 Return true if the memory pointed to by this PseudoSourceValue can ever alias an LLVM IR Value.
 

Friends

class MachineMemOperand
 
class MIRFormatter
 
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 31 of file PseudoSourceValue.h.

Member Enumeration Documentation

◆ PSVKind

Enumerator
Stack 
GOT 
JumpTable 
ConstantPool 
FixedStack 
GlobalValueCallEntry 
ExternalSymbolCallEntry 
TargetCustom 

Definition at line 33 of file PseudoSourceValue.h.

Constructor & Destructor Documentation

◆ PseudoSourceValue()

PseudoSourceValue::PseudoSourceValue ( unsigned  Kind,
const TargetMachine TM 
)
explicit

Definition at line 26 of file PseudoSourceValue.cpp.

References TM.

◆ ~PseudoSourceValue()

PseudoSourceValue::~PseudoSourceValue ( )
virtualdefault

Member Function Documentation

◆ getAddressSpace()

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

Definition at line 69 of file PseudoSourceValue.h.

◆ getTargetCustom()

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

Definition at line 71 of file PseudoSourceValue.h.

References TargetCustom.

◆ isAliased()

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::AMDGPUPseudoSourceValue, llvm::AMDGPUGWSResourcePseudoSourceValue, and llvm::FixedStackPseudoSourceValue.

Definition at line 48 of file PseudoSourceValue.cpp.

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

◆ isConstant()

bool PseudoSourceValue::isConstant ( const MachineFrameInfo ) const
virtual

Test whether the memory pointed to by this PseudoSourceValue has a constant value.

Reimplemented in llvm::CallEntryPseudoSourceValue, llvm::AMDGPUPseudoSourceValue, and llvm::FixedStackPseudoSourceValue.

Definition at line 40 of file PseudoSourceValue.cpp.

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

◆ isConstantPool()

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

Definition at line 66 of file PseudoSourceValue.h.

References ConstantPool.

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

◆ isGOT()

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

Definition at line 65 of file PseudoSourceValue.h.

References GOT.

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

◆ isJumpTable()

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

Definition at line 67 of file PseudoSourceValue.h.

References JumpTable.

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

◆ isStack()

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

Definition at line 64 of file PseudoSourceValue.h.

References Stack.

Referenced by isAliased(), and isConstant().

◆ kind()

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

Definition at line 62 of file PseudoSourceValue.h.

Referenced by ValidateMVEStore().

◆ 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 50 of file PseudoSourceValue.h.

◆ MIRFormatter

friend class MIRFormatter
friend

Definition at line 51 of file PseudoSourceValue.h.


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