diff options
author | Richard Biener <rguenther@suse.de> | 2019-11-05 13:29:52 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2019-11-05 13:29:52 +0000 |
commit | c265dfbf748e9fc3006a0f844294ef2cea145d71 (patch) | |
tree | b5cdf144d28fdfcf0ed650dd26cbbf9b6e682513 /gcc/tree-ssa-forwprop.c | |
parent | d9adca6e663070311c73cbd7dc9d73e7713aa315 (diff) | |
download | gcc-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.c | 15 |
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; |