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:
- include/llvm/Analysis/LoopAccessAnalysis.h
- lib/Analysis/LoopAccessAnalysis.cpp