This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] No SRA debug replacements for variables that cannot be removed
- From: Martin Jambor <mjambor at suse dot cz>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 15 Jan 2013 16:52:16 +0100
- Subject: [PATCH] No SRA debug replacements for variables that cannot be removed
Hi,
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.
Thanks,
Martin
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);