LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
llvm::MemSDNode Class Reference

Abstact virtual class for operations for memory operations. More...

#include <SelectionDAGNodes.h>

Inheritance diagram for llvm::MemSDNode:
Inheritance graph
[legend]
Collaboration diagram for llvm::MemSDNode:
Collaboration graph
[legend]

Public Member Functions

 MemSDNode (unsigned Opc, unsigned Order, DebugLoc dl, SDVTList VTs, EVT MemoryVT, MachineMemOperand *MMO)
 
 MemSDNode (unsigned Opc, unsigned Order, DebugLoc dl, SDVTList VTs, const SDValue *Ops, unsigned NumOps, EVT MemoryVT, MachineMemOperand *MMO)
 
bool readMem () const
 
bool writeMem () const
 
unsigned getOriginalAlignment () const
 Returns alignment and volatility of the memory access. More...
 
unsigned getAlignment () const
 
unsigned getRawSubclassData () const
 
bool isVolatile () const
 
bool isNonTemporal () const
 
bool isInvariant () const
 
AtomicOrdering getOrdering () const
 
SynchronizationScope getSynchScope () const
 
const ValuegetSrcValue () const
 Returns the SrcValue and offset that describes the location of the access. More...
 
int64_t getSrcValueOffset () const
 
const MDNodegetTBAAInfo () const
 Returns the TBAAInfo that describes the dereference. More...
 
const MDNodegetRanges () const
 Returns the Ranges that describes the dereference. More...
 
EVT getMemoryVT () const
 getMemoryVT - Return the type of the in-memory value. More...
 
MachineMemOperandgetMemOperand () const
 
const MachinePointerInfogetPointerInfo () const
 
unsigned getAddressSpace () const
 getAddressSpace - Return the address space for the associated pointer More...
 
void refineAlignment (const MachineMemOperand *NewMMO)
 
const SDValuegetChain () const
 
const SDValuegetBasePtr () const
 
- Public Member Functions inherited from llvm::SDNode
unsigned getOpcode () const
 
bool isTargetOpcode () const
 
bool isTargetMemoryOpcode () const
 
bool isMachineOpcode () const
 
unsigned getMachineOpcode () const
 
bool getHasDebugValue () const
 getHasDebugValue - get this bit. More...
 
void setHasDebugValue (bool b)
 setHasDebugValue - set this bit. More...
 
bool use_empty () const
 
bool hasOneUse () const
 
size_t use_size () const
 
int getNodeId () const
 
void setNodeId (int Id)
 setNodeId - Set unique node id. More...
 
unsigned getIROrder () const
 
void setIROrder (unsigned Order)
 
const DebugLoc getDebugLoc () const
 getDebugLoc - Return the source location info. More...
 
void setDebugLoc (const DebugLoc dl)
 
use_iterator use_begin () const
 
bool hasNUsesOfValue (unsigned NUses, unsigned Value) const
 
bool hasAnyUseOfValue (unsigned Value) const
 
bool isOnlyUserOf (SDNode *N) const
 
bool isOperandOf (SDNode *N) const
 
bool isPredecessorOf (const SDNode *N) const
 
bool hasPredecessor (const SDNode *N) const
 
bool hasPredecessorHelper (const SDNode *N, SmallPtrSet< const SDNode *, 32 > &Visited, SmallVectorImpl< const SDNode * > &Worklist) const
 
unsigned getNumOperands () const
 
uint64_t getConstantOperandVal (unsigned Num) const
 
const SDValuegetOperand (unsigned Num) const
 
op_iterator op_begin () const
 
op_iterator op_end () const
 
SDVTList getVTList () const
 
SDNodegetGluedNode () const
 
const SDNodegetGluedMachineNode () const
 
SDNodegetGluedUser () const
 
unsigned getNumValues () const
 
EVT getValueType (unsigned ResNo) const
 
MVT getSimpleValueType (unsigned ResNo) const
 
unsigned getValueSizeInBits (unsigned ResNo) const
 
value_iterator value_begin () const
 
value_iterator value_end () const
 
std::string getOperationName (const SelectionDAG *G=0) const
 
void print_types (raw_ostream &OS, const SelectionDAG *G) const
 
void print_details (raw_ostream &OS, const SelectionDAG *G) const
 
void print (raw_ostream &OS, const SelectionDAG *G=0) const
 
void printr (raw_ostream &OS, const SelectionDAG *G=0) const
 
void printrFull (raw_ostream &O, const SelectionDAG *G=0) const
 
void printrWithDepth (raw_ostream &O, const SelectionDAG *G=0, unsigned depth=100) const
 
void dump () const
 dump - Dump this node, for debugging. More...
 
void dumpr () const
 dumpr - Dump (recursively) this node and its use-def subgraph. More...
 
void dump (const SelectionDAG *G) const
 
void dumpr (const SelectionDAG *G) const
 
void dumprFull (const SelectionDAG *G=0) const
 
void dumprWithDepth (const SelectionDAG *G=0, unsigned depth=100) const
 
void Profile (FoldingSetNodeID &ID) const
 
void addUse (SDUse &U)
 
- Public Member Functions inherited from llvm::FoldingSetImpl::Node
 Node ()
 
void * getNextInBucket () const
 
void SetNextInBucket (void *N)
 
- Public Member Functions inherited from llvm::ilist_node< SDNode >
SDNodegetPrevNode ()
 Get the previous node, or 0 for the list head. More...
 
const SDNodegetPrevNode () const
 Get the previous node, or 0 for the list head. More...
 
SDNodegetNextNode ()
 Get the next node, or 0 for the list tail. More...
 
const SDNodegetNextNode () const
 Get the next node, or 0 for the list tail. More...
 

Static Public Member Functions

static bool classof (const SDNode *N)
 
- Static Public Member Functions inherited from llvm::SDNode
static use_iterator use_end ()
 
static const char * getIndexedModeName (ISD::MemIndexedMode AM)
 

Protected Attributes

MachineMemOperandMMO
 MMO - Memory reference information. More...
 
- Protected Attributes inherited from llvm::SDNode
uint16_t SubclassData: 14
 

Additional Inherited Members

- Public Types inherited from llvm::SDNode
typedef SDUseop_iterator
 
typedef const EVTvalue_iterator
 
- Protected Member Functions inherited from llvm::SDNode
 SDNode (unsigned Opc, unsigned Order, const DebugLoc dl, SDVTList VTs, const SDValue *Ops, unsigned NumOps)
 
 SDNode (unsigned Opc, unsigned Order, const DebugLoc dl, SDVTList VTs)
 
void InitOperands (SDUse *Ops, const SDValue &Op0)
 InitOperands - Initialize the operands list of this with 1 operand. More...
 
void InitOperands (SDUse *Ops, const SDValue &Op0, const SDValue &Op1)
 InitOperands - Initialize the operands list of this with 2 operands. More...
 
void InitOperands (SDUse *Ops, const SDValue &Op0, const SDValue &Op1, const SDValue &Op2)
 InitOperands - Initialize the operands list of this with 3 operands. More...
 
void InitOperands (SDUse *Ops, const SDValue &Op0, const SDValue &Op1, const SDValue &Op2, const SDValue &Op3)
 InitOperands - Initialize the operands list of this with 4 operands. More...
 
void InitOperands (SDUse *Ops, const SDValue *Vals, unsigned N)
 InitOperands - Initialize the operands list of this with N operands. More...
 
void DropOperands ()
 
- Protected Member Functions inherited from llvm::ilist_node< SDNode >
 ilist_node ()
 
- Static Protected Member Functions inherited from llvm::SDNode
static SDVTList getSDVTList (EVT VT)
 

Detailed Description

Abstact virtual class for operations for memory operations.

Definition at line 971 of file SelectionDAGNodes.h.

Constructor & Destructor Documentation

MemSDNode::MemSDNode ( unsigned  Opc,
unsigned  Order,
DebugLoc  dl,
SDVTList  VTs,
EVT  MemoryVT,
MachineMemOperand MMO 
)
MemSDNode::MemSDNode ( unsigned  Opc,
unsigned  Order,
DebugLoc  dl,
SDVTList  VTs,
const SDValue Ops,
unsigned  NumOps,
EVT  MemoryVT,
MachineMemOperand MMO 
)

Member Function Documentation

static bool llvm::MemSDNode::classof ( const SDNode N)
inlinestatic
unsigned llvm::MemSDNode::getAddressSpace ( ) const
inline

getAddressSpace - Return the address space for the associated pointer

