LLVM 20.0.0git
Macros | Functions
LoadStoreVectorizer.cpp File Reference
#include "llvm/Transforms/Vectorize/LoadStoreVectorizer.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/PostOrderIterator.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/Sequence.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/AssumptionCache.h"
#include "llvm/Analysis/MemoryLocation.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/Analysis/VectorUtils.h"
#include "llvm/IR/Attributes.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/ConstantRange.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/GetElementPtrTypeIterator.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/InstrTypes.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/Value.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
#include "llvm/Support/Alignment.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/KnownBits.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/ModRef.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Transforms/Utils/Local.h"
#include <algorithm>
#include <cassert>
#include <cstdint>
#include <cstdlib>
#include <iterator>
#include <numeric>
#include <optional>
#include <tuple>
#include <type_traits>
#include <utility>
#include <vector>

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "load-store-vectorizer"
 

Functions

 STATISTIC (NumVectorInstructions, "Number of vector accesses generated")
 
 STATISTIC (NumScalarsVectorized, "Number of scalar accesses vectorized")
 
 INITIALIZE_PASS_BEGIN (LoadStoreVectorizerLegacyPass, DEBUG_TYPE, "Vectorize load and Store instructions", false, false) INITIALIZE_PASS_DEPENDENCY(AssumptionCacheTracker)
 
 INITIALIZE_PASS_END (LoadStoreVectorizerLegacyPass, DEBUG_TYPE, "Vectorize load and store instructions", false, false) Pass *llvm
 
static bool checkNoWrapFlags (Instruction *I, bool Signed)
 
static bool checkIfSafeAddSequence (const APInt &IdxDiff, Instruction *AddOpA, unsigned MatchingOpIdxA, Instruction *AddOpB, unsigned MatchingOpIdxB, bool Signed)
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "load-store-vectorizer"

Definition at line 120 of file LoadStoreVectorizer.cpp.

Function Documentation

◆ checkIfSafeAddSequence()

static bool checkIfSafeAddSequence ( const APInt IdxDiff,
Instruction AddOpA,
unsigned  MatchingOpIdxA,
Instruction AddOpB,
unsigned  MatchingOpIdxB,
bool  Signed 
)
static

◆ checkNoWrapFlags()

static bool checkNoWrapFlags ( Instruction I,
bool  Signed 
)
static

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( LoadStoreVectorizerLegacyPass  ,
DEBUG_TYPE  ,
"Vectorize load and Store instructions"  ,
false  ,
false   
)

◆ INITIALIZE_PASS_END()

INITIALIZE_PASS_END ( LoadStoreVectorizerLegacyPass  ,
DEBUG_TYPE  ,
"Vectorize load and store instructions"  ,
false  ,
false   
)

Definition at line 380 of file LoadStoreVectorizer.cpp.

◆ STATISTIC() [1/2]

STATISTIC ( NumScalarsVectorized  ,
"Number of scalar accesses vectorized"   
)

◆ STATISTIC() [2/2]

STATISTIC ( NumVectorInstructions  ,
"Number of vector accesses generated"   
)