LLVM 20.0.0git
|
#include "llvm/Analysis/VectorUtils.h"
#include "llvm/ADT/EquivalenceClasses.h"
#include "llvm/ADT/SmallVector.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/DerivedTypes.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/MemoryModelRelaxationAnnotations.h"
#include "llvm/IR/PatternMatch.h"
#include "llvm/IR/Value.h"
#include "llvm/Support/CommandLine.h"
Go to the source code of this file.
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
Macros | |
#define | DEBUG_TYPE "vectorutils" |
Functions | |
template<typename ListT > | |
static void | addToAccessGroupList (ListT &List, MDNode *AccGroups) |
Add all access groups in AccGroups to List . | |
static Value * | concatenateTwoVectors (IRBuilderBase &Builder, Value *V1, Value *V2) |
A helper function for concatenating vectors. | |
Variables | |
static cl::opt< unsigned > | MaxInterleaveGroupFactor ("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. | |
#define DEBUG_TYPE "vectorutils" |
Definition at line 31 of file VectorUtils.cpp.
|
static |
Add all access groups in AccGroups
to List
.
Definition at line 758 of file VectorUtils.cpp.
References assert(), llvm::MDNode::getNumOperands(), llvm::isValidAsAccessGroup(), List, and llvm::MDNode::operands().
Referenced by llvm::intersectAccessGroups(), and llvm::uniteAccessGroups().
|
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 972 of file VectorUtils.cpp.
References assert(), llvm::createSequentialMask(), llvm::IRBuilderBase::CreateShuffleVector(), and llvm::Value::getType().
Referenced by llvm::concatenateVectors().
|
static |
Maximum factor for an interleaved memory access.