diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2022-08-24 16:50:14 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-24 16:50:14 +0000 |
commit | d3cf195ab46d7effe806990aa6b7a409bf8e46df (patch) | |
tree | eb33d22a749417ad62a3fc87c2dc8cfb3452632a /gcc/graph.cc | |
parent | 825a44b40ce6cfa76470e53d0746b1e64b99ee5b (diff) | |
parent | 2e77960b14527ff216fa188479de9142fbb9d34c (diff) | |
download | gcc-d3cf195ab46d7effe806990aa6b7a409bf8e46df.zip gcc-d3cf195ab46d7effe806990aa6b7a409bf8e46df.tar.gz gcc-d3cf195ab46d7effe806990aa6b7a409bf8e46df.tar.bz2 |
Merge #1498
1498: Merge from GCC upstream r=philberty a=philberty
Lets see if it builds.
Co-authored-by: GCC Administrator <gccadmin@gcc.gnu.org>
Co-authored-by: Dimitrije Milošević <dimitrije.milosevic@syrmia.com>
Co-authored-by: Aldy Hernandez <aldyh@redhat.com>
Co-authored-by: Jakub Jelinek <jakub@redhat.com>
Co-authored-by: Martin Liska <mliska@suse.cz>
Co-authored-by: Roger Sayle <roger@nextmovesoftware.com>
Co-authored-by: Sam Feifer <sfeifer@redhat.com>
Co-authored-by: Andrew Stubbs <ams@codesourcery.com>
Co-authored-by: Jose E. Marchesi <jose.marchesi@oracle.com>
Co-authored-by: H.J. Lu <hjl.tools@gmail.com>
Co-authored-by: David Malcolm <dmalcolm@redhat.com>
Co-authored-by: Richard Biener <rguenther@suse.de>
Co-authored-by: Immad Mir <mirimmad@outlook.com>
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)) |