CBMC
Loading...
Searching...
No Matches
Functions
call_graph_helpers.cpp File Reference

Function Call Graph Helpers. More...

#include "call_graph_helpers.h"
+ Include dependency graph for call_graph_helpers.cpp:

Go to the source code of this file.

Functions

  Get either callers or callees of a given function.
 
  Get functions directly callable from a given function.
 
  Get functions that call a given function.
 
  Get either reachable functions or functions that can reach a given function.
 
  Get functions reachable from a given function.
 
  Get functions that can reach a given function.
 
  Get either callers or callees reachable from a given list of functions within N steps.
 
  Get either callers or callees reachable from a given list of functions within N steps.
 
  Disconnects all functions in the call graph that are unreachable from a given start function.
 
  Get list of functions on the shortest path between two functions.
 

Detailed Description

Function Call Graph Helpers.

Definition in file call_graph_helpers.cpp.

Function Documentation

◆  disconnect_unreachable_functions()

void disconnect_unreachable_functions ( call_grapht::directed_graphtgraph,
const irep_idtfunction 
)

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.

Parameters
graph call graph
function start function

Definition at line 100 of file call_graph_helpers.cpp.

◆  get_callees()

std::set< irep_idt > get_callees ( const call_grapht::directed_graphtgraph,
const irep_idtfunction 
)

Get functions directly callable from a given function.

Parameters
graph call graph
function function to query
Returns
set of called functions

Definition at line 31 of file call_graph_helpers.cpp.

◆  get_callers()

std::set< irep_idt > get_callers ( const call_grapht::directed_graphtgraph,
const irep_idtfunction 
)

Get functions that call a given function.

Parameters
graph call graph
function function to query
Returns
set of caller functions

Definition at line 37 of file call_graph_helpers.cpp.

◆  get_connected_functions()

static std::set< irep_idt > get_connected_functions ( const call_grapht::directed_graphtgraph,
const irep_idtfunction,
bool  forwards 
)
static

Get either reachable functions or functions that can reach a given function.

In both cases the query function itself is included.

Parameters
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.

◆  get_functions_reachable_within_n_steps() [1/2]

std::set< irep_idt > get_functions_reachable_within_n_steps ( const call_grapht::directed_graphtgraph,
const irep_idtstart_function,
std::size_t  n 
)

Get either callers or callees reachable from a given list of functions within N steps.

Parameters
graph call graph
start_function single start function
n number of steps to consider
Returns
set of functions that can be reached from the start function including the start function

Definition at line 91 of file call_graph_helpers.cpp.

◆  get_functions_reachable_within_n_steps() [2/2]

std::set< irep_idt > get_functions_reachable_within_n_steps ( const call_grapht::directed_graphtgraph,
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.

Parameters
graph call graph
start_functions set of start functions
n number of steps to consider
Returns
set of functions that can be reached from the start function including the start function

Definition at line 74 of file call_graph_helpers.cpp.

◆  get_neighbours()

static std::set< irep_idt > get_neighbours ( const call_grapht::directed_graphtgraph,
const irep_idtfunction,
bool  forwards 
)
static

Get either callers or callees of a given function.

Parameters
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.

◆  get_reachable_functions()

std::set< irep_idt > get_reachable_functions ( const call_grapht::directed_graphtgraph,
const irep_idtfunction 
)

Get functions reachable from a given function.

Parameters
graph call graph
function function to query
Returns
set of reachable functions, including function

Definition at line 62 of file call_graph_helpers.cpp.

◆  get_reaching_functions()

std::set< irep_idt > get_reaching_functions ( const call_grapht::directed_graphtgraph,
const irep_idtfunction 
)

Get functions that can reach a given function.

Parameters
graph call graph
function function to query
Returns
set of functions that can reach the target, including function

Definition at line 68 of file call_graph_helpers.cpp.

◆  get_shortest_function_path()

std::list< irep_idt > get_shortest_function_path ( const call_grapht::directed_graphtgraph,
const irep_idtsrc,
const irep_idtdest 
)

Get list of functions on the shortest path between two functions.

Parameters
graph call graph
src function to start from
dest function to reach
Returns
list of functions on shortest path

Definition at line 107 of file call_graph_helpers.cpp.

AltStyle によって変換されたページ (->オリジナル) /