diff options
author | Richard Biener <rguenther@suse.de> | 2016-11-25 11:40:30 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2016-11-25 11:40:30 +0000 |
commit | 1af928db7cd28e28e044f45760f11e0667d3fcbc (patch) | |
tree | 35da6dcd15d6a287600401ee5543f7232896625e /gcc | |
parent | 59ec925b1199f9777d0d10be46251516f774b214 (diff) | |
download | gcc-1af928db7cd28e28e044f45760f11e0667d3fcbc.zip gcc-1af928db7cd28e28e044f45760f11e0667d3fcbc.tar.gz gcc-1af928db7cd28e28e044f45760f11e0667d3fcbc.tar.bz2 |
gimple-fold.c (fold_stmt_1): Check may_propagate_copy before valueizing return stmts.
2016-11-25 Richard Biener <rguenther@suse.de>
* gimple-fold.c (fold_stmt_1): Check may_propagate_copy
before valueizing return stmts.
From-SVN: r242873
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/gimple-fold.c | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9681566..0c0fce9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2016-11-25 Richard Biener <rguenther@suse.de> + + * gimple-fold.c (fold_stmt_1): Check may_propagate_copy + before valueizing return stmts. + 2016-11-24 Richard Biener <rguenther@suse.de> PR tree-optimization/78343 diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c index 6842301..f586c09 100644 --- a/gcc/gimple-fold.c +++ b/gcc/gimple-fold.c @@ -4414,7 +4414,8 @@ fold_stmt_1 (gimple_stmt_iterator *gsi, bool inplace, tree (*valueize) (tree)) if (ret && TREE_CODE (ret) == SSA_NAME && valueize) { tree val = valueize (ret); - if (val && val != ret) + if (val && val != ret + && may_propagate_copy (ret, val)) { gimple_return_set_retval (ret_stmt, val); changed = true; |