LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Macros | Functions | Variables
IVUsers.cpp File Reference
#include "llvm/Analysis/IVUsers.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Analysis/Dominators.h"
#include "llvm/Analysis/LoopPass.h"
#include "llvm/Analysis/ScalarEvolutionExpressions.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/Assembly/Writer.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Type.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
Include dependency graph for IVUsers.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "iv-users"
 

Functions

 INITIALIZE_PASS_BEGIN (IVUsers,"iv-users","Induction Variable Users", false, true) INITIALIZE_PASS_END(IVUsers
 
static bool isInteresting (const SCEV *S, const Instruction *I, const Loop *L, ScalarEvolution *SE, LoopInfo *LI)
 
static bool isSimplifiedLoopNest (BasicBlock *BB, const DominatorTree *DT, const LoopInfo *LI, SmallPtrSet< Loop *, 16 > &SimpleLoopNests)
 
static const SCEVAddRecExprfindAddRecForLoop (const SCEV *S, const Loop *L)
 

Variables

iv users
 
iv Induction Variable Users
 
iv Induction Variable false
 

Macro Definition Documentation

#define DEBUG_TYPE   "iv-users"

Definition at line 15 of file IVUsers.cpp.

Function Documentation

static const SCEVAddRecExpr* findAddRecForLoop ( const SCEV S,
const Loop L 
)
static

Definition at line 302 of file IVUsers.cpp.

References I.

Referenced by llvm::IVUsers::getStride().

INITIALIZE_PASS_BEGIN ( IVUsers  ,
"iv-users ,
"Induction Variable Users ,
false  ,
true   
)
static bool isInteresting ( const SCEV S,
const Instruction I,
const Loop L,
ScalarEvolution SE,
LoopInfo LI 
)
static

isInteresting - Test whether the given expression is "interesting" when used by the given expression, within the context of analyzing the given loop.

Definition at line 49 of file IVUsers.cpp.

References llvm::LoopBase< N, M >::contains(), llvm::LoopInfo::getLoopFor(), llvm::Instruction::getParent(), llvm::ScalarEvolution::getSCEVAtScope(), I, and LI.

Referenced by llvm::IVUsers::AddUsersImpl().

static bool isSimplifiedLoopNest ( BasicBlock BB,
const DominatorTree DT,
const LoopInfo LI,
SmallPtrSet< Loop *, 16 > &  SimpleLoopNests 
)
static

Variable Documentation

iv Induction Variable false

Definition at line 39 of file IVUsers.cpp.

iv users

Definition at line 39 of file IVUsers.cpp.

iv Induction Variable Users

Definition at line 39 of file IVUsers.cpp.

Referenced by llvm::InstCombiner::visitAllocSite().