diff options
author | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-05-24 14:02:12 +0000 |
---|---|---|
committer | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-05-24 14:02:12 +0000 |
commit | 96c90e5e0abd447bdcf81f5bcfe76a2a59a9b4dd (patch) | |
tree | 9bb72d30323dfced6a574b1c6fc4064792090034 /gcc/tree-ssa-threadupdate.c | |
parent | 7ed90ee0f408293bdd383a39c89af3d26b1bc50c (diff) | |
download | gcc-96c90e5e0abd447bdcf81f5bcfe76a2a59a9b4dd.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125024 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-threadupdate.c')
-rw-r--r-- | gcc/tree-ssa-threadupdate.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/tree-ssa-threadupdate.c b/gcc/tree-ssa-threadupdate.c index 22266bd355c..6732f2e2899 100644 --- a/gcc/tree-ssa-threadupdate.c +++ b/gcc/tree-ssa-threadupdate.c @@ -918,10 +918,10 @@ thread_through_loop_header (struct loop *loop, bool may_peel_loop_headers) /* The duplicate of the header is the new preheader of the loop. Ensure that it is placed correctly in the loop hierarchy. */ - loop->copy = loop_outer (loop); + set_loop_copy (loop, loop_outer (loop)); thread_block (header, false); - loop->copy = NULL; + set_loop_copy (loop, NULL); new_preheader = e->dest; /* Create the new latch block. This is always necessary, as the latch @@ -1031,9 +1031,7 @@ thread_through_all_blocks (bool may_peel_loop_headers) mark_threaded_blocks (threaded_blocks); - if (current_loops) - FOR_EACH_LOOP (li, loop, LI_FROM_INNERMOST) - loop->copy = NULL; + initialize_original_copy_tables (); /* First perform the threading requests that do not affect loop structure. */ @@ -1067,6 +1065,8 @@ thread_through_all_blocks (bool may_peel_loop_headers) fprintf (dump_file, "\nJumps threaded: %lu\n", thread_stats.num_threaded_edges); + free_original_copy_tables (); + BITMAP_FREE (threaded_blocks); threaded_blocks = NULL; VEC_free (edge, heap, threaded_edges); |