* [PATCH, SRA] Dump that a structure is too big for total scalarization
@ 2011-07-07 18:44 Martin Jambor
2011-07-08 8:33 ` Richard Guenther
0 siblings, 1 reply; 2+ messages in thread
From: Martin Jambor @ 2011-07-07 18:44 UTC (permalink / raw)
To: GCC Patches; +Cc: Richard Guenther
Hi,
in order to better analyze what SRA is or is not doing, it is
sometimes advantageous to have in the dump information that a
structure was not subject to total scalarization because it was too
big - if we have detailed dumping on, that is.
This is accomplished by the patch below. It is currently undergoing a
bootstrap and testsuite run on x86_64-linux. OK if it passes?
Thanks,
Martin
2011-07-07 Martin Jambor <mjambor@suse.cz>
* tree-sra.c (analyze_all_variable_accesses): Dump that a struture
is too big for total scalarization.
Index: src/gcc/tree-sra.c
===================================================================
*** src.orig/gcc/tree-sra.c
--- src/gcc/tree-sra.c
*************** analyze_all_variable_accesses (void)
*** 2312,2327 ****
tree var = referenced_var (i);
if (TREE_CODE (var) == VAR_DECL
- && ((unsigned) tree_low_cst (TYPE_SIZE (TREE_TYPE (var)), 1)
- <= max_total_scalarization_size)
&& type_consists_of_records_p (TREE_TYPE (var)))
{
! completely_scalarize_var (var);
! if (dump_file && (dump_flags & TDF_DETAILS))
{
! fprintf (dump_file, "Will attempt to totally scalarize ");
print_generic_expr (dump_file, var, 0);
! fprintf (dump_file, " (UID: %u): \n", DECL_UID (var));
}
}
}
--- 2312,2335 ----
tree var = referenced_var (i);
if (TREE_CODE (var) == VAR_DECL
&& type_consists_of_records_p (TREE_TYPE (var)))
{
! if ((unsigned) tree_low_cst (TYPE_SIZE (TREE_TYPE (var)), 1)
! <= max_total_scalarization_size)
! {
! completely_scalarize_var (var);
! if (dump_file && (dump_flags & TDF_DETAILS))
! {
! fprintf (dump_file, "Will attempt to totally scalarize ");
! print_generic_expr (dump_file, var, 0);
! fprintf (dump_file, " (UID: %u): \n", DECL_UID (var));
! }
! }
! else if (dump_file && (dump_flags & TDF_DETAILS))
{
! fprintf (dump_file, "Too big to totally scalarize: ");
print_generic_expr (dump_file, var, 0);
! fprintf (dump_file, " (UID: %u)\n", DECL_UID (var));
}
}
}
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH, SRA] Dump that a structure is too big for total scalarization
2011-07-07 18:44 [PATCH, SRA] Dump that a structure is too big for total scalarization Martin Jambor
@ 2011-07-08 8:33 ` Richard Guenther
0 siblings, 0 replies; 2+ messages in thread
From: Richard Guenther @ 2011-07-08 8:33 UTC (permalink / raw)
To: Martin Jambor; +Cc: GCC Patches
[-- Attachment #1: Type: TEXT/PLAIN, Size: 2498 bytes --]
On Thu, 7 Jul 2011, Martin Jambor wrote:
> Hi,
>
> in order to better analyze what SRA is or is not doing, it is
> sometimes advantageous to have in the dump information that a
> structure was not subject to total scalarization because it was too
> big - if we have detailed dumping on, that is.
>
> This is accomplished by the patch below. It is currently undergoing a
> bootstrap and testsuite run on x86_64-linux. OK if it passes?
Ok.
Thanks,
Richard.
> Thanks,
>
> Martin
>
>
> 2011-07-07 Martin Jambor <mjambor@suse.cz>
>
> * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
> is too big for total scalarization.
>
> Index: src/gcc/tree-sra.c
> ===================================================================
> *** src.orig/gcc/tree-sra.c
> --- src/gcc/tree-sra.c
> *************** analyze_all_variable_accesses (void)
> *** 2312,2327 ****
> tree var = referenced_var (i);
>
> if (TREE_CODE (var) == VAR_DECL
> - && ((unsigned) tree_low_cst (TYPE_SIZE (TREE_TYPE (var)), 1)
> - <= max_total_scalarization_size)
> && type_consists_of_records_p (TREE_TYPE (var)))
> {
> ! completely_scalarize_var (var);
> ! if (dump_file && (dump_flags & TDF_DETAILS))
> {
> ! fprintf (dump_file, "Will attempt to totally scalarize ");
> print_generic_expr (dump_file, var, 0);
> ! fprintf (dump_file, " (UID: %u): \n", DECL_UID (var));
> }
> }
> }
> --- 2312,2335 ----
> tree var = referenced_var (i);
>
> if (TREE_CODE (var) == VAR_DECL
> && type_consists_of_records_p (TREE_TYPE (var)))
> {
> ! if ((unsigned) tree_low_cst (TYPE_SIZE (TREE_TYPE (var)), 1)
> ! <= max_total_scalarization_size)
> ! {
> ! completely_scalarize_var (var);
> ! if (dump_file && (dump_flags & TDF_DETAILS))
> ! {
> ! fprintf (dump_file, "Will attempt to totally scalarize ");
> ! print_generic_expr (dump_file, var, 0);
> ! fprintf (dump_file, " (UID: %u): \n", DECL_UID (var));
> ! }
> ! }
> ! else if (dump_file && (dump_flags & TDF_DETAILS))
> {
> ! fprintf (dump_file, "Too big to totally scalarize: ");
> print_generic_expr (dump_file, var, 0);
> ! fprintf (dump_file, " (UID: %u)\n", DECL_UID (var));
> }
> }
> }
>
>
--
Richard Guenther <rguenther@suse.de>
Novell / SUSE Labs
SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-07-08 8:30 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-07 18:44 [PATCH, SRA] Dump that a structure is too big for total scalarization Martin Jambor
2011-07-08 8:33 ` Richard Guenther
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).