LLVM API Documentation

Defines | 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.

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, SmallPtrSet< Loop *, 16 > &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 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< 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,
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().