retdec
cfg_builder.h
Go to the documentation of this file.
1 
8 #ifndef RETDEC_LLVMIR2HLL_GRAPHS_CFG_CFG_BUILDER_H
9 #define RETDEC_LLVMIR2HLL_GRAPHS_CFG_CFG_BUILDER_H
10 
13 
14 namespace retdec {
15 namespace llvmir2hll {
16 
17 class CFG;
18 class Function;
19 
32 public:
34 
35 protected:
36  CFGBuilder() = default;
37 
38 protected:
41 
44 
45 private:
47 
54  virtual void buildCFG() = 0;
55 };
56 
57 } // namespace llvmir2hll
58 } // namespace retdec
59 
60 #endif
A base class for creators of control-flow graphs (CFGs) from functions.
Definition: cfg_builder.h:31
void initializeNewCFG(ShPtr< Function > func)
Creates a new CFG and initializes it.
Definition: cfg_builder.cpp:31
virtual void buildCFG()=0
Builds cfg.
ShPtr< CFG > cfg
A CFG that is currently being built.
Definition: cfg_builder.h:40
ShPtr< CFG > getCFG(ShPtr< Function > func)
Returns a CFG of the given function func.
Definition: cfg_builder.cpp:20
ShPtr< Function > func
A function from which the CFG is being built.
Definition: cfg_builder.h:43
A mixin to make classes non-copyable.
Definition: non_copyable.h:27
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.
Declarations, aliases, macros, etc. for the use of smart pointers.