Go to the documentation of this file.
14 #ifndef CPROVER_GOTO_INSTRUMENT_AGGRESSIVE_SLICER_H
15 #define CPROVER_GOTO_INSTRUMENT_AGGRESSIVE_SLICER_H
61 for(
const auto &f : function_list)
99 #define OPT_AGGRESSIVE_SLICER \
100 "(aggressive-slice)" \
101 "(aggressive-slice-call-depth):" \
102 "(aggressive-slice-preserve-function):" \
103 "(aggressive-slice-preserve-functions-containing):" \
104 "(aggressive-slice-preserve-all-direct-paths)"
108 #endif // CPROVER_GOTO_INSTRUMENT_AGGRESSIVE_SLICER_H
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
bool preserve_all_direct_paths
void note_functions_to_keep(const irep_idt &destination_function)
notes functions to keep in the slice based on the program start function and the given destination fu...
void find_functions_that_contain_name_snippet()
Finds all functions whose name contains a name snippet and adds them to the std::unordered_set of ire...
static call_grapht create_from_root_function(const goto_modelt &model, const irep_idt &root, bool collect_callsites)
void doit()
Removes the body of all functions except those on the shortest path or functions that are reachable f...
Directed graph representation of this call graph.
void get_all_functions_containing_properties()
Finds all functions that contain a property, and adds them to the list of functions to keep.
directed_grapht get_directed_graph() const
Returns a grapht representation of this call graph, suitable for use with generic grapht algorithms.
aggressive_slicert(goto_modelt &_goto_model, message_handlert &_msg)
std::list< std::string > user_specified_properties
A call graph (https://en.wikipedia.org/wiki/Call_graph) for a GOTO model or GOTO functions collection...
The aggressive slicer removes the body of all the functions except those on the shortest path,...
message_handlert & message_handler
const irep_idt start_function
std::list< std::string > name_snippets
void preserve_functions(const std::list< std::string > &function_list)
Adds a list of functions to the set of functions for the aggressive slicer to preserve.
call_grapht::directed_grapht call_graph
std::set< irep_idt > functions_to_keep