OSDN Git Service

* tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
authormatz <matz@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 26 Nov 2010 16:51:39 +0000 (16:51 +0000)
committermatz <matz@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 26 Nov 2010 16:51:39 +0000 (16:51 +0000)
* passes.c (init_optimization_passes): Remove superfluous
copy-prop pass.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167184 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/passes.c
gcc/tree-ssa-copy.c

index 810590c..7e996ca 100644 (file)
@@ -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
index b5cb2ac..38cc570 100644 (file)
@@ -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);
index 6837033..d552c3a 100644 (file)
@@ -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);
 }