aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-forwprop.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2019-11-05 13:29:52 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2019-11-05 13:29:52 +0000
commitc265dfbf748e9fc3006a0f844294ef2cea145d71 (patch)
treeb5cdf144d28fdfcf0ed650dd26cbbf9b6e682513 /gcc/tree-ssa-forwprop.c
parentd9adca6e663070311c73cbd7dc9d73e7713aa315 (diff)
downloadgcc-c265dfbf748e9fc3006a0f844294ef2cea145d71.zip
gcc-c265dfbf748e9fc3006a0f844294ef2cea145d71.tar.gz
gcc-c265dfbf748e9fc3006a0f844294ef2cea145d71.tar.bz2
re PR target/92280 (gcc.target/i386/pr83008.c FAILs)
2019-11-05 Richard Biener <rguenther@suse.de> PR tree-optimization/92280 * match.pd (BIT_FIELD_REF of CTOR): Unless the original CTOR had a single use do not create a new CTOR. * tree-ssa-forwprop.c (simplify_bitfield_ref): Do not re-fold BIT_FIELD_REF of a CTOR via GENERIC. From-SVN: r277832
Diffstat (limited to 'gcc/tree-ssa-forwprop.c')
-rw-r--r--gcc/tree-ssa-forwprop.c15
1 files changed, 1 insertions, 14 deletions
diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c
index fe55ca9..386406f 100644
--- a/gcc/tree-ssa-forwprop.c
+++ b/gcc/tree-ssa-forwprop.c
@@ -1786,7 +1786,7 @@ simplify_bitfield_ref (gimple_stmt_iterator *gsi)
{
gimple *stmt = gsi_stmt (*gsi);
gimple *def_stmt;
- tree op, op0, op1, op2;
+ tree op, op0, op1;
tree elem_type;
unsigned idx, size;
enum tree_code code;
@@ -1804,20 +1804,7 @@ simplify_bitfield_ref (gimple_stmt_iterator *gsi)
return false;
op1 = TREE_OPERAND (op, 1);
- op2 = TREE_OPERAND (op, 2);
code = gimple_assign_rhs_code (def_stmt);
-
- if (code == CONSTRUCTOR)
- {
- tree tem = fold_ternary (BIT_FIELD_REF, TREE_TYPE (op),
- gimple_assign_rhs1 (def_stmt), op1, op2);
- if (!tem || !valid_gimple_rhs_p (tem))
- return false;
- gimple_assign_set_rhs_from_tree (gsi, tem);
- update_stmt (gsi_stmt (*gsi));
- return true;
- }
-
elem_type = TREE_TYPE (TREE_TYPE (op0));
if (TREE_TYPE (op) != elem_type)
return false;