LLVM 20.0.0git
|
Dependece between memory access instructions. More...
#include "llvm/Analysis/LoopAccessAnalysis.h"
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. | |
bool | isForward () const |
Lexically forward dependence. | |
bool | isBackward () const |
Lexically backward dependence. | |
bool | isPossiblyBackward () const |
May be a lexically backward dependence type (includes Unknown). | |
void | print (raw_ostream &OS, unsigned Depth, const SmallVectorImpl< Instruction * > &Instrs) const |
Print the dependence. | |
Static Public Member Functions | |
static VectorizationSafetyStatus | isSafeForVectorization (DepType Type) |
Dependence types that don't prevent vectorization. | |
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. | |
Static Public Attributes | |
static const char * | DepName [] |
String version of the types. | |
Dependece between memory access instructions.
Definition at line 111 of file LoopAccessAnalysis.h.
The type of the dependence.
Enumerator | |
---|---|
NoDep | |
Unknown | |
IndirectUnsafe | |
Forward | |
ForwardButPreventsForwarding | |
Backward | |
BackwardVectorizable | |
BackwardVectorizableButPreventsForwarding |
Definition at line 113 of file LoopAccessAnalysis.h.
|
inline |
Definition at line 156 of file LoopAccessAnalysis.h.
|
inline |
Return the destination instruction of the dependence.
Definition at line 895 of file LoopAccessAnalysis.h.
References llvm::MemoryDepChecker::getMemoryInstructions().
|
inline |
Return the source instruction of the dependence.
Definition at line 890 of file LoopAccessAnalysis.h.
References llvm::MemoryDepChecker::getMemoryInstructions(), and Source.
bool MemoryDepChecker::Dependence::isBackward | ( | ) | const |
Lexically backward dependence.
Definition at line 1701 of file LoopAccessAnalysis.cpp.
References llvm_unreachable, and llvm::Unknown.
bool MemoryDepChecker::Dependence::isForward | ( | ) | const |
Lexically forward dependence.
Definition at line 1722 of file LoopAccessAnalysis.cpp.
References llvm_unreachable, and llvm::Unknown.
bool MemoryDepChecker::Dependence::isPossiblyBackward | ( | ) | const |
May be a lexically backward dependence type (includes Unknown).
Definition at line 1718 of file LoopAccessAnalysis.cpp.
References llvm::Unknown.
|
static |
Dependence types that don't prevent vectorization.
Definition at line 1683 of file LoopAccessAnalysis.cpp.
References Backward, BackwardVectorizable, BackwardVectorizableButPreventsForwarding, Forward, ForwardButPreventsForwarding, IndirectUnsafe, llvm_unreachable, NoDep, llvm::MemoryDepChecker::PossiblySafeWithRtChecks, llvm::MemoryDepChecker::Safe, Unknown, and llvm::MemoryDepChecker::Unsafe.
Referenced by llvm::MemoryDepChecker::areDepsSafe().
void MemoryDepChecker::Dependence::print | ( | raw_ostream & | OS, |
unsigned | Depth, | ||
const SmallVectorImpl< Instruction * > & | Instrs | ||
) | const |
Print the dependence.
Instr
is used to map the instruction indices to instructions.
Definition at line 2342 of file LoopAccessAnalysis.cpp.
References llvm::Depth, llvm::raw_ostream::indent(), and OS.
Referenced by llvm::LoopAccessInfo::print().
String version of the types.
Definition at line 147 of file LoopAccessAnalysis.h.
unsigned llvm::MemoryDepChecker::Dependence::Destination |
Index of the destination of the dependence in the InstMap vector.
Definition at line 152 of file LoopAccessAnalysis.h.
unsigned llvm::MemoryDepChecker::Dependence::Source |
Index of the source of the dependence in the InstMap vector.
Definition at line 150 of file LoopAccessAnalysis.h.
Referenced by getSource().
DepType llvm::MemoryDepChecker::Dependence::Type |
The type of the dependence.
Definition at line 154 of file LoopAccessAnalysis.h.