CBMC
|
Function Call Graph Helpers. More...
#include "call_graph_helpers.h"
Go to the source code of this file.
Functions | |
static std::set< irep_idt > | get_neighbours (const call_grapht::directed_grapht &graph, const irep_idt &function, bool forwards) |
Get either callers or callees of a given function. More... | |
std::set< irep_idt > | get_callees (const call_grapht::directed_grapht &graph, const irep_idt &function) |
Get functions directly callable from a given function. More... | |
std::set< irep_idt > | get_callers (const call_grapht::directed_grapht &graph, const irep_idt &function) |
Get functions that call a given function. More... | |
static std::set< irep_idt > | get_connected_functions (const call_grapht::directed_grapht &graph, const irep_idt &function, bool forwards) |
Get either reachable functions or functions that can reach a given function. More... | |
std::set< irep_idt > | get_reachable_functions (const call_grapht::directed_grapht &graph, const irep_idt &function) |
Get functions reachable from a given function. More... | |
std::set< irep_idt > | get_reaching_functions (const call_grapht::directed_grapht &graph, const irep_idt &function) |
Get functions that can reach a given function. More... | |
std::set< irep_idt > | get_functions_reachable_within_n_steps (const call_grapht::directed_grapht &graph, const std::set< irep_idt > &start_functions, std::size_t n) |
Get either callers or callees reachable from a given list of functions within N steps. More... | |
std::set< irep_idt > | get_functions_reachable_within_n_steps (const call_grapht::directed_grapht &graph, const irep_idt &start_function, std::size_t n) |
Get either callers or callees reachable from a given list of functions within N steps. More... | |
void | disconnect_unreachable_functions (call_grapht::directed_grapht &graph, const irep_idt &function) |
Disconnects all functions in the call graph that are unreachable from a given start function. More... | |
std::list< irep_idt > | get_shortest_function_path (const call_grapht::directed_grapht &graph, const irep_idt &src, const irep_idt &dest) |
Get list of functions on the shortest path between two functions. More... | |
Function Call Graph Helpers.
Definition in file call_graph_helpers.cpp.
void disconnect_unreachable_functions | ( | call_grapht::directed_grapht & | graph, |
const irep_idt & | function | ||
) |
Disconnects all functions in the call graph that are unreachable from a given start function.
Removing nodes requires re-indexing, so instead we disconnect them, removing all in and out edges from those nodes. This speeds up backwards reachability.
graph | call graph |
function | start function |
Definition at line 100 of file call_graph_helpers.cpp.
std::set<irep_idt> get_callees | ( | const call_grapht::directed_grapht & | graph, |
const irep_idt & | function | ||
) |
Get functions directly callable from a given function.
graph | call graph |
function | function to query |
Definition at line 31 of file call_graph_helpers.cpp.
std::set<irep_idt> get_callers | ( | const call_grapht::directed_grapht & | graph, |
const irep_idt & | function | ||
) |
Get functions that call a given function.
graph | call graph |
function | function to query |
Definition at line 37 of file call_graph_helpers.cpp.
|
static |
Get either reachable functions or functions that can reach a given function.
In both cases the query function itself is included.
graph | call graph |
function | function to query |
forwards | if true, get reachable functions; otherwise get functions that can reach the given function. |
Definition at line 49 of file call_graph_helpers.cpp.
std::set<irep_idt> get_functions_reachable_within_n_steps | ( | const call_grapht::directed_grapht & | graph, |
const irep_idt & | start_function, | ||
std::size_t | n | ||
) |
Get either callers or callees reachable from a given list of functions within N steps.
graph | call graph |
start_function | single start function |
n | number of steps to consider |
Definition at line 91 of file call_graph_helpers.cpp.
std::set<irep_idt> get_functions_reachable_within_n_steps | ( | const call_grapht::directed_grapht & | graph, |
const std::set< irep_idt > & | start_functions, | ||
std::size_t | n | ||
) |
Get either callers or callees reachable from a given list of functions within N steps.
graph | call graph |
start_functions | set of start functions |
n | number of steps to consider |
Definition at line 74 of file call_graph_helpers.cpp.
|
static |
Get either callers or callees of a given function.
graph | call graph |
function | function to query |
forwards | if true, get callees; otherwise get callers. |
Definition at line 18 of file call_graph_helpers.cpp.
std::set<irep_idt> get_reachable_functions | ( | const call_grapht::directed_grapht & | graph, |
const irep_idt & | function | ||
) |
Get functions reachable from a given function.
graph | call graph |
function | function to query |
function
Definition at line 62 of file call_graph_helpers.cpp.
std::set<irep_idt> get_reaching_functions | ( | const call_grapht::directed_grapht & | graph, |
const irep_idt & | function | ||
) |
Get functions that can reach a given function.
graph | call graph |
function | function to query |
function
Definition at line 68 of file call_graph_helpers.cpp.
std::list<irep_idt> get_shortest_function_path | ( | const call_grapht::directed_grapht & | graph, |
const irep_idt & | src, | ||
const irep_idt & | dest | ||
) |
Get list of functions on the shortest path between two functions.
graph | call graph |
src | function to start from |
dest | function to reach |
Definition at line 107 of file call_graph_helpers.cpp.