Static Value-Flow Analysis
Loading...
Searching...
No Matches
SVF::MergeFunctionRets Class Reference

#include <BreakConstantExpr.h>

Inheritance diagram for SVF::MergeFunctionRets:

Public Member Functions

 MergeFunctionRets ()
llvm::StringRef getPassName () const
virtual bool runOnModule (Module &M)
void UnifyFunctionExit (Module &module)

Static Public Attributes

static char ID = 0

Detailed Description

Definition at line 55 of file BreakConstantExpr.h.

Constructor & Destructor Documentation

◆ MergeFunctionRets()

SVF::MergeFunctionRets::MergeFunctionRets ( )
inline

Definition at line 64 of file BreakConstantExpr.h.

64: ModulePass(ID) {}
llvm::ModulePass ModulePass
Definition BasicTypes.h:75

Member Function Documentation

◆ getPassName()

llvm::StringRef SVF::MergeFunctionRets::getPassName ( ) const
inline

Definition at line 65 of file BreakConstantExpr.h.

66 {
67 return "unify function exit into one dummy exit basic block";
68 }

◆ runOnModule()

virtual bool SVF::MergeFunctionRets::runOnModule ( Module & M)
inlinevirtual

Definition at line 69 of file BreakConstantExpr.h.

70 {
72 return true;
73 }
void UnifyFunctionExit(Module &module)

◆ UnifyFunctionExit()

void SVF::MergeFunctionRets::UnifyFunctionExit ( Module & module)
inline

Definition at line 74 of file BreakConstantExpr.h.

75 {
76 for (Module::const_iterator iter = module.begin(), eiter = module.end();
77 iter != eiter; ++iter)
78 {
79 const Function& fun = *iter;
80 if(fun.isDeclaration())
81 continue;
82 llvm::PassBuilder PB;
83 llvm::LoopAnalysisManager LAM;
84 llvm::FunctionAnalysisManager FAM;
85 llvm::CGSCCAnalysisManager CGAM;
86 llvm::ModuleAnalysisManager MAM;
87
88 PB.registerModuleAnalyses(MAM);
89 PB.registerCGSCCAnalyses(CGAM);
90 PB.registerFunctionAnalyses(FAM);
91 PB.registerLoopAnalyses(LAM);
92 PB.crossRegisterProxies(LAM, FAM, CGAM, MAM);
93
94 llvm::FunctionPassManager FPM;
95 FPM.addPass(llvm::UnifyFunctionExitNodesPass());
96 FPM.run(const_cast<llvm::Function&>(fun), FAM);
97 }
98 }
llvm::Function Function
Definition BasicTypes.h:83

Member Data Documentation

◆ ID

char MergeFunctionRets::ID = 0
static

Definition at line 63 of file BreakConstantExpr.h.


The documentation for this class was generated from the following files: