|
LLVM 22.0.0git
|
#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) |
| #define DEBUG_TYPE "load-store-vectorizer" |
Definition at line 120 of file LoadStoreVectorizer.cpp.
|
static |
Definition at line 1109 of file LoadStoreVectorizer.cpp.
References assert(), llvm::cast(), checkNoWrapFlags(), llvm::dbgs(), llvm::dyn_cast(), llvm::Instruction::getOpcode(), llvm::User::getOperand(), llvm::APInt::getSExtValue(), llvm::isa(), LLVM_DEBUG, and Signed.
|
static |
Definition at line 1103 of file LoadStoreVectorizer.cpp.
References llvm::cast(), llvm::Instruction::hasNoSignedWrap(), llvm::Instruction::hasNoUnsignedWrap(), I, and Signed.
Referenced by checkIfSafeAddSequence().
| INITIALIZE_PASS_BEGIN | ( | LoadStoreVectorizerLegacyPass | , |
| DEBUG_TYPE | , | ||
| "Vectorize load and Store instructions" | , | ||
| false | , | ||
| false | ) |
References DEBUG_TYPE, and INITIALIZE_PASS_DEPENDENCY.
| INITIALIZE_PASS_END | ( | LoadStoreVectorizerLegacyPass | , |
| DEBUG_TYPE | , | ||
| "Vectorize load and store instructions" | , | ||
| false | , | ||
| false | ) |
Definition at line 386 of file LoadStoreVectorizer.cpp.
References llvm::createLoadStoreVectorizerPass(), DEBUG_TYPE, and INITIALIZE_PASS_END.
| STATISTIC | ( | NumScalarsVectorized | , |
| "Number of scalar accesses vectorized" | ) |
| STATISTIC | ( | NumVectorInstructions | , |
| "Number of vector accesses generated" | ) |