|
LLVM
3.7.0
|
#include "llvm/CodeGen/Passes.h"#include "llvm/IR/InstIterator.h"#include "llvm/Support/Debug.h"#include "llvm/Support/MathExtras.h"#include "llvm/Support/raw_ostream.h"#include "llvm/Target/TargetLowering.h"#include "llvm/Target/TargetSubtargetInfo.h"Go to the source code of this file.
Namespaces | |
| llvm | |
| Compute iterated dominance frontiers using a linear time algorithm. | |
Macros | |
| #define | DEBUG_TYPE "interleaved-access" |
Functions | |
| static void | llvm::initializeInterleavedAccessPass (PassRegistry &) |
| INITIALIZE_TM_PASS (InterleavedAccess,"interleaved-access","Lower interleaved memory accesses to target specific intrinsics", false, false) FunctionPass *llvm | |
| static bool | isDeInterleaveMaskOfFactor (ArrayRef< int > Mask, unsigned Factor, unsigned &Index) |
Check if the mask is a DE-interleave mask of the given factor Factor like: <Index, Index+Factor, ..., Index+(NumElts-1)*Factor> More... | |
| static bool | isDeInterleaveMask (ArrayRef< int > Mask, unsigned &Factor, unsigned &Index) |
| Check if the mask is a DE-interleave mask for an interleaved load. More... | |
| static bool | isReInterleaveMask (ArrayRef< int > Mask, unsigned &Factor) |
| Check if the mask is RE-interleave mask for an interleaved store. More... | |
Variables | |
| static cl::opt< bool > | LowerInterleavedAccesses ("lower-interleaved-accesses", cl::desc("Enable lowering interleaved accesses to intrinsics"), cl::init(false), cl::Hidden) |
| static unsigned | MaxFactor |
| #define DEBUG_TYPE "interleaved-access" |
Definition at line 50 of file InterleavedAccessPass.cpp.
| INITIALIZE_TM_PASS | ( | InterleavedAccess | , |
| "interleaved-access" | , | ||
| "Lower interleaved memory accesses to target specific intrinsics" | , | ||
| false | , | ||
| false | |||
| ) |
Definition at line 93 of file InterleavedAccessPass.cpp.
Check if the mask is a DE-interleave mask for an interleaved load.
E.g. DE-interleave masks (Factor = 2) could be: <0, 2, 4, 6> (mask of index 0 to extract even elements) <1, 3, 5, 7> (mask of index 1 to extract odd elements)
Definition at line 128 of file InterleavedAccessPass.cpp.
References isDeInterleaveMaskOfFactor(), MaxFactor, and llvm::ArrayRef< T >::size().
|
static |
Check if the mask is a DE-interleave mask of the given factor Factor like: <Index, Index+Factor, ..., Index+(NumElts-1)*Factor>
Definition at line 104 of file InterleavedAccessPass.cpp.
References llvm::ArrayRef< T >::size().
Referenced by isDeInterleaveMask().
Check if the mask is RE-interleave mask for an interleaved store.
I.e. <0, NumSubElts, ... , NumSubElts*(Factor - 1), 1, NumSubElts + 1, ...>
E.g. The RE-interleave mask (Factor = 2) could be: <0, 4, 1, 5, 2, 6, 3, 7>
Definition at line 147 of file InterleavedAccessPass.cpp.
References llvm::isPowerOf2_32(), MaxFactor, and llvm::ArrayRef< T >::size().
|
static |
|
static |
Definition at line 57 of file InterleavedAccessPass.cpp.
Referenced by isDeInterleaveMask(), and isReInterleaveMask().
1.8.6