aboutsummaryrefslogtreecommitdiff
path: root/gcc/graph.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2013-10-30 14:22:01 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2013-10-30 14:22:01 +0000
commit1bef9b2340e56beffd12c4fe84761487ca5f0ce9 (patch)
tree457fdcb67b1c577c541ea2d0bca4de7a96d2ed55 /gcc/graph.c
parent193ea7bc8c99e217072a11c733bb5f0d47eb72a0 (diff)
downloadgcc-1bef9b2340e56beffd12c4fe84761487ca5f0ce9.zip
gcc-1bef9b2340e56beffd12c4fe84761487ca5f0ce9.tar.gz
gcc-1bef9b2340e56beffd12c4fe84761487ca5f0ce9.tar.bz2
re PR rtl-optimization/57100 (ICE: in pre_and_rev_post_order_compute, at cfganal.c:869 with -fdump-rtl-pro_and_epilogue-graph)
2013-10-30 Richard Biener <rguenther@suse.de> PR middle-end/57100 * basic-block.h (pre_and_rev_post_order_compute_fn): New function. * cfganal.c (pre_and_rev_post_order_compute_fn): New function as worker for ... (pre_and_rev_post_order_compute): ... which now wraps it. * graph.c (draw_cfg_nodes_no_loops): Use pre_and_rev_post_order_compute_fn to avoid ICEing and dependence on cfun. From-SVN: r204211
Diffstat (limited to 'gcc/graph.c')
-rw-r--r--gcc/graph.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/graph.c b/gcc/graph.c
index 0ec279d..5c890e5 100644
--- a/gcc/graph.c
+++ b/gcc/graph.c
@@ -160,9 +160,9 @@ draw_cfg_nodes_no_loops (pretty_printer *pp, struct function *fun)
visited = sbitmap_alloc (last_basic_block);
bitmap_clear (visited);
- /* FIXME: pre_and_rev_post_order_compute only works if fun == cfun. */
- n = pre_and_rev_post_order_compute (NULL, rpo, true);
- for (i = 0; i < n; i++)
+ n = pre_and_rev_post_order_compute_fn (fun, NULL, rpo, true);
+ for (i = n_basic_blocks_for_function (fun) - n;
+ i < n_basic_blocks_for_function (fun); i++)
{
basic_block bb = BASIC_BLOCK (rpo[i]);
draw_cfg_node (pp, fun->funcdef_no, bb);