diff options
author | Richard Biener <rguenther@suse.de> | 2014-11-12 13:45:48 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2014-11-12 13:45:48 +0000 |
commit | eaeba53a031a1ea6ab493fc752acec00889d4f0b (patch) | |
tree | 44d9afdc5f87319907d339ab2c182c28db164012 /gcc/fold-const.c | |
parent | 2079956a87de079b4a04ac938141e437e60bbff8 (diff) | |
download | gcc-eaeba53a031a1ea6ab493fc752acec00889d4f0b.zip gcc-eaeba53a031a1ea6ab493fc752acec00889d4f0b.tar.gz gcc-eaeba53a031a1ea6ab493fc752acec00889d4f0b.tar.bz2 |
match.pd: Implement simple complex operations cancelling.
2014-11-12 Richard Biener <rguenther@suse.de>
* match.pd: Implement simple complex operations cancelling.
* fold-const.c (fold_unary_loc): Remove them here.
* gcc.dg/tree-ssa/ssa-fre-32.c: Disable forwprop.
From-SVN: r217421
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r-- | gcc/fold-const.c | 13 |
1 files changed, 0 insertions, 13 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 756f469..82e2414 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -7988,9 +7988,6 @@ fold_unary_loc (location_t loc, enum tree_code code, tree type, tree op0) case REALPART_EXPR: if (TREE_CODE (TREE_TYPE (arg0)) != COMPLEX_TYPE) return fold_convert_loc (loc, type, arg0); - if (TREE_CODE (arg0) == COMPLEX_EXPR) - return omit_one_operand_loc (loc, type, TREE_OPERAND (arg0, 0), - TREE_OPERAND (arg0, 1)); if (TREE_CODE (arg0) == COMPLEX_CST) return fold_convert_loc (loc, type, TREE_REALPART (arg0)); if (TREE_CODE (arg0) == PLUS_EXPR || TREE_CODE (arg0) == MINUS_EXPR) @@ -8031,9 +8028,6 @@ fold_unary_loc (location_t loc, enum tree_code code, tree type, tree op0) case IMAGPART_EXPR: if (TREE_CODE (TREE_TYPE (arg0)) != COMPLEX_TYPE) return build_zero_cst (type); - if (TREE_CODE (arg0) == COMPLEX_EXPR) - return omit_one_operand_loc (loc, type, TREE_OPERAND (arg0, 1), - TREE_OPERAND (arg0, 0)); if (TREE_CODE (arg0) == COMPLEX_CST) return fold_convert_loc (loc, type, TREE_IMAGPART (arg0)); if (TREE_CODE (arg0) == PLUS_EXPR || TREE_CODE (arg0) == MINUS_EXPR) @@ -13350,13 +13344,6 @@ fold_binary_loc (location_t loc, || (TREE_CODE (arg0) == INTEGER_CST && TREE_CODE (arg1) == INTEGER_CST)) return build_complex (type, arg0, arg1); - if (TREE_CODE (arg0) == REALPART_EXPR - && TREE_CODE (arg1) == IMAGPART_EXPR - && TREE_TYPE (TREE_OPERAND (arg0, 0)) == type - && operand_equal_p (TREE_OPERAND (arg0, 0), - TREE_OPERAND (arg1, 0), 0)) - return omit_one_operand_loc (loc, type, TREE_OPERAND (arg0, 0), - TREE_OPERAND (arg1, 0)); return NULL_TREE; case ASSERT_EXPR: |