Deleted Added
full compact
CallGraphSCCPass.cpp (206083) CallGraphSCCPass.cpp (206124)
1//===- CallGraphSCCPass.cpp - Pass that operates BU on call graph ---------===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//

--- 73 unchanged lines hidden (view full) ---

82
83private:
84 bool RunPassOnSCC(Pass *P, std::vector<CallGraphNode*> &CurSCC,
85 CallGraph &CG, bool &CallGraphUpToDate);
86 void RefreshCallGraph(std::vector<CallGraphNode*> &CurSCC, CallGraph &CG,
87 bool IsCheckingMode);
88};
89
1//===- CallGraphSCCPass.cpp - Pass that operates BU on call graph ---------===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//

--- 73 unchanged lines hidden (view full) ---

82
83private:
84 bool RunPassOnSCC(Pass *P, std::vector<CallGraphNode*> &CurSCC,
85 CallGraph &CG, bool &CallGraphUpToDate);
86 void RefreshCallGraph(std::vector<CallGraphNode*> &CurSCC, CallGraph &CG,
87 bool IsCheckingMode);
88};
89
90/// PrintCallGraphPass - Print a Module corresponding to a call graph.
91///
92class PrintCallGraphPass : public CallGraphSCCPass {
93private:
94 std::string Banner;
95 raw_ostream &Out; // raw_ostream to print on.
96
97public:
98 static char ID;
99 PrintCallGraphPass() : CallGraphSCCPass(&ID), Out(dbgs()) {}
100 PrintCallGraphPass(const std::string &B, raw_ostream &o)
101 : CallGraphSCCPass(&ID), Banner(B), Out(o) {}
102
103 virtual void getAnalysisUsage(AnalysisUsage &AU) const {
104 AU.setPreservesAll();
105 }
106
107 bool runOnSCC(std::vector<CallGraphNode *> &SCC) {
108 Out << Banner;
109 for (std::vector<CallGraphNode *>::iterator n = SCC.begin(), ne = SCC.end();
110 n != ne;
111 ++n) {
112 (*n)->getFunction()->print(Out);
113 }
114 return false;
115 }
116};
117
90} // end anonymous namespace.
91
92char CGPassManager::ID = 0;
93
118} // end anonymous namespace.
119
120char CGPassManager::ID = 0;
121
122char PrintCallGraphPass::ID = 0;
123
94bool CGPassManager::RunPassOnSCC(Pass *P, std::vector<CallGraphNode*> &CurSCC,
95 CallGraph &CG, bool &CallGraphUpToDate) {
96 bool Changed = false;
97 PMDataManager *PM = P->getAsPMDataManager();
98
99 if (PM == 0) {
100 CallGraphSCCPass *CGSP = (CallGraphSCCPass*)P;
101 if (!CallGraphUpToDate) {

--- 289 unchanged lines hidden (view full) ---

391 Changed |= ((FPPassManager*)PM)->doFinalization(CG.getModule());
392 } else {
393 Changed |= ((CallGraphSCCPass*)getContainedPass(i))->doFinalization(CG);
394 }
395 }
396 return Changed;
397}
398
124bool CGPassManager::RunPassOnSCC(Pass *P, std::vector<CallGraphNode*> &CurSCC,
125 CallGraph &CG, bool &CallGraphUpToDate) {
126 bool Changed = false;
127 PMDataManager *PM = P->getAsPMDataManager();
128
129 if (PM == 0) {
130 CallGraphSCCPass *CGSP = (CallGraphSCCPass*)P;
131 if (!CallGraphUpToDate) {

--- 289 unchanged lines hidden (view full) ---

421 Changed |= ((FPPassManager*)PM)->doFinalization(CG.getModule());
422 } else {
423 Changed |= ((CallGraphSCCPass*)getContainedPass(i))->doFinalization(CG);
424 }
425 }
426 return Changed;
427}
428
429Pass *CallGraphSCCPass::createPrinterPass(raw_ostream &O,
430 const std::string &Banner) const {
431 return new PrintCallGraphPass(Banner, O);
432}
433
399/// Assign pass manager to manage this pass.
400void CallGraphSCCPass::assignPassManager(PMStack &PMS,
401 PassManagerType PreferredType) {
402 // Find CGPassManager
403 while (!PMS.empty() &&
404 PMS.top()->getPassManagerType() > PMT_CallGraphPassManager)
405 PMS.pop();
406

--- 36 unchanged lines hidden ---
434/// Assign pass manager to manage this pass.
435void CallGraphSCCPass::assignPassManager(PMStack &PMS,
436 PassManagerType PreferredType) {
437 // Find CGPassManager
438 while (!PMS.empty() &&
439 PMS.top()->getPassManagerType() > PMT_CallGraphPassManager)
440 PMS.pop();
441

--- 36 unchanged lines hidden ---