CBMC
accelerator.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_ACCELERATOR_H
13
#define CPROVER_GOTO_INSTRUMENT_ACCELERATE_ACCELERATOR_H
14
15
#include "
path.h
"
16
17
#include <set>
18
19
#include <
util/std_expr.h
>
20
21
#include <
analyses/natural_loops.h
>
22
23
#include <
goto-programs/goto_program.h
>
24
#include <
goto-programs/goto_functions.h
>
25
26
class
path_acceleratort
27
{
28
public
:
29
path_acceleratort
(
patht
&_path,
30
goto_programt
&pure,
31
goto_programt
&overflow,
32
std::set<exprt> &changed,
33
std::set<exprt> &dirty) :
34
path
(_path),
35
changed_vars
(changed),
36
dirty_vars
(dirty)
37
{
38
pure_accelerator
.
copy_from
(pure);
39
overflow_path
.
copy_from
(overflow);
40
}
41
42
path_acceleratort
() { }
43
44
path_acceleratort
(
const
path_acceleratort
&that) :
45
path
(that.
path
),
46
changed_vars
(that.
changed_vars
),
47
dirty_vars
(that.
dirty_vars
)
48
{
49
pure_accelerator
.
copy_from
(that.
pure_accelerator
);
50
overflow_path
.
copy_from
(that.
overflow_path
);
51
}
52
53
void
clear
()
54
{
55
path
.clear();
56
pure_accelerator
.
clear
();
57
overflow_path
.
clear
();
58
changed_vars
.clear();
59
dirty_vars
.clear();
60
}
61
62
patht
path
;
63
goto_programt
pure_accelerator
;
64
goto_programt
overflow_path
;
65
std::set<exprt>
changed_vars
;
66
std::set<exprt>
dirty_vars
;
67
};
68
69
#endif // CPROVER_GOTO_INSTRUMENT_ACCELERATE_ACCELERATOR_H
path.h
path_acceleratort::changed_vars
std::set< exprt > changed_vars
Definition:
accelerator.h:65
path_acceleratort::path_acceleratort
path_acceleratort()
Definition:
accelerator.h:42
goto_programt::copy_from
void copy_from(const goto_programt &src)
Copy a full goto program, preserving targets.
Definition:
goto_program.cpp:699
path_acceleratort::path_acceleratort
path_acceleratort(const path_acceleratort &that)
Definition:
accelerator.h:44
path_acceleratort::dirty_vars
std::set< exprt > dirty_vars
Definition:
accelerator.h:66
path_acceleratort::clear
void clear()
Definition:
accelerator.h:53
path_acceleratort::path
patht path
Definition:
accelerator.h:62
path_acceleratort::overflow_path
goto_programt overflow_path
Definition:
accelerator.h:64
path_acceleratort
Definition:
accelerator.h:26
path_acceleratort::pure_accelerator
goto_programt pure_accelerator
Definition:
accelerator.h:63
path_acceleratort::path_acceleratort
path_acceleratort(patht &_path, goto_programt &pure, goto_programt &overflow, std::set< exprt > &changed, std::set< exprt > &dirty)
Definition:
accelerator.h:29
goto_programt::clear
void clear()
Clear the goto program.
Definition:
goto_program.h:811
goto_program.h
patht
std::list< path_nodet > patht
Definition:
path.h:44
natural_loops.h
goto_functions.h
goto_programt
A generic container class for the GOTO intermediate representation of one function.
Definition:
goto_program.h:72
std_expr.h
src
goto-instrument
accelerate
accelerator.h
Generated by
1.8.17