CBMC
dfcc_loop_nesting_graph.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module: Dynamic frame condition checking
4 
5 Author: Qinheping Hu, qinhh@amazon.com
6 
7 Author: Remi Delmas, delmasrd@amazon.com
8 
9 Date: March 2023
10 
11 \*******************************************************************/
12 
15 
16 #ifndef CPROVER_GOTO_INSTRUMENT_CONTRACTS_DYNAMIC_FRAMES_DFCC_LOOP_NESTING_GRAPH_H
17 #define CPROVER_GOTO_INSTRUMENT_CONTRACTS_DYNAMIC_FRAMES_DFCC_LOOP_NESTING_GRAPH_H
18 
19 #include <util/graph.h>
20 
21 #include <analyses/loop_analysis.h>
22 
23 class messaget;
24 
26 struct dfcc_loop_nesting_graph_nodet : public graph_nodet<empty_edget>
27 {
28 public:
32  const loop_templatet<
35 
38 
41 
45 };
46 
48 
54 
55 #endif
A generic container class for the GOTO intermediate representation of one function.
Definition: goto_program.h:73
instructionst::iterator targett
Definition: goto_program.h:614
This class represents a node in a directed graph.
Definition: graph.h:35
A generic directed graph with a parametric node type.
Definition: graph.h:167
A loop, specified as a set of instructions.
Definition: loop_analysis.h:24
Class that provides messages with a built-in verbosity 'level'.
Definition: message.h:155
dfcc_loop_nesting_grapht build_loop_nesting_graph(goto_programt &goto_program)
Builds a graph instance describing the nesting structure of natural loops in the given goto_program.
grapht< dfcc_loop_nesting_graph_nodet > dfcc_loop_nesting_grapht
A Template Class for Graphs.
Data structure representing a loop in a GOTO program and an interface shared by all analyses that fin...
A graph node that stores information about a natural loop.
loop_templatet< goto_programt::targett, goto_programt::target_less_than > instructions
Set of loop instructions.
dfcc_loop_nesting_graph_nodet(const goto_programt::targett &head, const goto_programt::targett &latch, const loop_templatet< goto_programt::targett, goto_programt::target_less_than > &instructions)
goto_programt::targett head
Loop head instruction.
goto_programt::targett latch
Loop latch instruction.
A total order over targett and const_targett.
Definition: goto_program.h:392