|
LLVM
4.0.0
|
Dependece between memory access instructions. More...
#include <LoopAccessAnalysis.h>
Public Types | |
| enum | DepType { NoDep, Unknown, Forward, ForwardButPreventsForwarding, Backward, BackwardVectorizable, BackwardVectorizableButPreventsForwarding } |
| The type of the dependence. More... | |
Public Member Functions | |
| Dependence (unsigned Source, unsigned Destination, DepType Type) | |
| Instruction * | getSource (const LoopAccessInfo &LAI) const |
| Return the source instruction of the dependence. More... | |
| Instruction * | getDestination (const LoopAccessInfo &LAI) const |
| Return the destination instruction of the dependence. More... | |
| bool | isForward () const |
| Lexically forward dependence. More... | |
| bool | isBackward () const |
| Lexically backward dependence. More... | |
| bool | isPossiblyBackward () const |
| May be a lexically backward dependence type (includes Unknown). More... | |
| void | print (raw_ostream &OS, unsigned Depth, const SmallVectorImpl< Instruction * > &Instrs) const |
| Print the dependence. More... | |
Static Public Member Functions | |
| static bool | isSafeForVectorization (DepType Type) |
| Dependence types that don't prevent vectorization. More... | |
Public Attributes | |
| unsigned | Source |
| Index of the source of the dependence in the InstMap vector. More... | |
| unsigned | Destination |
| Index of the destination of the dependence in the InstMap vector. More... | |
| DepType | Type |
| The type of the dependence. More... | |
Static Public Attributes | |
| static const char * | DepName [] |
| String version of the types. More... | |
Dependece between memory access instructions.
Definition at line 134 of file LoopAccessAnalysis.h.
The type of the dependence.
| Enumerator | |
|---|---|
| NoDep | |
| Unknown | |
| Forward | |
| ForwardButPreventsForwarding | |
| Backward | |
| BackwardVectorizable | |
| BackwardVectorizableButPreventsForwarding | |
Definition at line 136 of file LoopAccessAnalysis.h.
|
inline |
Definition at line 173 of file LoopAccessAnalysis.h.
|
inline |
Return the destination instruction of the dependence.
Definition at line 765 of file LoopAccessAnalysis.h.
References llvm::LoopAccessInfo::getDepChecker(), and llvm::MemoryDepChecker::getMemoryInstructions().
|
inline |
Return the source instruction of the dependence.
Definition at line 760 of file LoopAccessAnalysis.h.
References llvm::LoopAccessInfo::getDepChecker(), llvm::MemoryDepChecker::getMemoryInstructions(), and Source.
| bool MemoryDepChecker::Dependence::isBackward | ( | ) | const |
Lexically backward dependence.
Definition at line 1129 of file LoopAccessAnalysis.cpp.
References llvm_unreachable, and llvm::Unknown.
| bool MemoryDepChecker::Dependence::isForward | ( | ) | const |
Lexically forward dependence.
Definition at line 1149 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 1145 of file LoopAccessAnalysis.cpp.
References llvm::Unknown.
Dependence types that don't prevent vectorization.
Definition at line 1113 of file LoopAccessAnalysis.cpp.
References llvm_unreachable, and llvm::Unknown.
| 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 1511 of file LoopAccessAnalysis.cpp.
References llvm::raw_ostream::indent(), and llvm::Sched::Source.
|
static |
String version of the types.
Definition at line 164 of file LoopAccessAnalysis.h.
| unsigned llvm::MemoryDepChecker::Dependence::Destination |
Index of the destination of the dependence in the InstMap vector.
Definition at line 169 of file LoopAccessAnalysis.h.
| unsigned llvm::MemoryDepChecker::Dependence::Source |
Index of the source of the dependence in the InstMap vector.
Definition at line 167 of file LoopAccessAnalysis.h.
Referenced by getSource().
| DepType llvm::MemoryDepChecker::Dependence::Type |
The type of the dependence.
Definition at line 171 of file LoopAccessAnalysis.h.
1.8.6