LLVM: llvm::MemoryDepChecker::Dependence Struct Reference (original) (raw)

Dependece between memory access instructions. More...

#include "[llvm/Analysis/LoopAccessAnalysis.h](LoopAccessAnalysis%5F8h%5Fsource.html)"

Public Types
enum DepType { NoDep, Unknown, IndirectUnsafe, Forward, ForwardButPreventsForwarding, Backward, BackwardVectorizable, BackwardVectorizableButPreventsForwarding }
The type of the dependence. More...
Public Member Functions
Dependence (unsigned Source, unsigned Destination, DepType Type)
Instruction * getSource (const MemoryDepChecker &DepChecker) const
Return the source instruction of the dependence.
Instruction * getDestination (const MemoryDepChecker &DepChecker) const
Return the destination instruction of the dependence.
LLVM_ABI bool isForward () const
Lexically forward dependence.
LLVM_ABI bool isBackward () const
Lexically backward dependence.
LLVM_ABI bool isPossiblyBackward () const
May be a lexically backward dependence type (includes Unknown).
LLVM_ABI void print (raw_ostream &OS, unsigned Depth, const SmallVectorImpl< Instruction * > &Instrs) const
Print the dependence.
Public Attributes
unsigned Source
Index of the source of the dependence in the InstMap vector.
unsigned Destination
Index of the destination of the dependence in the InstMap vector.
DepType Type
The type of the dependence.

Dependece between memory access instructions.

Definition at line 112 of file LoopAccessAnalysis.h.

DepType

The type of the dependence.

Enumerator
NoDep
Unknown
IndirectUnsafe
Forward
ForwardButPreventsForwarding
Backward
BackwardVectorizable
BackwardVectorizableButPreventsForwarding

Definition at line 114 of file LoopAccessAnalysis.h.

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

getDestination()

getSource()

isBackward()

bool MemoryDepChecker::Dependence::isBackward ( ) const

isForward()

bool MemoryDepChecker::Dependence::isForward ( ) const

isPossiblyBackward()

bool MemoryDepChecker::Dependence::isPossiblyBackward ( ) const

isSafeForVectorization()

Dependence types that don't prevent vectorization.

Definition at line 1799 of file LoopAccessAnalysis.cpp.

References Backward, BackwardVectorizable, BackwardVectorizableButPreventsForwarding, Forward, ForwardButPreventsForwarding, IndirectUnsafe, llvm_unreachable, NoDep, llvm::MemoryDepChecker::PossiblySafeWithRtChecks, llvm::MemoryDepChecker::Safe, Type, Unknown, and llvm::MemoryDepChecker::Unsafe.

Referenced by llvm::MemoryDepChecker::areDepsSafe().

print()

DepName

const char * MemoryDepChecker::Dependence::DepName static

Initial value:

= {

"NoDep",

"Unknown",

"IndirectUnsafe",

"Forward",

"ForwardButPreventsForwarding",

"Backward",

"BackwardVectorizable",

"BackwardVectorizableButPreventsForwarding"}

String version of the types.

Definition at line 148 of file LoopAccessAnalysis.h.

Referenced by print().

Destination

unsigned llvm::MemoryDepChecker::Dependence::Destination

Source

unsigned llvm::MemoryDepChecker::Dependence::Source

Type

DepType llvm::MemoryDepChecker::Dependence::Type


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