LLVM 24.0.0git
LoopVectorizationLegality.cpp File Reference

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.

Macros

#define LV_NAME   "loop-vectorize"
#define DEBUG_TYPE   LV_NAME

Functions

static IntegerType * llvm::getInductionIntegerTy (const DataLayout &DL, Type *Ty)
static IntegerType * llvm::getWiderInductionTy (const DataLayout &DL, Type *Ty0, Type *Ty1)
static bool llvm::storeToSameAddress (ScalarEvolution *SE, StoreInst *A, StoreInst *B)
 Returns true if A and B have same pointer operands or same SCEVs addresses.
static bool llvm::canWidenResultType (const Instruction &I, bool AllowStructCalls)
 Returns true if the type produced by I can be widened.
static bool llvm::canWidenTypes (Instruction &I, bool AllowStructCalls, OptimizationRemarkEmitter *ORE, Loop *TheLoop)
 Returns true if the types produced and stored by I can be widened, otherwise reports a vectorization failure for TheLoop and returns false.
static bool llvm::canVectorizeSwiftErrorUses (Instruction &I, OptimizationRemarkEmitter *ORE, Loop *TheLoop)
 Returns true if I does not use a swifterror value, otherwise reports a vectorization failure for TheLoop and returns false.
static bool llvm::isTLIScalarize (const TargetLibraryInfo &TLI, const CallInst &CI)
 Checks if a function is scalarizable according to the TLI, in the sense that it should be vectorized and then expanded in multiple scalar calls.
static bool llvm::findHistogram (LoadInst *LI, StoreInst *HSt, Loop *TheLoop, const PredicatedScalarEvolution &PSE, SmallVectorImpl< HistogramInfo > &Histograms)
 Find histogram operations that match high-level code in loops:
static bool llvm::matchUncountableExitCondition (Value *Cond, Value *&Ptr, Instruction *&Load, Value *&Other)
 Matches an exit condition formed by comparing a value loaded from memory with another term.
static bool llvm::matchCountableExitCondition (Value *Cond, ScalarEvolution &SE, Loop *TheLoop)
 Matches an exit condition formed by comparing the current value of an affine add recurrence in the given loop with a stride of 1 against a loop-invariant term.
static bool llvm::matchCombinedExitCondition (Value *Cond, Instruction *&CountableCond, Value *&Ptr, Instruction *&Load, Value *&Other, ScalarEvolution &SE, Loop *TheLoop)
 Matches a combined exit condition consisting of an uncountable condition and a countable condition, combined by an or.

Variables

static const unsigned MaxInterleaveFactor = 16
 Maximum vectorization interleave count.

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   LV_NAME

Definition at line 42 of file LoopVectorizationLegality.cpp.

◆ LV_NAME

Variable Documentation

◆ MaxInterleaveFactor

const unsigned MaxInterleaveFactor = 16
static

Maximum vectorization interleave count.

Definition at line 45 of file LoopVectorizationLegality.cpp.

Referenced by llvm::WebAssemblyTTIImpl::getInterleavedMemoryOpCost().