LLVM  9.0.0svn
Namespaces | Macros | Functions | Variables
VectorUtils.cpp File Reference
#include "llvm/Analysis/VectorUtils.h"
#include "llvm/ADT/EquivalenceClasses.h"
#include "llvm/Analysis/DemandedBits.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/LoopIterator.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/Analysis/ScalarEvolutionExpressions.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/GetElementPtrTypeIterator.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/PatternMatch.h"
#include "llvm/IR/Value.h"
Include dependency graph for VectorUtils.cpp:

Go to the source code of this file.

Namespaces

 llvm
 This class represents lattice values for constants.
 

Macros

#define DEBUG_TYPE   "vectorutils"
 

Functions

template<typename ListT >
static void addToAccessGroupList (ListT &List, MDNode *AccGroups)
 Add all access groups in AccGroups to List. More...
 
static ValueconcatenateTwoVectors (IRBuilder<> &Builder, Value *V1, Value *V2)
 A helper function for concatenating vectors. More...
 

Variables

static cl::opt< unsignedMaxInterleaveGroupFactor ("max-interleave-group-factor", cl::Hidden, cl::desc("Maximum factor for an interleaved access group (default = 8)"), cl::init(8))
 Maximum factor for an interleaved memory access. More...
 
const unsigned MaxDepth = 6
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "vectorutils"

Definition at line 28 of file VectorUtils.cpp.

Function Documentation

◆ addToAccessGroupList()

template<typename ListT >
static void addToAccessGroupList ( ListT &  List,
MDNode AccGroups 
)
static

Add all access groups in AccGroups to List.

Definition at line 507 of file VectorUtils.cpp.

References assert(), llvm::MDNode::getNumOperands(), llvm::isValidAsAccessGroup(), and llvm::MDNode::operands().

Referenced by llvm::intersectAccessGroups(), and llvm::uniteAccessGroups().

◆ concatenateTwoVectors()

static Value* concatenateTwoVectors ( IRBuilder<> &  Builder,
Value V1,
Value V2 
)
static

A helper function for concatenating vectors.

This function concatenates two vectors having the same element type. If the second vector has fewer elements than the first, it is padded with undefs.

Definition at line 698 of file VectorUtils.cpp.

References assert(), llvm::createSequentialMask(), llvm::IRBuilder< T, Inserter >::CreateShuffleVector(), llvm::dyn_cast(), llvm::UndefValue::get(), llvm::SequentialType::getNumElements(), llvm::Type::getScalarType(), llvm::Value::getType(), and llvm::BitmaskEnumDetail::Mask().

Referenced by llvm::concatenateVectors().

Variable Documentation

◆ MaxDepth

const unsigned MaxDepth = 6

Definition at line 326 of file VectorUtils.cpp.

◆ MaxInterleaveGroupFactor

cl::opt<unsigned> MaxInterleaveGroupFactor("max-interleave-group-factor", cl::Hidden, cl::desc("Maximum factor for an interleaved access group (default = 8)"), cl::init(8))
static

Maximum factor for an interleaved memory access.

Referenced by llvm::possiblyDemandedEltsInMask().