cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
all_paths_enumerator.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_ALL_PATHS_ENUMERATOR_H
13
#define CPROVER_GOTO_INSTRUMENT_ACCELERATE_ALL_PATHS_ENUMERATOR_H
14
15
#include <
goto-programs/goto_program.h
>
16
17
#include <
analyses/natural_loops.h
>
18
19
#include "
path.h
"
20
#include "
path_enumerator.h
"
21
22
class
all_paths_enumeratort
:
public
path_enumeratort
23
{
24
public
:
25
all_paths_enumeratort
(
26
goto_programt
&_goto_program,
27
natural_loops_mutablet::natural_loopt
&_loop,
28
goto_programt::targett
_loop_header):
29
goto_program
(_goto_program),
30
loop
(_loop),
31
loop_header
(_loop_header)
32
{
33
}
34
35
virtual
bool
next
(
patht
&path);
36
37
protected
:
38
int
backtrack
(
patht
&path);
39
void
complete_path
(
patht
&path,
int
succ);
40
void
extend_path
(
patht
&path,
goto_programt::targett
t,
int
succ);
41
bool
is_looping
(
patht
&path);
42
43
goto_programt
&
goto_program
;
44
natural_loops_mutablet::natural_loopt
&
loop
;
45
goto_programt::targett
loop_header
;
46
47
patht
last_path
;
48
};
49
50
#endif
// CPROVER_GOTO_INSTRUMENT_ACCELERATE_ALL_PATHS_ENUMERATOR_H
all_paths_enumeratort::all_paths_enumeratort
all_paths_enumeratort(goto_programt &_goto_program, natural_loops_mutablet::natural_loopt &_loop, goto_programt::targett _loop_header)
Definition
all_paths_enumerator.h:25
all_paths_enumeratort::last_path
patht last_path
Definition
all_paths_enumerator.h:47
all_paths_enumeratort::loop
natural_loops_mutablet::natural_loopt & loop
Definition
all_paths_enumerator.h:44
all_paths_enumeratort::backtrack
int backtrack(patht &path)
Definition
all_paths_enumerator.cpp:59
all_paths_enumeratort::next
virtual bool next(patht &path)
Definition
all_paths_enumerator.cpp:14
all_paths_enumeratort::complete_path
void complete_path(patht &path, int succ)
Definition
all_paths_enumerator.cpp:100
all_paths_enumeratort::loop_header
goto_programt::targett loop_header
Definition
all_paths_enumerator.h:45
all_paths_enumeratort::goto_program
goto_programt & goto_program
Definition
all_paths_enumerator.h:43
all_paths_enumeratort::is_looping
bool is_looping(patht &path)
Definition
all_paths_enumerator.cpp:154
all_paths_enumeratort::extend_path
void extend_path(patht &path, goto_programt::targett t, int succ)
Definition
all_paths_enumerator.cpp:116
goto_programt
A generic container class for the GOTO intermediate representation of one function.
Definition
goto_program.h:72
goto_programt::targett
instructionst::iterator targett
Definition
goto_program.h:613
natural_loops_templatet< goto_programt, goto_programt::targett, goto_programt::target_less_than >::natural_loopt
parentt::loopt natural_loopt
Definition
natural_loops.h:53
path_enumeratort
Definition
path_enumerator.h:22
goto_program.h
Concrete Goto Program.
natural_loops.h
Compute natural loops in a goto_function.
path.h
Loop Acceleration.
patht
std::list< path_nodet > patht
Definition
path.h:44
path_enumerator.h
Loop Acceleration.
goto-instrument
accelerate
all_paths_enumerator.h
Generated by
1.17.0