LLVM  3.7.0
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
llvm::MemoryDepChecker::Dependence Struct Reference

Dependece between memory access instructions. More...

#include <LoopAccessAnalysis.h>

Collaboration diagram for llvm::MemoryDepChecker::Dependence:
[legend]

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)
 
bool isPossiblyBackward () const
 Lexically backward dependence types. 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...
 
static bool isInterestingDependence (DepType Type)
 Dependence types that can be queried from the analysis. 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...
 

Detailed Description

Dependece between memory access instructions.

Definition at line 131 of file LoopAccessAnalysis.h.

Member Enumeration Documentation

The type of the dependence.

Enumerator
NoDep 
Unknown 
Forward 
ForwardButPreventsForwarding 
Backward 
BackwardVectorizable 
BackwardVectorizableButPreventsForwarding 

Definition at line 133 of file LoopAccessAnalysis.h.

Constructor & Destructor Documentation

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

Definition at line 162 of file LoopAccessAnalysis.h.

Member Function Documentation

bool MemoryDepChecker::Dependence::isInterestingDependence ( DepType  Type)
static

Dependence types that can be queried from the analysis.

Definition at line 875 of file LoopAccessAnalysis.cpp.

References llvm_unreachable, and llvm::Unknown.

bool MemoryDepChecker::Dependence::isPossiblyBackward ( ) const

Lexically backward dependence types.

Definition at line 891 of file LoopAccessAnalysis.cpp.

References llvm_unreachable, and llvm::Unknown.

bool MemoryDepChecker::Dependence::isSafeForVectorization ( DepType  Type)
static

Dependence types that don't prevent vectorization.

Definition at line 859 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 1251 of file LoopAccessAnalysis.cpp.

References llvm::raw_ostream::indent(), and llvm::Sched::Source.

Member Data Documentation

const char * MemoryDepChecker::Dependence::DepName
static
Initial value:
= {
"NoDep", "Unknown", "Forward", "ForwardButPreventsForwarding", "Backward",
"BackwardVectorizable", "BackwardVectorizableButPreventsForwarding"}

String version of the types.

Definition at line 153 of file LoopAccessAnalysis.h.

unsigned llvm::MemoryDepChecker::Dependence::Destination

Index of the destination of the dependence in the InstMap vector.

Definition at line 158 of file LoopAccessAnalysis.h.

unsigned llvm::MemoryDepChecker::Dependence::Source

Index of the source of the dependence in the InstMap vector.

Definition at line 156 of file LoopAccessAnalysis.h.

DepType llvm::MemoryDepChecker::Dependence::Type

The type of the dependence.

Definition at line 160 of file LoopAccessAnalysis.h.


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