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 <mjam...@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)); } } }