diff options
author | pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-08-26 19:02:05 +0000 |
---|---|---|
committer | pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-08-26 19:02:05 +0000 |
commit | 526548ea561c014b8823add5eaf5d82b946edc60 (patch) | |
tree | c76589964fab5b9ad0bc9fa8798ce1ea9e4d6522 /gcc | |
parent | 607978a1e13865e0bfe28d9f880cd2a33ae378a5 (diff) | |
download | gcc-526548ea561c014b8823add5eaf5d82b946edc60.tar.gz |
2008-08-26 Andrew Pinski <andrew_pinski@playstation.sony.com>
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@139605 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/fwprop.c | 8 |
2 files changed, 13 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index eec19752b68..b20645813bf 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,4 +1,10 @@ -2008-08-28 Paul Brook <paul@codesourcery.com> +2008-08-26 Andrew Pinski <andrew_pinski@playstation.sony.com> + + 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 <paul@codesourcery.com> * 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 fbe432974f4..7c61ca008e5 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); } |