[PATCH][mem-ref2] Disable struct-reorg

Richard Guenther rguenther@suse.de
Mon Jun 7 13:03:00 GMT 2010


This disables IPA struct-reorg and XFAILs all testcases.  I tried
to fix it up, but even its analysis phase is non-conservative.

Hopeless.

Committed to the branch.

Richard.

2010-06-07  Richard Guenther  <rguenther@suse.de>

	* ipa-struct-reorg.c (reorg_structs_drive): Disable.

	* gcc.dg/struct: XFAIL all testcases.

Index: gcc/ipa-struct-reorg.c
===================================================================
*** gcc/ipa-struct-reorg.c	(revision 160359)
--- gcc/ipa-struct-reorg.c	(working copy)
*************** reorg_structs (void)
*** 4033,4039 ****
  static unsigned int
  reorg_structs_drive (void)
  {
!   reorg_structs ();
    return 0;
  }
  
--- 4033,4041 ----
  static unsigned int
  reorg_structs_drive (void)
  {
!   /* IPA struct-reorg is completely broken - its analysis phase is
!      non-conservative (which is not the only reason it is broken).  */
!   /* reorg_structs (); */
    return 0;
  }
  
Index: gcc/testsuite/gcc.dg/struct/w_prof_two_strs.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/w_prof_two_strs.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/w_prof_two_strs.c	(working copy)
*************** main ()
*** 61,66 ****
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final-use { scan-ipa-dump "Number of structures to transform is 2" "ipa_struct_reorg" } } */
  /* { dg-final-use { cleanup-ipa-dump "*" } } */
  
--- 61,66 ----
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final-use { scan-ipa-dump "Number of structures to transform is 2" "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final-use { cleanup-ipa-dump "*" } } */
  
Index: gcc/testsuite/gcc.dg/struct/wo_prof_escape_arg_to_local.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/wo_prof_escape_arg_to_local.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/wo_prof_escape_arg_to_local.c	(working copy)
*************** main ()
*** 42,46 ****
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "is passed to local function...Excluded." "ipa_struct_reorg" } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
--- 42,46 ----
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "is passed to local function...Excluded." "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
Index: gcc/testsuite/gcc.dg/struct/wo_prof_global_var.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/wo_prof_global_var.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/wo_prof_global_var.c	(working copy)
*************** main ()
*** 42,46 ****
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail { "avr-*-*" } } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
--- 42,46 ----
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
Index: gcc/testsuite/gcc.dg/struct/wo_prof_malloc_size_var.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/wo_prof_malloc_size_var.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/wo_prof_malloc_size_var.c	(working copy)
*************** main ()
*** 44,48 ****
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail { "avr-*-*" } } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
--- 44,48 ----
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
Index: gcc/testsuite/gcc.dg/struct/w_prof_local_array.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/w_prof_local_array.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/w_prof_local_array.c	(working copy)
*************** main ()
*** 34,38 ****
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final-use { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail { "avr-*-*" } } } } */
  /* { dg-final-use { cleanup-ipa-dump "*" } } */
--- 34,38 ----
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final-use { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final-use { cleanup-ipa-dump "*" } } */
Index: gcc/testsuite/gcc.dg/struct/w_prof_single_str_global.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/w_prof_single_str_global.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/w_prof_single_str_global.c	(working copy)
*************** main ()
*** 28,33 ****
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final-use { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail { "avr-*-*" } } } } */
  /* { dg-final-use { cleanup-ipa-dump "*" } } */
  
--- 28,33 ----
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final-use { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final-use { cleanup-ipa-dump "*" } } */
  
Index: gcc/testsuite/gcc.dg/struct/wo_prof_escape_str_init.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/wo_prof_escape_str_init.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/wo_prof_escape_str_init.c	(working copy)
*************** main ()
*** 28,33 ****
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "is initialized...Excluded" "ipa_struct_reorg" } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
  
--- 28,33 ----
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "is initialized...Excluded" "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
  
Index: gcc/testsuite/gcc.dg/struct/wo_prof_array_through_pointer.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/wo_prof_array_through_pointer.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/wo_prof_array_through_pointer.c	(working copy)
*************** main ()
*** 35,39 ****
    return 0;
  }
  
! /* { dg-final { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
--- 35,39 ----
    return 0;
  }
  
! /* { dg-final { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
Index: gcc/testsuite/gcc.dg/struct/w_prof_global_array.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/w_prof_global_array.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/w_prof_global_array.c	(working copy)
*************** main ()
*** 26,30 ****
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final-use { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" } } */
  /* { dg-final-use { cleanup-ipa-dump "*" } } */
