cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
cone_of_influence.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module: Loop Acceleration
4
5
Author: Matt Lewis
6
7
\*******************************************************************/
8
11
12
#ifndef CPROVER_GOTO_INSTRUMENT_ACCELERATE_CONE_OF_INFLUENCE_H
13
#define CPROVER_GOTO_INSTRUMENT_ACCELERATE_CONE_OF_INFLUENCE_H
14
15
#include <
util/namespace.h
>
16
17
#include <
goto-programs/goto_program.h
>
18
19
#include <unordered_set>
20
21
typedef
std::unordered_set<exprt, irep_hash>
expr_sett
;
22
23
void
cone_of_influence
(
goto_programt
&program,
24
expr_sett
&targets,
25
expr_sett
&cone);
26
27
class
cone_of_influencet
28
{
29
public
:
30
cone_of_influencet
(
31
const
goto_programt
&_program,
32
const
symbol_table_baset
&symbol_table)
33
:
program
(_program),
ns
(symbol_table)
34
{
35
}
36
37
void
cone_of_influence
(
const
expr_sett
&targets,
expr_sett
&cone);
38
void
cone_of_influence
(
const
exprt
&target,
expr_sett
&cone);
39
40
protected
:
41
void
cone_of_influence
(
42
const
goto_programt::instructiont
&i,
43
const
expr_sett
&curr,
44
expr_sett
&next);
45
void
get_succs
(
46
goto_programt::instructionst::const_reverse_iterator rit,
47
expr_sett
&targets);
48
void
gather_rvalues
(
const
exprt
&expr,
expr_sett
&rvals);
49
50
typedef
std::unordered_map<unsigned int, expr_sett>
cone_mapt
;
51
cone_mapt
cone_map
;
52
53
const
goto_programt
&
program
;
54
const
namespacet
ns
;
55
};
56
57
#endif
// CPROVER_GOTO_INSTRUMENT_ACCELERATE_CONE_OF_INFLUENCE_H
cone_of_influencet::program
const goto_programt & program
Definition
cone_of_influence.h:53
cone_of_influencet::get_succs
void get_succs(goto_programt::instructionst::const_reverse_iterator rit, expr_sett &targets)
Definition
cone_of_influence.cpp:78
cone_of_influencet::cone_of_influencet
cone_of_influencet(const goto_programt &_program, const symbol_table_baset &symbol_table)
Definition
cone_of_influence.h:30
cone_of_influencet::ns
const namespacet ns
Definition
cone_of_influence.h:54
cone_of_influencet::cone_of_influence
void cone_of_influence(const expr_sett &targets, expr_sett &cone)
Definition
cone_of_influence.cpp:20
cone_of_influencet::cone_map
cone_mapt cone_map
Definition
cone_of_influence.h:51
cone_of_influencet::gather_rvalues
void gather_rvalues(const exprt &expr, expr_sett &rvals)
Definition
cone_of_influence.cpp:153
cone_of_influencet::cone_mapt
std::unordered_map< unsigned int, expr_sett > cone_mapt
Definition
cone_of_influence.h:50
exprt
Base class for all expressions.
Definition
expr.h:57
goto_programt::instructiont
This class represents an instruction in the GOTO intermediate representation.
Definition
goto_program.h:180
goto_programt
A generic container class for the GOTO intermediate representation of one function.
Definition
goto_program.h:72
namespacet
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition
namespace.h:91
symbol_table_baset
The symbol table base class interface.
Definition
symbol_table_base.h:23
cone_of_influence
void cone_of_influence(goto_programt &program, expr_sett &targets, expr_sett &cone)
expr_sett
std::unordered_set< exprt, irep_hash > expr_sett
Definition
cone_of_influence.h:21
goto_program.h
Concrete Goto Program.
namespace.h
goto-instrument
accelerate
cone_of_influence.h
Generated by
1.17.0