From: Andrew Pinski Date: Tue, 26 Aug 2008 19:02:05 +0000 (-0700) Subject: re PR rtl-optimization/37219 (fwprop1 is broken for addresses) X-Git-Tag: releases/gcc-4.4.0~2869 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=24713e85ff118e760314625f58f4329df71031d6;p=thirdparty%2Fgcc.git re PR rtl-optimization/37219 (fwprop1 is broken for addresses) 2008-08-26 Andrew Pinski PR rtl-opt/37219 * fwprop.c (fwprop): Check that the loop_father is the outer loop. (fwprop_addr): Check that the loop_father is not the outer loop. From-SVN: r139605 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index eec19752b682..b20645813bf9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,4 +1,10 @@ -2008-08-28 Paul Brook +2008-08-26 Andrew Pinski + + PR rtl-opt/37219 + * fwprop.c (fwprop): Check that the loop_father is the outer loop. + (fwprop_addr): Check that the loop_father is not the outer loop. + +2008-08-26 Paul Brook * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types. Remove documentation entry for fmul type. diff --git a/gcc/fwprop.c b/gcc/fwprop.c index fbe432974f41..7c61ca008e5b 100644 --- a/gcc/fwprop.c +++ b/gcc/fwprop.c @@ -1056,7 +1056,9 @@ fwprop (void) struct df_ref *use = DF_USES_GET (i); if (use) if (DF_REF_TYPE (use) == DF_REF_REG_USE - || DF_REF_BB (use)->loop_father == NULL) + || DF_REF_BB (use)->loop_father == NULL + /* The outer most loop is not really a loop. */ + || loop_outer (DF_REF_BB (use)->loop_father) == NULL) forward_propagate_into (use); } @@ -1099,7 +1101,9 @@ fwprop_addr (void) struct df_ref *use = DF_USES_GET (i); if (use) if (DF_REF_TYPE (use) != DF_REF_REG_USE - && DF_REF_BB (use)->loop_father != NULL) + && DF_REF_BB (use)->loop_father != NULL + /* The outer most loop is not really a loop. */ + && loop_outer (DF_REF_BB (use)->loop_father) != NULL) forward_propagate_into (use); }