|
LLVM
3.7.0
|
#include "llvm/ADT/STLExtras.h"#include "llvm/Analysis/AssumptionCache.h"#include "llvm/Analysis/CodeMetrics.h"#include "llvm/Analysis/IVUsers.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/Module.h"#include "llvm/IR/Type.h"#include "llvm/Support/Debug.h"#include "llvm/Support/raw_ostream.h"#include <algorithm>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) |
| isInteresting - Test whether the given expression is "interesting" when used by the given expression, within the context of analyzing the given loop. More... | |
| static bool | isSimplifiedLoopNest (BasicBlock *BB, const DominatorTree *DT, const LoopInfo *LI, SmallPtrSetImpl< Loop * > &SimpleLoopNests) |
| Return true if all loop headers that dominate this block are in simplified form. More... | |
| static const SCEVAddRecExpr * | findAddRecForLoop (const SCEV *S, const Loop *L) |
Variables | |
| iv | users |
| iv Induction Variable | Users |
| iv Induction Variable | false |
| #define DEBUG_TYPE "iv-users" |
Definition at line 34 of file IVUsers.cpp.
|
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 53 of file IVUsers.cpp.
References llvm::LoopBase< N, M >::contains(), llvm::LoopInfoBase< N, M >::getLoopFor(), llvm::Instruction::getParent(), llvm::ScalarEvolution::getSCEVAtScope(), and I.
Referenced by llvm::IVUsers::AddUsersImpl().
|
static |
Return true if all loop headers that dominate this block are in simplified form.
Definition at line 89 of file IVUsers.cpp.
References llvm::SmallPtrSetImpl< PtrType >::count(), llvm::LoopBase< N, M >::getHeader(), llvm::DomTreeNodeBase< T >::getIDom(), llvm::LoopInfoBase< N, M >::getLoopFor(), llvm::DominatorTreeBase< N >::getNode(), llvm::SmallPtrSetImpl< PtrType >::insert(), and llvm::Loop::isLoopSimplifyForm().
Referenced by llvm::IVUsers::AddUsersImpl().
| iv Induction Variable false |
Definition at line 43 of file IVUsers.cpp.
| iv users |
Definition at line 43 of file IVUsers.cpp.
Referenced by llvm::StatepointBase< Function, Instruction, Value, CallSite >::getGCResult(), and llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallSiteTy >::getRelocates().
| iv Induction Variable Users |
Definition at line 43 of file IVUsers.cpp.
Referenced by computeOthers(), registerADRCandidate(), splitVectorValues(), and llvm::InstCombiner::visitAllocSite().
1.8.6