// Pass class.
virtual bool runOnSCC(CallGraphSCC &SCC);
+ using llvm::Pass::doFinalization;
// doFinalization - Remove now-dead linkonce functions at the end of
// processing to avoid breaking the SCC traversal.
virtual bool doFinalization(CallGraph &CG);
}
static char ID; // Pass identification, replacement for typeid
virtual InlineCost getInlineCost(CallSite CS);
+
+ using llvm::Pass::doInitialization;
+ using llvm::Pass::doFinalization;
+
virtual bool doFinalization(CallGraph &CG) {
return removeDeadFunctions(CG, /*AlwaysInlineOnly=*/true);
}
InlineCost getInlineCost(CallSite CS) {
return CA.getInlineCost(CS, getInlineThreshold(CS));
}
+ using llvm::Pass::doInitialization;
virtual bool doInitialization(CallGraph &CG);
};
}
AU.addRequired<TargetLibraryInfo>();
}
+ using llvm::Pass::doFinalization;
+
bool doFinalization() {
assert(LoopToAliasSetMap.empty() && "Didn't free loop alias sets");
return false;
template<typename T, typename P>
struct PassTest : public PassTestBase<P> {
public:
+ using llvm::Pass::doInitialization;
+ using llvm::Pass::doFinalization;
virtual bool doInitialization(T &t) {
EXPECT_FALSE(PassTestBase<P>::initialized);
PassTestBase<P>::initialized = true;
EXPECT_EQ(run, initcount);
EXPECT_EQ(finalized, fincount);
}
+ using llvm::Pass::doInitialization;
+ using llvm::Pass::doFinalization;
virtual bool doInitialization(Loop* L, LPPassManager &LPM) {
initialized = true;
initcount++;