|
LLVM 22.0.0git
|
#include "llvm/Transforms/Scalar/Scalarizer.h"#include "llvm/ADT/PostOrderIterator.h"#include "llvm/ADT/SmallVector.h"#include "llvm/ADT/Twine.h"#include "llvm/Analysis/TargetTransformInfo.h"#include "llvm/Analysis/VectorUtils.h"#include "llvm/IR/Argument.h"#include "llvm/IR/BasicBlock.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/IRBuilder.h"#include "llvm/IR/InstVisitor.h"#include "llvm/IR/InstrTypes.h"#include "llvm/IR/Instruction.h"#include "llvm/IR/Instructions.h"#include "llvm/IR/Intrinsics.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/Support/Casting.h"#include "llvm/Transforms/Utils/Local.h"#include <cassert>#include <cstdint>#include <iterator>#include <map>#include <utility>Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "scalarizer" |
Typedefs | |
| using | ValueVector = SmallVector<Value *, 8> |
| using | ScatterMap = std::map<std::pair<Value *, Type *>, ValueVector> |
| using | GatherList = SmallVector<std::pair<Instruction *, ValueVector *>, 16> |
Functions | |
| static BasicBlock::iterator | skipPastPhiNodesAndDbg (BasicBlock::iterator Itr) |
| static bool | isStructOfMatchingFixedVectors (Type *Ty) |
| static Value * | concatenate (IRBuilder<> &Builder, ArrayRef< Value * > Fragments, const VectorSplit &VS, Twine Name) |
Concatenate the given fragments to a single vector value of the type described in VS. | |
| INITIALIZE_PASS_BEGIN (ScalarizerLegacyPass, "scalarizer", "Scalarize vector operations", false, false) INITIALIZE_PASS_END(ScalarizerLegacyPass | |
Variables | |
| scalarizer | |
| Scalarize vector | operations |
| Scalarize vector | false |
| #define DEBUG_TYPE "scalarizer" |
Definition at line 51 of file Scalarizer.cpp.
| using GatherList = SmallVector<std::pair<Instruction *, ValueVector *>, 16> |
Definition at line 75 of file Scalarizer.cpp.
| using ScatterMap = std::map<std::pair<Value *, Type *>, ValueVector> |
Definition at line 71 of file Scalarizer.cpp.
| using ValueVector = SmallVector<Value *, 8> |
Definition at line 63 of file Scalarizer.cpp.
|
static |
Concatenate the given fragments to a single vector value of the type described in VS.
Definition at line 221 of file Scalarizer.cpp.
References llvm::dyn_cast(), llvm::PoisonValue::get(), I, and llvm::SmallVectorImpl< T >::resize().
| INITIALIZE_PASS_BEGIN | ( | ScalarizerLegacyPass | , |
| "scalarizer" | , | ||
| "Scalarize vector operations" | , | ||
| false | , | ||
| false | ) |
References INITIALIZE_PASS_DEPENDENCY.
Definition at line 201 of file Scalarizer.cpp.
References llvm::dyn_cast(), llvm::FixedVectorType::getNumElements(), I, and llvm::isa().
|
static |
Definition at line 53 of file Scalarizer.cpp.
References llvm::BasicBlock::end(), llvm::BasicBlock::getFirstInsertionPt(), llvm::BasicBlock::getParent(), llvm::isa(), and llvm::skipDebugIntrinsics().
| Scalarize vector false |
Definition at line 361 of file Scalarizer.cpp.
| Scalarize vector operations |
Definition at line 361 of file Scalarizer.cpp.
| scalarizer |
Definition at line 360 of file Scalarizer.cpp.