From 2d5fec4e65f30764399a4461d908657eb819ef30 Mon Sep 17 00:00:00 2001
From: Richard Guenther <rguenther@suse.de>
Date: Wed, 19 Sep 2012 13:46:34 +0000
Subject: [PATCH] passes.c (init_optimization_passes): For -Og move
 pass_object_sizes inbetween CCP and copyprop.

2012-09-19  Richard Guenther  <rguenther@suse.de>

	* passes.c (init_optimization_passes): For -Og move
	pass_object_sizes inbetween CCP and copyprop.

From-SVN: r191476
---
 gcc/ChangeLog | 5 +++++
 gcc/passes.c  | 4 +++-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c9d801214eb2..e7c8f9bf6d42 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2012-09-19  Richard Guenther  <rguenther@suse.de>
+
+	* passes.c (init_optimization_passes): For -Og move
+	pass_object_sizes inbetween CCP and copyprop.
+
 2012-09-19  Richard Guenther  <rguenther@suse.de>
 
 	* tree-ssa-forwprop.c (get_prop_source_stmt): Simplify. 
diff --git a/gcc/passes.c b/gcc/passes.c
index c96d5333efef..97a1d0ec7fda 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -1528,11 +1528,13 @@ init_optimization_passes (void)
       NEXT_PASS (pass_lower_vector_ssa);
       /* Perform simple scalar cleanup which is constant/copy propagation.  */
       NEXT_PASS (pass_ccp);
+      NEXT_PASS (pass_object_sizes);
+      /* Copy propagation also copy-propagates constants, this is necessary
+         to forward object-size results properly.  */
       NEXT_PASS (pass_copy_prop);
       NEXT_PASS (pass_rename_ssa_copies);
       NEXT_PASS (pass_dce);
       /* Fold remaining builtins.  */
-      NEXT_PASS (pass_object_sizes);
       NEXT_PASS (pass_fold_builtins);
       /* ???  We do want some kind of loop invariant motion, but we possibly
          need to adjust LIM to be more friendly towards preserving accurate
-- 
GitLab