struct MemoryDepChecker::Dependence

Declaration

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

Description

Dependece between memory access instructions.

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

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:146

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:152

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:150

Parameters

const llvm::LoopAccessInfo& LAI

bool isBackward() const

Description

Lexically backward dependence.

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

bool isForward() const

Description

Lexically forward dependence.

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

bool isPossiblyBackward() const

Description

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

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

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:155

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:167

Parameters

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