retdec
cg_builder.h
Go to the documentation of this file.
1 
7 #ifndef RETDEC_LLVMIR2HLL_GRAPHS_CG_CG_BUILDER_H
8 #define RETDEC_LLVMIR2HLL_GRAPHS_CG_CG_BUILDER_H
9 
14 
15 namespace retdec {
16 namespace llvmir2hll {
17 
18 class Module;
19 
27 public:
29 
30 private:
31  explicit CGBuilder(ShPtr<Module> module);
32 
33  void computeCG();
35 
39  virtual void visit(ShPtr<CallExpr> expr) override;
41 
42 private:
45 
48 };
49 
50 } // namespace llvmir2hll
51 } // namespace retdec
52 
53 #endif
A representation of a call graph (CG).
A creator of call graphs (CGs) from modules.
Definition: cg_builder.h:26
ShPtr< CG::CalledFuncs > computeCGPartForFunction(ShPtr< Function > func)
Computes a part of the call graph from the given function and returns it.
Definition: cg_builder.cpp:57
ShPtr< CG::CalledFuncs > calledFuncs
CalledFuncs that is currently being built.
Definition: cg_builder.h:47
virtual void visit(ShPtr< GlobalVarDef > varDef) override
Definition: ordered_all_visitor.cpp:95
static ShPtr< CG > getCG(ShPtr< Module > module)
Returns a CG of the given module.
Definition: cg_builder.cpp:31
void computeCG()
Computes the CG.
Definition: cg_builder.cpp:43
CGBuilder(ShPtr< Module > module)
Constructs a new builder.
Definition: cg_builder.cpp:22
ShPtr< CG > cg
CG that is currently being built.
Definition: cg_builder.h:44
A visitor that visits everything in an ordered way.
Definition: ordered_all_visitor.h:44
virtual void visit(ShPtr< GlobalVarDef > varDef) override
Definition: ordered_all_visitor.cpp:95
A mixin to make classes non-copyable.
Definition: non_copyable.h:27
ShPtr< Module > module
The current module.
Definition: hll_writer.cpp:100
A library providing API for working with back-end IR.
std::shared_ptr< T > ShPtr
An alias for a shared pointer.
Definition: smart_ptr.h:18
Definition: archive_wrapper.h:19
A mixin to make classes non-copyable.
A visitor that visits everything in an ordered way.
Declarations, aliases, macros, etc. for the use of smart pointers.