class MemoryAccess

Declaration

class MemoryAccess : public DerivedUser,
                     public ilist_node,
                     public ilist_node { /* full declaration omitted */ };

Description

Extension point for the Value hierarchy. All classes outside of lib/IR that wish to inherit from User should instead inherit from DerivedUser instead. Inheriting from this class is discouraged. Generally speaking, Value is the base of a closed class hierarchy that can't be extended by code outside of lib/IR. This class creates a loophole that allows classes outside of lib/IR to extend User to leverage its use/def list machinery.

Declared at: llvm/include/llvm/Analysis/MemorySSA.h:142

Inherits from: DerivedUser, ilist_node, ilist_node

Member Variables

private llvm::BasicBlock* Block

Inherited from Value:

protected SubclassOptionalData
protected NumUserOperands
protected IsUsedByMD
protected HasName
protected HasMetadata
protected HasHungOffUses
protected HasDescriptor
public static MaxAlignmentExponent = 32
public static MaximumAlignment = 1ULL << MaxAlignmentExponent

Method Overview

  • protected MemoryAccess(llvm::LLVMContext & C, unsigned int Vty, llvm::DerivedUser::DeleteValueTy DeleteValue, llvm::BasicBlock * BB, unsigned int NumOperands)
  • public MemoryAccess(const llvm::MemoryAccess &)
  • public static bool classof(const llvm::Value * V)
  • public llvm::memoryaccess_def_iterator defs_begin()
  • public llvm::const_memoryaccess_def_iterator defs_begin() const
  • public llvm::memoryaccess_def_iterator defs_end()
  • public llvm::const_memoryaccess_def_iterator defs_end() const
  • public void dump() const
  • public llvm::BasicBlock * getBlock() const
  • public DefsOnlyType::const_self_iterator getDefsIterator() const
  • public DefsOnlyType::self_iterator getDefsIterator()
  • protected inline unsigned int getID() const
  • public AllAccessType::const_self_iterator getIterator() const
  • public AllAccessType::self_iterator getIterator()
  • public DefsOnlyType::reverse_self_iterator getReverseDefsIterator()
  • public DefsOnlyType::const_reverse_self_iterator getReverseDefsIterator() const
  • public AllAccessType::const_reverse_self_iterator getReverseIterator() const
  • public AllAccessType::reverse_self_iterator getReverseIterator()
  • public void print(llvm::raw_ostream & OS) const
  • protected void setBlock(llvm::BasicBlock * BB)
  • protected ~MemoryAccess()

Inherited from DerivedUser:

    Inherited from User:

    Inherited from Value:

    Methods

    MemoryAccess(
        llvm::LLVMContext& C,
        unsigned int Vty,
        llvm::DerivedUser::DeleteValueTy DeleteValue,
        llvm::BasicBlock* BB,
        unsigned int NumOperands)

    Declared at: llvm/include/llvm/Analysis/MemorySSA.h:223

    Parameters

    llvm::LLVMContext& C
    unsigned int Vty
    llvm::DerivedUser::DeleteValueTy DeleteValue
    llvm::BasicBlock* BB
    unsigned int NumOperands

    MemoryAccess(const llvm::MemoryAccess&)

    Declared at: llvm/include/llvm/Analysis/MemorySSA.h:152

    Parameters

    const llvm::MemoryAccess&

    static bool classof(const llvm::Value* V)

    Declared at: llvm/include/llvm/Analysis/MemorySSA.h:159

    Parameters

    const llvm::Value* V

    llvm::memoryaccess_def_iterator defs_begin()

    Description

    This iterator walks over all of the defs in a given MemoryAccess. For MemoryPhi nodes, this walks arguments. For MemoryUse/MemoryDef, this walks the defining access.

    Declared at: llvm/include/llvm/Analysis/MemorySSA.h:176

    llvm::const_memoryaccess_def_iterator defs_begin()
        const

    Declared at: llvm/include/llvm/Analysis/MemorySSA.h:177

    llvm::memoryaccess_def_iterator defs_end()

    Declared at: llvm/include/llvm/Analysis/MemorySSA.h:178

    llvm::const_memoryaccess_def_iterator defs_end()
        const

    Declared at: llvm/include/llvm/Analysis/MemorySSA.h:179

    void dump() const

    Declared at: llvm/include/llvm/Analysis/MemorySSA.h:167

    llvm::BasicBlock* getBlock() const

    Declared at: llvm/include/llvm/Analysis/MemorySSA.h:164

    DefsOnlyType::const_self_iterator
    getDefsIterator() const

    Declared at: llvm/include/llvm/Analysis/MemorySSA.h:198

    DefsOnlyType::self_iterator getDefsIterator()

    Declared at: llvm/include/llvm/Analysis/MemorySSA.h:195

    inline unsigned int getID() const

    Description

    Used for debugging and tracking things about MemoryAccesses. Guaranteed unique among MemoryAccesses, no guarantees otherwise.

    Declared at: llvm/include/llvm/Analysis/MemorySSA.h:221

    AllAccessType::const_self_iterator getIterator()
        const

    Declared at: llvm/include/llvm/Analysis/MemorySSA.h:186

    AllAccessType::self_iterator getIterator()

    Description

    Get the iterators for the all access list and the defs only list We default to the all access list.

    Declared at: llvm/include/llvm/Analysis/MemorySSA.h:183

    DefsOnlyType::reverse_self_iterator
    getReverseDefsIterator()

    Declared at: llvm/include/llvm/Analysis/MemorySSA.h:201

    DefsOnlyType::const_reverse_self_iterator
    getReverseDefsIterator() const

    Declared at: llvm/include/llvm/Analysis/MemorySSA.h:204

    AllAccessType::const_reverse_self_iterator
    getReverseIterator() const

    Declared at: llvm/include/llvm/Analysis/MemorySSA.h:192

    AllAccessType::reverse_self_iterator
    getReverseIterator()

    Declared at: llvm/include/llvm/Analysis/MemorySSA.h:189

    void print(llvm::raw_ostream& OS) const

    Declared at: llvm/include/llvm/Analysis/MemorySSA.h:166

    Parameters

    llvm::raw_ostream& OS

    void setBlock(llvm::BasicBlock* BB)

    Description

    Used by MemorySSA to change the block of a MemoryAccess when it is moved.

    Declared at: llvm/include/llvm/Analysis/MemorySSA.h:217

    Parameters

    llvm::BasicBlock* BB

    ~MemoryAccess()

    Declared at: llvm/include/llvm/Analysis/MemorySSA.h:229