--- 26,30 ----
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final-use { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final-use { cleanup-ipa-dump "*" } } */
Index: gcc/testsuite/gcc.dg/struct/wo_prof_array_field.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/wo_prof_array_field.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/wo_prof_array_field.c	(working copy)
*************** int main()
*** 23,27 ****
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail { "avr-*-*" } } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
--- 23,27 ----
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
Index: gcc/testsuite/gcc.dg/struct/wo_prof_single_str_local.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/wo_prof_single_str_local.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/wo_prof_single_str_local.c	(working copy)
*************** main ()
*** 31,35 ****
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "No structures to transform" "ipa_struct_reorg" { xfail { "avr-*-*" } } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
--- 31,35 ----
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "No structures to transform" "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
Index: gcc/testsuite/gcc.dg/struct/w_prof_local_var.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/w_prof_local_var.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/w_prof_local_var.c	(working copy)
*************** main ()
*** 37,41 ****
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final-use { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" } } */
  /* { dg-final-use { cleanup-ipa-dump "*" } } */
--- 37,41 ----
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final-use { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final-use { cleanup-ipa-dump "*" } } */
Index: gcc/testsuite/gcc.dg/struct/wo_prof_two_strs.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/wo_prof_two_strs.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/wo_prof_two_strs.c	(working copy)
*************** main ()
*** 64,68 ****
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "Number of structures to transform is 2" "ipa_struct_reorg" { xfail { "avr-*-*" } } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
--- 64,68 ----
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "Number of structures to transform is 2" "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
Index: gcc/testsuite/gcc.dg/struct/wo_prof_empty_str.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/wo_prof_empty_str.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/wo_prof_empty_str.c	(working copy)
*************** main ()
*** 43,47 ****
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "No structures to transform" "ipa_struct_reorg" { xfail { "avr-*-*" } } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
--- 43,47 ----
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "No structures to transform" "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
Index: gcc/testsuite/gcc.dg/struct/wo_prof_local_array.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/wo_prof_local_array.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/wo_prof_local_array.c	(working copy)
*************** main ()
*** 37,41 ****
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail { "avr-*-*" } } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
--- 37,41 ----
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
Index: gcc/testsuite/gcc.dg/struct/w_prof_global_var.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/w_prof_global_var.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/w_prof_global_var.c	(working copy)
*************** main ()
*** 39,43 ****
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final-use { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail { "avr-*-*" } } } } */
  /* { dg-final-use { cleanup-ipa-dump "*" } } */
--- 39,43 ----
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final-use { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final-use { cleanup-ipa-dump "*" } } */
Index: gcc/testsuite/gcc.dg/struct/wo_prof_single_str_global.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/wo_prof_single_str_global.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/wo_prof_single_str_global.c	(working copy)
*************** main ()
*** 31,35 ****
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail { "avr-*-*" } } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
--- 31,35 ----
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
Index: gcc/testsuite/gcc.dg/struct/wo_prof_escape_substr_value.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/wo_prof_escape_substr_value.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/wo_prof_escape_substr_value.c	(working copy)
*************** main ()
*** 42,46 ****
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "is a field in the structure" "ipa_struct_reorg" } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
--- 42,46 ----
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "is a field in the structure" "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
Index: gcc/testsuite/gcc.dg/struct/wo_prof_global_array.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/wo_prof_global_array.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/wo_prof_global_array.c	(working copy)
*************** main ()
*** 29,33 ****
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail { "avr-*-*" } } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
--- 29,33 ----
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
Index: gcc/testsuite/gcc.dg/struct/wo_prof_escape_return.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/wo_prof_escape_return.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/wo_prof_escape_return.c	(working copy)
*************** main ()
*** 29,33 ****
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "is return type of function...Excluded" "ipa_struct_reorg" } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
--- 29,33 ----
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "is return type of function...Excluded" "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
Index: gcc/testsuite/gcc.dg/struct/wo_prof_escape_substr_array.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/wo_prof_escape_substr_array.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/wo_prof_escape_substr_array.c	(working copy)
*************** main ()
*** 30,34 ****
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "is a field in the structure" "ipa_struct_reorg" } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
--- 30,34 ----
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "is a field in the structure" "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
Index: gcc/testsuite/gcc.dg/struct/wo_prof_double_malloc.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/wo_prof_double_malloc.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/wo_prof_double_malloc.c	(working copy)
*************** int main()
*** 26,30 ****
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail { "avr-*-*" } } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
--- 26,30 ----
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
Index: gcc/testsuite/gcc.dg/struct/w_ratio_cold_str.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/w_ratio_cold_str.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/w_ratio_cold_str.c	(working copy)
*************** main ()
*** 39,43 ****
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final-use { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" } } */
  /* { dg-final-use { cleanup-ipa-dump "*" } } */
--- 39,43 ----
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final-use { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final-use { cleanup-ipa-dump "*" } } */
Index: gcc/testsuite/gcc.dg/struct/wo_prof_escape_substr_pointer.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/wo_prof_escape_substr_pointer.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/wo_prof_escape_substr_pointer.c	(working copy)
*************** main (void)
*** 45,49 ****
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "is a field in the structure" "ipa_struct_reorg" } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
--- 45,49 ----
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "is a field in the structure" "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
Index: gcc/testsuite/gcc.dg/struct/wo_prof_local_var.c
===================================================================
*** gcc/testsuite/gcc.dg/struct/wo_prof_local_var.c	(revision 160359)
--- gcc/testsuite/gcc.dg/struct/wo_prof_local_var.c	(working copy)
*************** main ()
*** 40,44 ****
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail { "avr-*-*" } } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */
--- 40,44 ----
  }
  
  /*--------------------------------------------------------------------------*/
! /* { dg-final { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" { xfail *-*-* } } } */
  /* { dg-final { cleanup-ipa-dump "*" } } */



More information about the Gcc-patches mailing list