Iterate from tarj_begin -> tarj_end, not from tarj_begin -> NULL
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8260
91177308-0d34-0410-b5e6-
96231b3b80d8
#include "llvm/Analysis/DataStructure.h"
#include "llvm/Analysis/DSGraph.h"
#include "llvm/Module.h"
#include "llvm/Analysis/DataStructure.h"
#include "llvm/Analysis/DSGraph.h"
#include "llvm/Module.h"
-#include "llvm/Function.h"
#include "llvm/iMemory.h"
#include "llvm/iOther.h"
#include "llvm/Support/InstVisitor.h"
#include "llvm/iMemory.h"
#include "llvm/iOther.h"
#include "llvm/Support/InstVisitor.h"
#include "Support/STLExtras.h"
#include "Support/hash_map"
#include "Support/hash_set"
#include "Support/STLExtras.h"
#include "Support/hash_map"
#include "Support/hash_set"
///--------------------------------------------------------------------------
///--------------------------------------------------------------------------
void MemoryDepAnalysis::ProcessSCC(SCC<Function*>& S,
void MemoryDepAnalysis::ProcessSCC(SCC<Function*>& S,
- ModRefTable& ModRefAfter)
-{
+ ModRefTable& ModRefAfter) {
ModRefTable ModRefCurrent;
ModRefTable::ModRefMap& mapCurrent = ModRefCurrent.modRefMap;
ModRefTable::ModRefMap& mapAfter = ModRefAfter.modRefMap;
ModRefTable ModRefCurrent;
ModRefTable::ModRefMap& mapCurrent = ModRefCurrent.modRefMap;
ModRefTable::ModRefMap& mapAfter = ModRefAfter.modRefMap;
///
/// Run the pass on a function
///
///
/// Run the pass on a function
///
-bool MemoryDepAnalysis::runOnFunction(Function& func)
-{
- assert(! func.isExternal());
+bool MemoryDepAnalysis::runOnFunction(Function &F) {
+ assert(!F.isExternal());
// Get the FunctionModRefInfo holding IPModRef results for this function.
// Use the TD graph recorded within the FunctionModRefInfo object, which
// may not be the same as the original TD graph computed by DS analysis.
//
// Get the FunctionModRefInfo holding IPModRef results for this function.
// Use the TD graph recorded within the FunctionModRefInfo object, which
// may not be the same as the original TD graph computed by DS analysis.
//
- funcModRef = &getAnalysis<IPModRef>().getFunctionModRefInfo(func);
+ funcModRef = &getAnalysis<IPModRef>().getFunctionModRefInfo(F);
funcGraph = &funcModRef->getFuncGraph();
// TEMPORARY: ptr to depGraph (later just becomes "this").
funcGraph = &funcModRef->getFuncGraph();
// TEMPORARY: ptr to depGraph (later just becomes "this").
- assert(funcMap.find(&func) == funcMap.end() && "Analyzing function twice?");
- funcDepGraph = funcMap[&func] = new DependenceGraph();
+ assert(!funcMap.count(&F) && "Analyzing function twice?");
+ funcDepGraph = funcMap[&F] = new DependenceGraph();
ModRefTable ModRefAfter;
SCC<Function*>* nextSCC;
ModRefTable ModRefAfter;
SCC<Function*>* nextSCC;
- for (TarjanSCC_iterator<Function*> tarjSCCiter = tarj_begin(&func);
- (nextSCC = *tarjSCCiter) != NULL; ++tarjSCCiter)
- ProcessSCC(*nextSCC, ModRefAfter);
+ for (TarjanSCC_iterator<Function*> I = tarj_begin(&F), E = tarj_end(&F);
+ I != E; ++I)
+ ProcessSCC(**I, ModRefAfter);
#include "llvm/Analysis/DataStructure.h"
#include "llvm/Analysis/DSGraph.h"
#include "llvm/Module.h"
#include "llvm/Analysis/DataStructure.h"
#include "llvm/Analysis/DSGraph.h"
#include "llvm/Module.h"
-#include "llvm/Function.h"
#include "llvm/iMemory.h"
#include "llvm/iOther.h"
#include "llvm/Support/InstVisitor.h"
#include "llvm/iMemory.h"
#include "llvm/iOther.h"
#include "llvm/Support/InstVisitor.h"
#include "Support/STLExtras.h"
#include "Support/hash_map"
#include "Support/hash_set"
#include "Support/STLExtras.h"
#include "Support/hash_map"
#include "Support/hash_set"
///--------------------------------------------------------------------------
///--------------------------------------------------------------------------
void MemoryDepAnalysis::ProcessSCC(SCC<Function*>& S,
void MemoryDepAnalysis::ProcessSCC(SCC<Function*>& S,
- ModRefTable& ModRefAfter)
-{
+ ModRefTable& ModRefAfter) {
ModRefTable ModRefCurrent;
ModRefTable::ModRefMap& mapCurrent = ModRefCurrent.modRefMap;
ModRefTable::ModRefMap& mapAfter = ModRefAfter.modRefMap;
ModRefTable ModRefCurrent;
ModRefTable::ModRefMap& mapCurrent = ModRefCurrent.modRefMap;
ModRefTable::ModRefMap& mapAfter = ModRefAfter.modRefMap;
///
/// Run the pass on a function
///
///
/// Run the pass on a function
///
-bool MemoryDepAnalysis::runOnFunction(Function& func)
-{
- assert(! func.isExternal());
+bool MemoryDepAnalysis::runOnFunction(Function &F) {
+ assert(!F.isExternal());
// Get the FunctionModRefInfo holding IPModRef results for this function.
// Use the TD graph recorded within the FunctionModRefInfo object, which
// may not be the same as the original TD graph computed by DS analysis.
//
// Get the FunctionModRefInfo holding IPModRef results for this function.
// Use the TD graph recorded within the FunctionModRefInfo object, which
// may not be the same as the original TD graph computed by DS analysis.
//
- funcModRef = &getAnalysis<IPModRef>().getFunctionModRefInfo(func);
+ funcModRef = &getAnalysis<IPModRef>().getFunctionModRefInfo(F);
funcGraph = &funcModRef->getFuncGraph();
// TEMPORARY: ptr to depGraph (later just becomes "this").
funcGraph = &funcModRef->getFuncGraph();
// TEMPORARY: ptr to depGraph (later just becomes "this").
- assert(funcMap.find(&func) == funcMap.end() && "Analyzing function twice?");
- funcDepGraph = funcMap[&func] = new DependenceGraph();
+ assert(!funcMap.count(&F) && "Analyzing function twice?");
+ funcDepGraph = funcMap[&F] = new DependenceGraph();
ModRefTable ModRefAfter;
SCC<Function*>* nextSCC;
ModRefTable ModRefAfter;
SCC<Function*>* nextSCC;
- for (TarjanSCC_iterator<Function*> tarjSCCiter = tarj_begin(&func);
- (nextSCC = *tarjSCCiter) != NULL; ++tarjSCCiter)
- ProcessSCC(*nextSCC, ModRefAfter);
+ for (TarjanSCC_iterator<Function*> I = tarj_begin(&F), E = tarj_end(&F);
+ I != E; ++I)
+ ProcessSCC(**I, ModRefAfter);