CBMC
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 
16 
17 #include <analyses/natural_loops.h>
18 
19 #include "path.h"
20 #include "path_enumerator.h"
21 
23 {
24 public:
26  goto_programt &_goto_program,
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 
46 
48 };
49 
50 #endif // CPROVER_GOTO_INSTRUMENT_ACCELERATE_ALL_PATHS_ENUMERATOR_H
path.h
path_enumerator.h
all_paths_enumeratort
Definition: all_paths_enumerator.h:22
all_paths_enumeratort::extend_path
void extend_path(patht &path, goto_programt::targett t, int succ)
Definition: all_paths_enumerator.cpp:116
all_paths_enumeratort::loop
natural_loops_mutablet::natural_loopt & loop
Definition: all_paths_enumerator.h:44
all_paths_enumeratort::goto_program
goto_programt & goto_program
Definition: all_paths_enumerator.h:43
all_paths_enumeratort::loop_header
goto_programt::targett loop_header
Definition: all_paths_enumerator.h:45
all_paths_enumeratort::last_path
patht last_path
Definition: all_paths_enumerator.h:47
path_enumeratort
Definition: path_enumerator.h:21
all_paths_enumeratort::is_looping
bool is_looping(patht &path)
Definition: all_paths_enumerator.cpp:154
loop_templatet
A loop, specified as a set of instructions.
Definition: loop_analysis.h:23
all_paths_enumeratort::backtrack
int backtrack(patht &path)
Definition: all_paths_enumerator.cpp:59
goto_program.h
all_paths_enumeratort::complete_path
void complete_path(patht &path, int succ)
Definition: all_paths_enumerator.cpp:100
patht
std::list< path_nodet > patht
Definition: path.h:44
all_paths_enumeratort::next
virtual bool next(patht &path)
Definition: all_paths_enumerator.cpp:14
natural_loops.h
goto_programt
A generic container class for the GOTO intermediate representation of one function.
Definition: goto_program.h:72
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
goto_programt::targett
instructionst::iterator targett
Definition: goto_program.h:586