cprover
goto_inline.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module: Function Inlining
4 
5 Author: Daniel Kroening, kroening@kroening.com
6 
7 \*******************************************************************/
8 
11 
12 #ifndef CPROVER_GOTO_PROGRAMS_GOTO_INLINE_H
13 #define CPROVER_GOTO_PROGRAMS_GOTO_INLINE_H
14 
15 #include <util/json.h>
16 
17 #include "goto_model.h"
18 
19 class message_handlert;
20 
21 // do a full inlining
22 
23 void goto_inline(
24  goto_modelt &goto_model,
25  message_handlert &message_handler,
26  bool adjust_function=false);
27 
28 void goto_inline(
29  goto_functionst &goto_functions,
30  const namespacet &ns,
31  message_handlert &message_handler,
32  bool adjust_function=false);
33 
34 // inline those functions marked as "inlined" and functions with less
35 // than _smallfunc_limit instructions
36 
38  goto_modelt &goto_model,
39  message_handlert &message_handler,
40  unsigned smallfunc_limit=0,
41  bool adjust_function=false);
42 
44  goto_functionst &goto_functions,
45  const namespacet &ns,
46  message_handlert &message_handler,
47  unsigned smallfunc_limit=0,
48  bool adjust_function=false);
49 
50 // transitively inline all calls the given function makes
51 
53  goto_modelt &goto_model,
54  const irep_idt function,
55  message_handlert &message_handler,
56  bool adjust_function=false,
57  bool caching=true);
58 
60  goto_functionst &goto_functions,
61  const irep_idt function,
62  const namespacet &ns,
63  message_handlert &message_handler,
64  bool adjust_function=false,
65  bool caching=true);
66 
68  goto_modelt &,
69  const irep_idt function,
70  message_handlert &message_handler,
71  bool adjust_function=false,
72  bool caching=true);
73 
74 #endif // CPROVER_GOTO_PROGRAMS_GOTO_INLINE_H
dstringt
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Definition: dstring.h:37
goto_partial_inline
void goto_partial_inline(goto_modelt &goto_model, message_handlert &message_handler, unsigned smallfunc_limit=0, bool adjust_function=false)
Inline all function calls to functions either marked as "inlined" or smaller than smallfunc_limit (by...
Definition: goto_inline.cpp:108
goto_model.h
Symbol Table + CFG.
goto_modelt
Definition: goto_model.h:26
goto_function_inline_and_log
jsont goto_function_inline_and_log(goto_modelt &, const irep_idt function, message_handlert &message_handler, bool adjust_function=false, bool caching=true)
Definition: goto_inline.cpp:284
jsont
Definition: json.h:27
namespacet
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition: namespace.h:92
message_handlert
Definition: message.h:28
goto_inline
void goto_inline(goto_modelt &goto_model, message_handlert &message_handler, bool adjust_function=false)
Definition: goto_inline.cpp:23
goto_functionst
A collection of goto functions.
Definition: goto_functions.h:23
json.h
goto_function_inline
void goto_function_inline(goto_modelt &goto_model, const irep_idt function, message_handlert &message_handler, bool adjust_function=false, bool caching=true)
Inline all function calls made from a particular function.
Definition: goto_inline.cpp:216