class MemoryDef

Declaration

class MemoryDef : public MemoryUseOrDef { /* full declaration omitted */ };

Description

Represents a read-write access to memory, whether it is a must-alias, or a may-alias. In particular, the set of Instructions that will be represented by MemoryDef's is exactly the set of Instructions for which AliasAnalysis::getModRefInfo returns "Mod" or "ModRef". Note that, in order to provide def-def chains, all defs also have a use associated with them. This use points to the nearest reaching MemoryDef/MemoryPhi.

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

Inherits from: MemoryUseOrDef

Member Variables

private const unsigned int ID
private unsigned int OptimizedID = INVALID_MEMORYACCESS_ID

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

  • public MemoryDef(llvm::LLVMContext & C, llvm::MemoryAccess * DMA, llvm::Instruction * MI, llvm::BasicBlock * BB, unsigned int Ver)
  • public static bool classof(const llvm::Value * MA)
  • private static void deleteMe(llvm::DerivedUser * Self)
  • public unsigned int getID() const
  • public llvm::MemoryAccess * getOptimized() const
  • public bool isOptimized() const
  • public void print(llvm::raw_ostream & OS) const
  • public void resetOptimized()
  • public void setOptimized(llvm::MemoryAccess * MA)

Inherited from MemoryUseOrDef:

Inherited from MemoryAccess:

Inherited from DerivedUser:

    Inherited from User:

    Inherited from Value:

    Methods

    MemoryDef(llvm::LLVMContext& C,
              llvm::MemoryAccess* DMA,
              llvm::Instruction* MI,
              llvm::BasicBlock* BB,
              unsigned int Ver)

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

    Parameters

    llvm::LLVMContext& C
    llvm::MemoryAccess* DMA
    llvm::Instruction* MI
    llvm::BasicBlock* BB
    unsigned int Ver

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

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

    Parameters

    const llvm::Value* MA

    static void deleteMe(llvm::DerivedUser* Self)

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

    Parameters

    llvm::DerivedUser* Self

    unsigned int getID() const

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

    llvm::MemoryAccess* getOptimized() const

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

    bool isOptimized() const

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

    void print(llvm::raw_ostream& OS) const

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

    Parameters

    llvm::raw_ostream& OS

    void resetOptimized()

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

    void setOptimized(llvm::MemoryAccess* MA)

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

    Parameters

    llvm::MemoryAccess* MA