LLVM 24.0.0git
SLPMemoryUtils.cpp File Reference
#include "SLPMemoryUtils.h"
#include "SLPCompatibilityAnalysis.h"
#include "SLPUtils.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/Analysis/ScalarEvolutionExpressions.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/Instructions.h"
#include <algorithm>
#include <set>
#include <utility>

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::slpvectorizer
 A private "module" namespace for types and utilities used by this pass.

Functions

bool llvm::slpvectorizer::arePointersCompatible (Value *Ptr1, Value *Ptr2, const TargetLibraryInfo &TLI, unsigned MaxDepth, bool CompareOpcodes=true)
 MaxDepth is the recursion limit for getUnderlyingObject.
template<typename T>
Align llvm::slpvectorizer::computeCommonAlignment (ArrayRef< Value * > VL)
 Calculates minimal alignment as a common alignment.
template Align llvm::slpvectorizer::computeCommonAlignment< LoadInst > (ArrayRef< Value * >)
template Align llvm::slpvectorizer::computeCommonAlignment< StoreInst > (ArrayRef< Value * >)
const SCEVllvm::slpvectorizer::calculateRtStride (ArrayRef< Value * > PointerOps, Type *ElemTy, const DataLayout &DL, ScalarEvolution &SE, SmallVectorImpl< unsigned > &SortedIndices)
 Checks if the provided list of pointers Pointers represents the strided pointers for type ElemTy.