[PATCH] No SRA debug replacements for variables that cannot be removed

Martin Jambor mjambor@suse.cz
Tue Jan 15 15:52:00 GMT 2013


as discussed in PR 55920, this patch prevents SRA from creating debug
replacements and debug statements for aggregate variables which cannot
be scalarized away.  Jakub bootstrapped and tested the patch and I
suppose he is OK with it too so I will commit is shortly.



2013-01-11  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/55920
	* tree-sra.c (analyze_access_subtree): Do not mark non-removable
	accesses as grp_to_be_debug_replaced.

Index: src/gcc/tree-sra.c
--- src.orig/gcc/tree-sra.c
+++ src/gcc/tree-sra.c
@@ -2199,7 +2199,9 @@ analyze_access_subtree (struct access *r
       if (allow_replacements
 	  && scalar && !root->first_child
-	  && (root->grp_scalar_write || root->grp_assignment_write))
+	  && (root->grp_scalar_write || root->grp_assignment_write)
+	  && !bitmap_bit_p (cannot_scalarize_away_bitmap,
+			    DECL_UID (root->base)))
 	  gcc_checking_assert (!root->grp_scalar_read
 			       && !root->grp_assignment_read);

More information about the Gcc-patches mailing list