LLVM API Documentation

Defines | Functions | Variables
IVUsers.cpp File Reference
#include "llvm/Analysis/IVUsers.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Analysis/LoopPass.h"
#include "llvm/Analysis/ScalarEvolutionExpressions.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Dominators.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.

Defines

#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, SmallPtrSetImpl< Loop * > &SimpleLoopNests)
static const SCEVAddRecExprfindAddRecForLoop (const SCEV *S, const Loop *L)

Variables

iv users
iv Induction Variable Users
iv Induction Variable false

Define Documentation

#define DEBUG_TYPE   "iv-users"

Definition at line 31 of file IVUsers.cpp.


Function Documentation

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

Definition at line 324 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< BlockT, LoopT >::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,
SmallPtrSetImpl< Loop * > &  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