LLVM  13.0.0git
Macros | Functions | Variables
Scalarizer.cpp File Reference
#include "llvm/Transforms/Scalar/Scalarizer.h"
#include "llvm/ADT/PostOrderIterator.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Twine.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/Pass.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Transforms/Scalar.h"
#include "llvm/Transforms/Utils/Local.h"
#include <cassert>
#include <cstdint>
#include <iterator>
#include <map>
#include <utility>
Include dependency graph for Scalarizer.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "scalarizer"
 

Functions

 INITIALIZE_PASS_BEGIN (ScalarizerLegacyPass, "scalarizer", "Scalarize vector operations", false, false) INITIALIZE_PASS_END(ScalarizerLegacyPass
 
static bool isTriviallyScalariable (Intrinsic::ID ID)
 
static FunctiongetScalarIntrinsicDeclaration (Module *M, Intrinsic::ID ID, VectorType *Ty)
 

Variables

static cl::opt< bool > ScalarizeVariableInsertExtract ("scalarize-variable-insert-extract", cl::init(true), cl::Hidden, cl::desc("Allow the scalarizer pass to scalarize " "insertelement/extractelement with variable index"))
 
static cl::opt< bool > ScalarizeLoadStore ("scalarize-load-store", cl::init(false), cl::Hidden, cl::desc("Allow the scalarizer pass to scalarize loads and store"))
 
 scalarizer
 
Scalarize vector operations
 
Scalarize vector false
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "scalarizer"

Definition at line 53 of file Scalarizer.cpp.

Function Documentation

◆ getScalarIntrinsicDeclaration()

static Function* getScalarIntrinsicDeclaration ( Module M,
Intrinsic::ID  ID,
VectorType Ty 
)
static

Definition at line 511 of file Scalarizer.cpp.

References llvm::Intrinsic::getDeclaration(), llvm::Type::getScalarType(), and M.

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( ScalarizerLegacyPass  ,
"scalarizer"  ,
"Scalarize vector operations ,
false  ,
false   
)

◆ isTriviallyScalariable()

static bool isTriviallyScalariable ( Intrinsic::ID  ID)
static

Definition at line 506 of file Scalarizer.cpp.

References llvm::isTriviallyVectorizable().

Variable Documentation

◆ false

Scalarize vector false

Definition at line 256 of file Scalarizer.cpp.

◆ operations

Scalarize vector operations

Definition at line 256 of file Scalarizer.cpp.

◆ ScalarizeLoadStore

cl::opt<bool> ScalarizeLoadStore("scalarize-load-store", cl::init(false), cl::Hidden, cl::desc("Allow the scalarizer pass to scalarize loads and store"))
static

◆ scalarizer

scalarizer

Definition at line 255 of file Scalarizer.cpp.

◆ ScalarizeVariableInsertExtract

cl::opt<bool> ScalarizeVariableInsertExtract("scalarize-variable-insert-extract", cl::init(true), cl::Hidden, cl::desc("Allow the scalarizer pass to scalarize " "insertelement/extractelement with variable index"))
static