aboutsummaryrefslogtreecommitdiff
path: root/gcc/graph.cc
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2022-08-24 16:50:14 +0000
committerGitHub <noreply@github.com>2022-08-24 16:50:14 +0000
commitd3cf195ab46d7effe806990aa6b7a409bf8e46df (patch)
treeeb33d22a749417ad62a3fc87c2dc8cfb3452632a /gcc/graph.cc
parent825a44b40ce6cfa76470e53d0746b1e64b99ee5b (diff)
parent2e77960b14527ff216fa188479de9142fbb9d34c (diff)
downloadgcc-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.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))