30 #ifndef DATAFLOWUTIL_H_ 31 #define DATAFLOWUTIL_H_ 34 #include "llvm/IR/LegacyPassManager.h" 35 #include "llvm/Transforms/IPO/PassManagerBuilder.h" 52 if(
const SCEVAddRecExpr* ar = SVFUtil::dyn_cast<SCEVAddRecExpr>(s))
54 if (
const SCEVConstant *startExpr = SVFUtil::dyn_cast<SCEVConstant>(ar->getStart()))
55 start = startExpr->getValue();
56 if (
const SCEVConstant *stepExpr = SVFUtil::dyn_cast<SCEVConstant>(ar->getStepRecurrence(*SE)))
57 step = stepExpr->getValue();
58 tripcount = SE->getSmallConstantTripCount(const_cast<Loop*>(ar->getLoop()));
85 return start < rhs.
start;
86 else if(step!=rhs.
step)
87 return step < rhs.
step;
93 return inloop < rhs.
inloop;
116 return !(*
this==rhs);
173 AU.setPreservesAll();
185 if (Frontiers.find(B) == Frontiers.end())
187 return Frontiers.find(B);
IteratedDominanceFrontier()
FunToPostDTMap funToPDTMap
map a function to its post dominator tree
Map< const Function *, LoopInfo * > FunToLoopInfoMap
map a function to its loop info
llvm::ScalarEvolution ScalarEvolution
llvm::AnalysisUsage AnalysisUsage
llvm::BasicBlock BasicBlock
virtual ~PTASCEV()
Destructor.
llvm::SCEVAddRecExpr SCEVAddRecExpr
FunToLoopInfoMap funToLoopInfoMap
map a function to its loop info
PTASCEV(const PTASCEV &ptase)
Copy Constructor.
std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > Map
llvm::DominanceFrontier DominanceFrontier
LLVM Dominators.
PTASCEV & operator=(const PTASCEV &rhs)
Overloading operator=.
llvm::PostDominatorTree PostDominatorTree
virtual ~IteratedDominanceFrontier()
llvm::DominanceFrontierBase< BasicBlock, false > DominanceFrontierBase
Map< const Function *, DominatorTree * > FunToDTMap
map a function to its dominator tree
llvm::DominatorTree DominatorTree
const DominanceFrontier * DF
PTASCEV(const Value *p, const SCEV *s, ScalarEvolution *SE)
Constructor.
bool operator<(const PTASCEV &rhs) const
llvm::SCEVConstant SCEVConstant
bool operator!=(const PTASCEV &rhs) const
Overloading operator==.
FunToDTMap funToDTMap
map a function to its dominator tree
bool operator==(const PTASCEV &rhs) const
Overloading operator==.
Map< const Function *, PostDominatorTree * > FunToPostDTMap
map a function to its post dominator tree
iterator getIDFSet(BasicBlock *B)
virtual void getAnalysisUsage(AnalysisUsage &AU) const