aboutsummaryrefslogtreecommitdiff
path: root/gcc/graph.cc
diff options
context:
space:
mode:
authorPhilip Herron <philip.herron@embecosm.com>2022-08-23 14:29:23 +0100
committerPhilip Herron <philip.herron@embecosm.com>2022-08-23 14:31:03 +0100
commit57f0c9d6464c95807e836844f3013ed67948a16e (patch)
tree2a6b2ddf4fb364ebbc3699bcede6f40466f80aaa /gcc/graph.cc
parent8d1a6deb4e69e7dc162e741377674cf03459bcd9 (diff)
parentbaa3ffb19c54fa334ac2884f6acb5d31aa79ac32 (diff)
downloadgcc-57f0c9d6464c95807e836844f3013ed67948a16e.zip
gcc-57f0c9d6464c95807e836844f3013ed67948a16e.tar.gz
gcc-57f0c9d6464c95807e836844f3013ed67948a16e.tar.bz2
Merge remote-tracking branch 'gcc/master' into phil/gcc-upstream-merge
This merges GCC as of baa3ffb19c54fa334ac2884f6acb5d31aa79ac32 into gccrs
Diffstat (limited to 'gcc/graph.cc')
-rw-r--r--gcc/graph.cc15
1 files changed, 8 insertions, 7 deletions
diff --git a/gcc/graph.cc b/gcc/graph.cc
index 9990c8e..bc29862 100644
--- a/gcc/graph.cc
+++ b/gcc/graph.cc
@@ -169,14 +169,14 @@ draw_cfg_nodes_no_loops (pretty_printer *pp, struct function *fun)
int *rpo = XNEWVEC (int, n_basic_blocks_for_fn (fun));
int i, n;
- auto_sbitmap visited (last_basic_block_for_fn (cfun));
+ auto_sbitmap visited (last_basic_block_for_fn (fun));
bitmap_clear (visited);
n = pre_and_rev_post_order_compute_fn (fun, NULL, rpo, true);
for (i = n_basic_blocks_for_fn (fun) - n;
i < n_basic_blocks_for_fn (fun); i++)
{
- basic_block bb = BASIC_BLOCK_FOR_FN (cfun, rpo[i]);
+ basic_block bb = BASIC_BLOCK_FOR_FN (fun, rpo[i]);
draw_cfg_node (pp, fun->funcdef_no, bb);
bitmap_set_bit (visited, bb->index);
}
@@ -248,7 +248,8 @@ draw_cfg_nodes_for_loop (pretty_printer *pp, int funcdef_no,
static void
draw_cfg_nodes (pretty_printer *pp, struct function *fun)
{
- if (loops_for_fn (fun))
+ /* ??? The loop and dominance APIs are dependent on fun == cfun. */
+ if (fun == cfun && loops_for_fn (fun))
draw_cfg_nodes_for_loop (pp, fun->funcdef_no, get_loop (fun, 0));
else
draw_cfg_nodes_no_loops (pp, fun);
@@ -267,7 +268,7 @@ draw_cfg_edges (pretty_printer *pp, struct function *fun)
edge e;
edge_iterator ei;
unsigned int idx = 0;
- FOR_EACH_BB_FN (bb, cfun)
+ FOR_EACH_BB_FN (bb, fun)
FOR_EACH_EDGE (e, ei, bb->succs)
{
if (e->flags & EDGE_DFS_BACK)
@@ -275,13 +276,13 @@ draw_cfg_edges (pretty_printer *pp, struct function *fun)
idx++;
}
- mark_dfs_back_edges ();
- FOR_ALL_BB_FN (bb, cfun)
+ mark_dfs_back_edges (fun);
+ FOR_ALL_BB_FN (bb, fun)
draw_cfg_node_succ_edges (pp, fun->funcdef_no, bb);
/* Restore EDGE_DFS_BACK flag from dfs_back. */
idx = 0;
- FOR_EACH_BB_FN (bb, cfun)
+ FOR_EACH_BB_FN (bb, fun)
FOR_EACH_EDGE (e, ei, bb->succs)
{
if (bitmap_bit_p (dfs_back, idx))