libjmmcg
release_579_6_g8cffd
A C++ library containing an eclectic mix of useful, advanced components.
|
A class to generate a Control Flow Graph (CFG), if the support has been coded into the joinable, nonjoinable, etc modifiers. More...
#include <thread_statistics.hpp>
Classes | |
class | add_cfg_details |
Public Types | |
typedef OST | os_traits |
typedef os_traits::lock_traits | lock_traits |
typedef lock_traits::recursive_critical_section_type | atomic_t |
typedef std::string | node_property_t |
typedef char | edge_annotation_t |
typedef boost::adjacency_list< boost::listS, boost::vecS, boost::bidirectionalS, boost::property< boost::vertex_name_t, node_property_t >, boost::property< boost::edge_name_t, node_property_t > > | container_type |
typedef boost::graph_traits< container_type >::vertex_descriptor | vertex_t |
typedef boost::graph_traits< container_type >::edge_descriptor | edge_t |
Public Member Functions | |
void | write_graphviz (std::ostream &os) const noexcept(false) FORCE_INLINE |
Output the graph in DOTTY format. More... | |
control_flow_graph () noexcept(false) FORCE_INLINE | |
control_flow_graph (control_flow_graph const &)=delete | |
Static Public Attributes | |
constexpr static edge_annotation_t | hrz_edge_annotation ='h' |
constexpr static edge_annotation_t | vertical_edge_annotation ='v' |
constexpr static edge_annotation_t | sequential_edge_annotation ='s' |
Friends | |
template<class Node > | |
class | add_cfg_details |
A class to generate a Control Flow Graph (CFG), if the support has been coded into the joinable, nonjoinable, etc modifiers.
Note that this class is coded for simplicity, not speed, so uses a "big lock" (the atomic_t type) to control multi-threaded access. This has at least these ramifications:
Definition at line 188 of file thread_statistics.hpp.
typedef lock_traits::recursive_critical_section_type jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::control_flow_graph< OST >::atomic_t |
Definition at line 192 of file thread_statistics.hpp.
typedef boost::adjacency_list< boost::listS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_name_t, node_property_t>, boost::property<boost::edge_name_t, node_property_t> > jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::control_flow_graph< OST >::container_type |
Definition at line 215 of file thread_statistics.hpp.
typedef char jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::control_flow_graph< OST >::edge_annotation_t |
Definition at line 208 of file thread_statistics.hpp.
typedef boost::graph_traits<container_type>::edge_descriptor jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::control_flow_graph< OST >::edge_t |
Definition at line 217 of file thread_statistics.hpp.
typedef os_traits::lock_traits jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::control_flow_graph< OST >::lock_traits |
Definition at line 191 of file thread_statistics.hpp.
typedef std::string jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::control_flow_graph< OST >::node_property_t |
Definition at line 207 of file thread_statistics.hpp.
typedef OST jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::control_flow_graph< OST >::os_traits |
Definition at line 190 of file thread_statistics.hpp.
typedef boost::graph_traits<container_type>::vertex_descriptor jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::control_flow_graph< OST >::vertex_t |
Definition at line 216 of file thread_statistics.hpp.
|
inlinenoexcept |
Definition at line 225 of file thread_statistics.hpp.
References jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::control_flow_graph< OST >::control_flow_graph().
Referenced by jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::control_flow_graph< OST >::control_flow_graph().
|
delete |
|
inlinenoexcept |
Output the graph in DOTTY format.
This may be converted to a pleasant PNG-format image using this command: "nice dot -Tpng test.dot >test.png" Assuming the os is created using an std::ofstream named "test.dot". Note that the PNG file can become large! thread_pool::merge() with 12 cores creates a file that is ~500kB in size and thread_pool::sort() is ~1Mb with 12 cores.
Definition at line 200 of file thread_statistics.hpp.
Definition at line 233 of file thread_statistics.hpp.
|
staticconstexpr |
Definition at line 221 of file thread_statistics.hpp.
|
staticconstexpr |
Definition at line 223 of file thread_statistics.hpp.
|
staticconstexpr |
Definition at line 222 of file thread_statistics.hpp.