analyzer: show SCC ids in .dot dumps

gcc/analyzer/ChangeLog:
	* engine.cc (supernode_cluster::dump_dot): Show the SCC id
	in the per-supernode clusters in FILENAME.eg.dot output.
	(exploded_graph_annotator::add_node_annotations):
	Show the SCC of the supernode in FILENAME.supernode.eg.dot output.
	* exploded-graph.h (worklist::scc_id): New.
	(exploded_graph::get_scc_id): New.
This commit is contained in:
David Malcolm 2020-09-16 09:12:45 -04:00
parent b28491dc2d
commit d2c4d5199c
2 changed files with 13 additions and 2 deletions

View File

@ -3288,8 +3288,9 @@ public:
(const void *)this);
gv->indent ();
gv->println ("style=\"dashed\";");
gv->println ("label=\"SN: %i (bb: %i)\";",
m_supernode->m_index, m_supernode->m_bb->index);
gv->println ("label=\"SN: %i (bb: %i; scc: %i)\";",
m_supernode->m_index, m_supernode->m_bb->index,
args.m_eg.get_scc_id (*m_supernode));
int i;
exploded_node *enode;
@ -4040,6 +4041,7 @@ public:
gv->begin_td ();
pp_string (pp, "BEFORE");
pp_printf (pp, " (scc: %i)", m_eg.get_scc_id (n));
gv->end_td ();
unsigned i;

View File

@ -652,6 +652,10 @@ public:
exploded_node *take_next ();
exploded_node *peek_next ();
void add_node (exploded_node *enode);
int get_scc_id (const supernode &snode) const
{
return m_scc.get_scc_id (snode.m_index);
}
private:
class key_t
@ -783,6 +787,11 @@ public:
const call_string_data_map_t *get_per_call_string_data () const
{ return &m_per_call_string_data; }
int get_scc_id (const supernode &node) const
{
return m_worklist.get_scc_id (node);
}
private:
void print_bar_charts (pretty_printer *pp) const;