LLVM 22.0.0git
Macros | Functions | Variables
EVLIndVarSimplify.cpp File Reference
#include "llvm/Transforms/Vectorize/EVLIndVarSimplify.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/IVDescriptors.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/LoopPass.h"
#include "llvm/Analysis/OptimizationRemarkEmitter.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/Analysis/ScalarEvolutionExpressions.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/PatternMatch.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Transforms/Scalar/LoopPassManager.h"
#include "llvm/Transforms/Utils/Local.h"

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "evl-iv-simplify"
 

Functions

 STATISTIC (NumEliminatedCanonicalIV, "Number of canonical IVs we eliminated")
 
static uint32_t getVFFromIndVar (const SCEV *Step, const Function &F)
 Returns the constant part of vectorization factor from the induction variable's step value SCEV expression.
 

Variables

static cl::opt< boolEnableEVLIndVarSimplify ("enable-evl-indvar-simplify", cl::desc("Enable EVL-based induction variable simplify Pass"), cl::Hidden, cl::init(true))
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "evl-iv-simplify"

Definition at line 32 of file EVLIndVarSimplify.cpp.

Function Documentation

◆ getVFFromIndVar()

static uint32_t getVFFromIndVar ( const SCEV Step,
const Function F 
)
static

Returns the constant part of vectorization factor from the induction variable's step value SCEV expression.

Definition at line 59 of file EVLIndVarSimplify.cpp.

References F, llvm::Fixed, llvm::User::getNumOperands(), llvm::User::getOperand(), llvm::ConstantRange::getSingleElement(), llvm::getVScaleRange(), LHS, Mul, and RHS.

◆ STATISTIC()

STATISTIC ( NumEliminatedCanonicalIV  ,
"Number of canonical IVs we eliminated"   
)

Variable Documentation

◆ EnableEVLIndVarSimplify

cl::opt< bool > EnableEVLIndVarSimplify("enable-evl-indvar-simplify", cl::desc("Enable EVL-based induction variable simplify Pass"), cl::Hidden, cl::init(true)) ( "enable-evl-indvar-simplify"  ,
cl::desc("Enable EVL-based induction variable simplify Pass")  ,
cl::Hidden  ,
cl::init(true)   
)
static