From 561e8a90fdfe45ef935dbb16c6cf0389f2e7fef1 Mon Sep 17 00:00:00 2001 From: Zdenek Dvorak Date: Thu, 24 May 2007 16:02:12 +0200 Subject: re PR middle-end/32018 (ICE on optimization) PR middle-end/32018 * tree-ssa-threadupdate.c (thread_through_loop_header): Use set_loop_copy. (thread_through_all_blocks): Call initialize_original_copy_tables and free_original_copy_tables. * cfgloopmanip.c (duplicate_loop, duplicate_loop_to_header_edge): Use set_loop_copy. * tree-cfg.c (tree_duplicate_sese_region): Ditto. * cfghooks.c (duplicate_block): Use get_loop_copy. * cfg.c: Include cfgloop.h. (loop_copy): New hash table. (initialize_original_copy_tables): Initialize loop_copy table. (free_original_copy_tables): Free loop_copy table. (copy_original_table_clear, copy_original_table_set, set_loop_copy, get_loop_copy): New functions. (set_bb_original, set_bb_copy): Use copy_original_table_set. * cfgloop.h (struct loop): Remove copy field. * Makefile.in (cfg.o): Add CFGLOOP_H dependency. * basic-block.h (set_loop_copy, get_loop_copy): Declare. From-SVN: r125024 --- gcc/cfgloopmanip.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gcc/cfgloopmanip.c') diff --git a/gcc/cfgloopmanip.c b/gcc/cfgloopmanip.c index 1fadbb4..99b41d7 100644 --- a/gcc/cfgloopmanip.c +++ b/gcc/cfgloopmanip.c @@ -653,7 +653,7 @@ duplicate_loop (struct loop *loop, struct loop *target) place_new_loop (cloop); /* Mark the new loop as copy of LOOP. */ - loop->copy = cloop; + set_loop_copy (loop, cloop); /* Add it to target. */ flow_loop_tree_node_add (target, cloop); @@ -917,7 +917,7 @@ duplicate_loop_to_header_edge (struct loop *loop, edge e, for (aloop = loop->inner, i = 0; aloop; aloop = aloop->next, i++) orig_loops[i] = aloop; - loop->copy = target; + set_loop_copy (loop, target); first_active = XNEWVEC (basic_block, n); if (is_latch) -- cgit v1.1