diff options
author | Richard Biener <rguenther@suse.de> | 2013-10-30 14:22:01 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2013-10-30 14:22:01 +0000 |
commit | 1bef9b2340e56beffd12c4fe84761487ca5f0ce9 (patch) | |
tree | 457fdcb67b1c577c541ea2d0bca4de7a96d2ed55 /gcc/graph.c | |
parent | 193ea7bc8c99e217072a11c733bb5f0d47eb72a0 (diff) | |
download | gcc-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.c | 6 |
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); |