struct MemoryDepChecker::Dependence

Declaration

struct MemoryDepChecker::Dependence { /* full declaration omitted */ };

Description

Dependece between memory access instructions.

Declared at: llvm/include/llvm/Analysis/LoopAccessAnalysis.h:113

Member Variables

public unsigned int Source
Index of the source of the dependence in the InstMap vector.
public unsigned int Destination
Index of the destination of the dependence in the InstMap vector.
public llvm::MemoryDepChecker::Dependence::DepType Type
The type of the dependence.
public static const char*[] DepName
String version of the types.

Method Overview

  • public Dependence(unsigned int Source, unsigned int Destination, llvm::MemoryDepChecker::Dependence::DepType Type)
  • public llvm::Instruction * getDestination(const llvm::LoopAccessInfo & LAI) const
  • public llvm::Instruction * getSource(const llvm::LoopAccessInfo & LAI) const
  • public bool isBackward() const
  • public bool isForward() const
  • public bool isPossiblyBackward() const
  • public static llvm::MemoryDepChecker::VectorizationSafetyStatus isSafeForVectorization(llvm::MemoryDepChecker::Dependence::DepType Type)
  • public void print(llvm::raw_ostream & OS, unsigned int Depth, const SmallVectorImpl<llvm::Instruction *> & Instrs) const

Methods

Dependence(
    unsigned int Source,
    unsigned int Destination,
    llvm::MemoryDepChecker::Dependence::DepType
        Type)

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

Parameters

unsigned int Source
unsigned int Destination
llvm::MemoryDepChecker::Dependence::DepType Type

llvm::Instruction* getDestination(
    const llvm::LoopAccessInfo& LAI) const

Description

Return the destination instruction of the dependence.

Declared at: llvm/include/llvm/Analysis/LoopAccessAnalysis.h:158

Parameters

const llvm::LoopAccessInfo& LAI

llvm::Instruction* getSource(
    const llvm::LoopAccessInfo& LAI) const

Description

Return the source instruction of the dependence.

Declared at: llvm/include/llvm/Analysis/LoopAccessAnalysis.h:156

Parameters

const llvm::LoopAccessInfo& LAI

bool isBackward() const

Description

Lexically backward dependence.

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

bool isForward() const

Description

Lexically forward dependence.

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

bool isPossiblyBackward() const

Description

May be a lexically backward dependence type (includes Unknown).

Declared at: llvm/include/llvm/Analysis/LoopAccessAnalysis.h:169

static llvm::MemoryDepChecker::
    VectorizationSafetyStatus
    isSafeForVectorization(
        llvm::MemoryDepChecker::Dependence::
            DepType Type)

Description

Dependence types that don't prevent vectorization.

Declared at: llvm/include/llvm/Analysis/LoopAccessAnalysis.h:161

Parameters

llvm::MemoryDepChecker::Dependence::DepType Type

void print(
    llvm::raw_ostream& OS,
    unsigned int Depth,
    const SmallVectorImpl<llvm::Instruction*>&
        Instrs) const

Description

Print the dependence. \p Instr is used to map the instruction indices to instructions.

Declared at: llvm/include/llvm/Analysis/LoopAccessAnalysis.h:173

Parameters

llvm::raw_ostream& OS
unsigned int Depth
const SmallVectorImpl<llvm::Instruction*>& Instrs