diff options
author | Philip Herron <philip.herron@embecosm.com> | 2022-08-23 14:29:23 +0100 |
---|---|---|
committer | Philip Herron <philip.herron@embecosm.com> | 2022-08-23 14:31:03 +0100 |
commit | 57f0c9d6464c95807e836844f3013ed67948a16e (patch) | |
tree | 2a6b2ddf4fb364ebbc3699bcede6f40466f80aaa /gcc/graph.cc | |
parent | 8d1a6deb4e69e7dc162e741377674cf03459bcd9 (diff) | |
parent | baa3ffb19c54fa334ac2884f6acb5d31aa79ac32 (diff) | |
download | gcc-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.cc | 15 |
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)) |