Definition at line 1041 of file SelectionDAGNodes.h.

References llvm::MachinePointerInfo::getAddrSpace(), and getPointerInfo().

Referenced by ExpandUnalignedStore(), llvm::SITargetLowering::LowerOperation(), and llvm::AMDGPUTargetLowering::LowerSTORE().

unsigned llvm::MemSDNode::getAlignment ( ) const
inline
const SDValue& llvm::MemSDNode::getBasePtr ( ) const
inline
const SDValue& llvm::MemSDNode::getChain ( ) const
inline
MachineMemOperand* llvm::MemSDNode::getMemOperand ( ) const
inline
EVT llvm::MemSDNode::getMemoryVT ( ) const
inline
AtomicOrdering llvm::MemSDNode::getOrdering ( ) const
inline

Definition at line 1012 of file SelectionDAGNodes.h.

References llvm::SDNode::SubclassData.

unsigned llvm::MemSDNode::getOriginalAlignment ( ) const
inline

Returns alignment and volatility of the memory access.

Definition at line 992 of file SelectionDAGNodes.h.

References llvm::MachineMemOperand::getBaseAlignment(), and MMO.

const MachinePointerInfo& llvm::MemSDNode::getPointerInfo ( ) const
inline
const MDNode* llvm::MemSDNode::getRanges ( ) const
inline

Returns the Ranges that describes the dereference.

Definition at line 1027 of file SelectionDAGNodes.h.

References llvm::MachineMemOperand::getRanges(), and MMO.

Referenced by llvm::SelectionDAG::ComputeMaskedBits().

unsigned llvm::MemSDNode::getRawSubclassData ( ) const
inline

getRawSubclassData - Return the SubclassData value, which contains an encoding of the volatile flag, as well as bits used by subclasses. This function should only be used to compute a FoldingSetNodeID value.

Definition at line 1002 of file SelectionDAGNodes.h.

References llvm::SDNode::SubclassData.

Referenced by AddNodeIDCustom(), and llvm::SelectionDAG::getIndexedStore().

const Value* llvm::MemSDNode::getSrcValue ( ) const
inline

Returns the SrcValue and offset that describes the location of the access.

Definition at line 1020 of file SelectionDAGNodes.h.

References llvm::MachineMemOperand::getValue(), and MMO.

Referenced by getCodeAddrSpace().

int64_t llvm::MemSDNode::getSrcValueOffset ( ) const
inline

Definition at line 1021 of file SelectionDAGNodes.h.

References llvm::MachineMemOperand::getOffset(), and MMO.

SynchronizationScope llvm::MemSDNode::getSynchScope ( ) const
inline

Definition at line 1015 of file SelectionDAGNodes.h.

References llvm::SDNode::SubclassData.

const MDNode* llvm::MemSDNode::getTBAAInfo ( ) const
inline

Returns the TBAAInfo that describes the dereference.

Definition at line 1024 of file SelectionDAGNodes.h.

References llvm::MachineMemOperand::getTBAAInfo(), and MMO.

Referenced by ExpandUnalignedLoad(), ExpandUnalignedStore(), and PerformSTORECombine().

bool llvm::MemSDNode::isInvariant ( ) const
inline
bool llvm::MemSDNode::isNonTemporal ( ) const
inline
bool llvm::MemSDNode::isVolatile ( ) const
inline
bool llvm::MemSDNode::readMem ( ) const
inline

Definition at line 988 of file SelectionDAGNodes.h.

References llvm::MachineMemOperand::isLoad(), and MMO.

void llvm::MemSDNode::refineAlignment ( const MachineMemOperand NewMMO)
inline

refineAlignment - Update this MemSDNode's MachineMemOperand information to reflect the alignment of NewMMO, if it has a greater alignment. This must only be used when the new alignment applies to all users of this MachineMemOperand.

Definition at line 1049 of file SelectionDAGNodes.h.

References MMO, and llvm::MachineMemOperand::refineAlignment().

Referenced by llvm::PPCTargetLowering::PerformDAGCombine().

bool llvm::MemSDNode::writeMem ( ) const
inline

Definition at line 989 of file SelectionDAGNodes.h.

References llvm::MachineMemOperand::isStore(), and MMO.

Member Data Documentation

MachineMemOperand* llvm::MemSDNode::MMO
protected

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