diff options
author | Zdenek Dvorak <dvorakz@suse.cz> | 2007-05-24 16:02:12 +0200 |
---|---|---|
committer | Zdenek Dvorak <rakdver@gcc.gnu.org> | 2007-05-24 14:02:12 +0000 |
commit | 561e8a90fdfe45ef935dbb16c6cf0389f2e7fef1 (patch) | |
tree | 9bb72d30323dfced6a574b1c6fc4064792090034 /gcc/tree-cfg.c | |
parent | 66da42bc85b1004d6ad17b514673a9eea6fa0eb2 (diff) | |
download | gcc-561e8a90fdfe45ef935dbb16c6cf0389f2e7fef1.zip gcc-561e8a90fdfe45ef935dbb16c6cf0389f2e7fef1.tar.gz gcc-561e8a90fdfe45ef935dbb16c6cf0389f2e7fef1.tar.bz2 |
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
Diffstat (limited to 'gcc/tree-cfg.c')
-rw-r--r-- | gcc/tree-cfg.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index 15beeab..83ab930 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -4360,14 +4360,14 @@ tree_duplicate_sese_region (edge entry, edge exit, return false; } - loop->copy = loop; + set_loop_copy (loop, loop); /* In case the function is used for loop header copying (which is the primary use), ensure that EXIT and its copy will be new latch and entry edges. */ if (loop->header == entry->dest) { copying_header = true; - loop->copy = loop_outer (loop); + set_loop_copy (loop, loop_outer (loop)); if (!dominated_by_p (CDI_DOMINATORS, loop->latch, exit->src)) return false; |