From 6b87d1b4ca69bb14789d100a3c173cc8826c1ff3 Mon Sep 17 00:00:00 2001 From: Richard Guenther Date: Sun, 16 May 2010 19:56:44 +0000 Subject: [PATCH] invoke.texi (-fipa-struct-reorg): Do not mention -fipa-type-escape. 2010-05-16 Richard Guenther * doc/invoke.texi (-fipa-struct-reorg): Do not mention -fipa-type-escape. * ipa-type-escape.c (gate_type_escape_vars): Run when -fipa-struct-reorg runs. * opts.c (decode_options): Do not unset flag_ipa_type_escape. * common.opt (fipa-type-escape): Remove. * gcc.dg/pr43317.c: Do not pass -fipa-type-escape. * gcc.dg/pr43084.c: Likewise. * gcc.dg/pr42250.c: Pass -fipa-struct-reorg instead of -fipa-type-escape. * gcc.dg/struct/wo_prof_escape_arg_to_local.c: Do not pass -fipa-type-escape. * gcc.dg/struct/struct-reorg.exp: Likewise. * gcc.dg/struct/wo_prof_empty_str.c: Likewise. * gcc.dg/struct/wo_prof_escape_return.c: Likewise. From-SVN: r159464 --- gcc/ChangeLog | 9 +++++++++ gcc/common.opt | 4 ---- gcc/doc/invoke.texi | 5 ++--- gcc/ipa-type-escape.c | 6 ++---- gcc/opts.c | 1 - gcc/testsuite/ChangeLog | 12 ++++++++++++ gcc/testsuite/gcc.dg/pr42250.c | 2 +- gcc/testsuite/gcc.dg/pr43084.c | 2 +- gcc/testsuite/gcc.dg/pr43317.c | 2 +- gcc/testsuite/gcc.dg/struct/struct-reorg.exp | 4 ++-- gcc/testsuite/gcc.dg/struct/wo_prof_empty_str.c | 2 +- .../gcc.dg/struct/wo_prof_escape_arg_to_local.c | 2 +- gcc/testsuite/gcc.dg/struct/wo_prof_escape_return.c | 2 +- 13 files changed, 33 insertions(+), 20 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 244695e4bf4..225cdda8fb0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2010-05-16 Richard Guenther + + * doc/invoke.texi (-fipa-struct-reorg): Do not mention + -fipa-type-escape. + * ipa-type-escape.c (gate_type_escape_vars): Run when + -fipa-struct-reorg runs. + * opts.c (decode_options): Do not unset flag_ipa_type_escape. + * common.opt (fipa-type-escape): Remove. + 2010-05-16 Eric Botcazou * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO. diff --git a/gcc/common.opt b/gcc/common.opt index e9a0695f20b..8cda9128514 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -717,10 +717,6 @@ fipa-reference Common Report Var(flag_ipa_reference) Init(0) Optimization Discover readonly and non addressable static variables -fipa-type-escape -Common Report Var(flag_ipa_type_escape) Init(0) Optimization -Type based escape and alias analysis - fipa-matrix-reorg Common Report Var(flag_ipa_matrix_reorg) Optimization Perform matrix layout flattening and transposing based diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 81c2d03b779..e99490227ec 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -346,7 +346,7 @@ Objective-C and Objective-C++ Dialects}. -finline-functions -finline-functions-called-once -finline-limit=@var{n} @gol -finline-small-functions -fipa-cp -fipa-cp-clone -fipa-matrix-reorg -fipa-pta @gol -fipa-profile -fipa-pure-const -fipa-reference -fipa-struct-reorg @gol --fipa-type-escape -fira-algorithm=@var{algorithm} @gol +-fira-algorithm=@var{algorithm} @gol -fira-region=@var{region} -fira-coalesce @gol -fira-loop-pressure -fno-ira-share-save-slots @gol -fno-ira-share-spill-slots -fira-verbose=@var{n} @gol @@ -6633,8 +6633,7 @@ Perform structure reorganization optimization, that change C-like structures layout in order to better utilize spatial locality. This transformation is affective for programs containing arrays of structures. Available in two compilation modes: profile-based (enabled with @option{-fprofile-generate}) -or static (which uses built-in heuristics). Require @option{-fipa-type-escape} -to provide the safety of this transformation. It works only in whole program +or static (which uses built-in heuristics). It works only in whole program mode, so it requires @option{-fwhole-program} and @option{-combine} to be enabled. Structures considered @samp{cold} by this transformation are not affected (see @option{--param struct-reorg-cold-struct-ratio=@var{value}}). diff --git a/gcc/ipa-type-escape.c b/gcc/ipa-type-escape.c index 0807d0b107a..c2cb3e87718 100644 --- a/gcc/ipa-type-escape.c +++ b/gcc/ipa-type-escape.c @@ -1,4 +1,4 @@ -/* Type based alias analysis. +/* Escape analysis for types. Copyright (C) 2004, 2005, 2006, 2007, 2008, 2010 Free Software Foundation, Inc. Contributed by Kenneth Zadeck @@ -2112,9 +2112,7 @@ type_escape_execute (void) static bool gate_type_escape_vars (void) { - return (flag_ipa_type_escape - /* Don't bother doing anything if the program has errors. */ - && !(errorcount || sorrycount)); + return flag_ipa_struct_reorg && flag_whole_program && (optimize > 0); } struct simple_ipa_opt_pass pass_ipa_type_escape = diff --git a/gcc/opts.c b/gcc/opts.c index 5aa7c419f50..14c9b0420f9 100644 --- a/gcc/opts.c +++ b/gcc/opts.c @@ -1151,7 +1151,6 @@ decode_options (unsigned int argc, const char **argv) { /* These passes are not WHOPR compatible yet. */ flag_ipa_cp = 0; - flag_ipa_type_escape = 0; flag_ipa_pta = 0; flag_ipa_struct_reorg = 0; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 64242be9392..4ec703c03ad 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,15 @@ +2010-05-16 Richard Guenther + + * gcc.dg/pr43317.c: Do not pass -fipa-type-escape. + * gcc.dg/pr43084.c: Likewise. + * gcc.dg/pr42250.c: Pass -fipa-struct-reorg instead of + -fipa-type-escape. + * gcc.dg/struct/wo_prof_escape_arg_to_local.c: Do not pass + -fipa-type-escape. + * gcc.dg/struct/struct-reorg.exp: Likewise. + * gcc.dg/struct/wo_prof_empty_str.c: Likewise. + * gcc.dg/struct/wo_prof_escape_return.c: Likewise. + 2010-05-16 Joseph Myers * gcc.dg/c1x-static-assert-1.c, gcc.dg/c1x-static-assert-2.c, diff --git a/gcc/testsuite/gcc.dg/pr42250.c b/gcc/testsuite/gcc.dg/pr42250.c index d3d4bb7be2f..3ba8e8413e7 100644 --- a/gcc/testsuite/gcc.dg/pr42250.c +++ b/gcc/testsuite/gcc.dg/pr42250.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fipa-type-escape" } */ +/* { dg-options "-O2 -fipa-struct-reorg" } */ extern double log10 (double __x); extern double ceil (double __x); diff --git a/gcc/testsuite/gcc.dg/pr43084.c b/gcc/testsuite/gcc.dg/pr43084.c index a590fa272cb..c3101248af6 100644 --- a/gcc/testsuite/gcc.dg/pr43084.c +++ b/gcc/testsuite/gcc.dg/pr43084.c @@ -1,6 +1,6 @@ /* PR debug/43084 */ /* { dg-do compile } */ -/* { dg-options "-O1 -fipa-struct-reorg -fwhole-program -fipa-type-escape -fcompare-debug" } */ +/* { dg-options "-O1 -fipa-struct-reorg -fwhole-program -fcompare-debug" } */ struct S { diff --git a/gcc/testsuite/gcc.dg/pr43317.c b/gcc/testsuite/gcc.dg/pr43317.c index 3ee3ed54931..cc5832aee36 100644 --- a/gcc/testsuite/gcc.dg/pr43317.c +++ b/gcc/testsuite/gcc.dg/pr43317.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O -fipa-struct-reorg -fwhole-program -fipa-type-escape -g" } */ +/* { dg-options "-O -fipa-struct-reorg -fwhole-program -g" } */ extern void *malloc(__SIZE_TYPE__); diff --git a/gcc/testsuite/gcc.dg/struct/struct-reorg.exp b/gcc/testsuite/gcc.dg/struct/struct-reorg.exp index 9a1797f3cc2..c96501c2980 100644 --- a/gcc/testsuite/gcc.dg/struct/struct-reorg.exp +++ b/gcc/testsuite/gcc.dg/struct/struct-reorg.exp @@ -20,7 +20,7 @@ load_lib gcc-dg.exp load_lib target-supports.exp -set STRUCT_REORG_CFLAGS "-O3 -fipa-struct-reorg -fdump-ipa-all -fwhole-program -combine -fipa-type-escape" +set STRUCT_REORG_CFLAGS "-O3 -fipa-struct-reorg -fdump-ipa-all -fwhole-program -combine" # Initialize `dg'. dg-init @@ -51,7 +51,7 @@ load_lib profopt.exp # These are globals used by profopt-execute. The first is options # needed to generate profile data, the second is options to use the # profile data. -set common "-O3 -fwhole-program -combine -fipa-type-escape" +set common "-O3 -fwhole-program -combine" set profile_option [concat $common " -fprofile-generate"] set feedback_option [concat $common " -fprofile-use -fipa-struct-reorg -fdump-ipa-all"] diff --git a/gcc/testsuite/gcc.dg/struct/wo_prof_empty_str.c b/gcc/testsuite/gcc.dg/struct/wo_prof_empty_str.c index 8f9751d22bf..db7f6b09cb5 100644 --- a/gcc/testsuite/gcc.dg/struct/wo_prof_empty_str.c +++ b/gcc/testsuite/gcc.dg/struct/wo_prof_empty_str.c @@ -1,4 +1,4 @@ -/* { dg-options "-O3 -fno-inline -fipa-type-escape -fdump-ipa-all -fipa-struct-reorg -fwhole-program -combine" } */ +/* { dg-options "-O3 -fno-inline -fdump-ipa-all -fipa-struct-reorg -fwhole-program -combine" } */ /* { dg-do compile } */ /* { dg-do run } */ diff --git a/gcc/testsuite/gcc.dg/struct/wo_prof_escape_arg_to_local.c b/gcc/testsuite/gcc.dg/struct/wo_prof_escape_arg_to_local.c index 29630252e00..e6638b73a60 100644 --- a/gcc/testsuite/gcc.dg/struct/wo_prof_escape_arg_to_local.c +++ b/gcc/testsuite/gcc.dg/struct/wo_prof_escape_arg_to_local.c @@ -1,4 +1,4 @@ -/* { dg-options "-O3 -fno-inline -fno-ipa-sra -fipa-type-escape -fdump-ipa-all -fipa-struct-reorg -fwhole-program -combine" } */ +/* { dg-options "-O3 -fno-inline -fno-ipa-sra -fdump-ipa-all -fipa-struct-reorg -fwhole-program -combine" } */ /* { dg-do compile } */ /* { dg-do run } */ diff --git a/gcc/testsuite/gcc.dg/struct/wo_prof_escape_return.c b/gcc/testsuite/gcc.dg/struct/wo_prof_escape_return.c index 26944fe10b3..8830c55601d 100644 --- a/gcc/testsuite/gcc.dg/struct/wo_prof_escape_return.c +++ b/gcc/testsuite/gcc.dg/struct/wo_prof_escape_return.c @@ -1,4 +1,4 @@ -/* { dg-options "-O3 -fno-inline -fipa-type-escape -fdump-ipa-all -fipa-struct-reorg -fwhole-program -combine" } */ +/* { dg-options "-O3 -fno-inline -fdump-ipa-all -fipa-struct-reorg -fwhole-program -combine" } */ /* { dg-do compile } */ /* { dg-do run } */ -- 2.30.2