diff options
author | Michael Matz <matz@suse.de> | 2010-11-26 16:51:39 +0000 |
---|---|---|
committer | Michael Matz <matz@gcc.gnu.org> | 2010-11-26 16:51:39 +0000 |
commit | f7882debb8223bd221deed9693c4ea07b7a36808 (patch) | |
tree | 4d51b8434dfcafe81793e2040b84ada057bdbbc5 /gcc | |
parent | 67701d1ddcc49905765c0a7b6610e9c284f467cd (diff) | |
download | gcc-f7882debb8223bd221deed9693c4ea07b7a36808.zip gcc-f7882debb8223bd221deed9693c4ea07b7a36808.tar.gz gcc-f7882debb8223bd221deed9693c4ea07b7a36808.tar.bz2 |
tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
* tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
* passes.c (init_optimization_passes): Remove superfluous
copy-prop pass.
From-SVN: r167184
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/passes.c | 1 | ||||
-rw-r--r-- | gcc/tree-ssa-copy.c | 4 |
3 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 810590c..7e996ca 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2010-11-26 Michael Matz <matz@suse.de> + + * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops. + + * passes.c (init_optimization_passes): Remove superfluous + copy-prop pass. + 2010-11-26 Richard Guenther <rguenther@suse.de> PR lto/46648 diff --git a/gcc/passes.c b/gcc/passes.c index b5cb2ac..38cc570 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -897,7 +897,6 @@ init_optimization_passes (void) NEXT_PASS (pass_graphite); { struct opt_pass **p = &pass_graphite.pass.sub; - NEXT_PASS (pass_copy_prop); NEXT_PASS (pass_graphite_transforms); NEXT_PASS (pass_copy_prop); NEXT_PASS (pass_dce_loop); diff --git a/gcc/tree-ssa-copy.c b/gcc/tree-ssa-copy.c index 6837033..d552c3a 100644 --- a/gcc/tree-ssa-copy.c +++ b/gcc/tree-ssa-copy.c @@ -775,7 +775,9 @@ fini_copy_prop (void) duplicate_ssa_name_ptr_info (copy_of[i].value, SSA_NAME_PTR_INFO (var)); } - substitute_and_fold (get_value, NULL, true); + /* Don't do DCE if we have loops. That's the simplest way to not + destroy the scev cache. */ + substitute_and_fold (get_value, NULL, !current_loops); free (copy_of); } |