diff options
author | zlomek <zlomek@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-09-01 05:06:25 +0000 |
---|---|---|
committer | zlomek <zlomek@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-09-01 05:06:25 +0000 |
commit | 734c48bb1a0a3e309ad570e890f15cf2b6e05325 (patch) | |
tree | 5b0d203422dc44311fe3d048d9db6a130f319b7f /gcc | |
parent | f9d88e1166427c5a7016a7467568bef80555d081 (diff) | |
download | gcc-734c48bb1a0a3e309ad570e890f15cf2b6e05325.tar.gz |
* c-typeck.c (build_binary_op): Kill BIT_ANDTC_EXPR.
* convert.c (convert_to_integer): Kill BIT_ANDTC_EXPR.
* fold-const.c (int_const_binop): Kill BIT_ANDTC_EXPR.
(fold): Kill BIT_ANDTC_EXPR and label bit_and.
* tree.def (BIT_ANDTC_EXPR): Kill.
* error.c (dump_expr): Kill BIT_ANDTC_EXPR.
* lex.c (init_operators): Kill BIT_ANDTC_EXPR.
* pt.c (tsubst_copy): Kill BIT_ANDTC_EXPR.
* typeck.c (build_binary_op): Kill BIT_ANDTC_EXPR.
(tsubst_copy_and_build): Kill BIT_ANDTC_EXPR.
* com.c (ffecom_overlap_): Kill BIT_ANDTC_EXPR.
(ffecom_tree_canonize_ref_): Kill BIT_ANDTC_EXPR.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70972 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/c-typeck.c | 1 | ||||
-rw-r--r-- | gcc/convert.c | 1 | ||||
-rw-r--r-- | gcc/cp/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/cp/error.c | 1 | ||||
-rw-r--r-- | gcc/cp/lex.c | 1 | ||||
-rw-r--r-- | gcc/cp/pt.c | 2 | ||||
-rw-r--r-- | gcc/cp/typeck.c | 1 | ||||
-rw-r--r-- | gcc/f/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/f/com.c | 2 | ||||
-rw-r--r-- | gcc/fold-const.c | 32 | ||||
-rw-r--r-- | gcc/tree.def | 1 |
12 files changed, 30 insertions, 33 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 05e09f8112a..ed09e54aeba 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2003-09-01 Josef Zlomek <zlomekj@suse.cz> + + * c-typeck.c (build_binary_op): Kill BIT_ANDTC_EXPR. + * convert.c (convert_to_integer): Kill BIT_ANDTC_EXPR. + * fold-const.c (int_const_binop): Kill BIT_ANDTC_EXPR. + (fold): Kill BIT_ANDTC_EXPR and label bit_and. + * tree.def (BIT_ANDTC_EXPR): Kill. + 2003-08-31 Nathanael Nerode <neroden@gcc.gnu.org> * configure.in: Remove uses of "for x in .. ${foo}" idiom. diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c index 530ac750cd1..1d5823c131f 100644 --- a/gcc/c-typeck.c +++ b/gcc/c-typeck.c @@ -6623,7 +6623,6 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1, break; case BIT_AND_EXPR: - case BIT_ANDTC_EXPR: case BIT_IOR_EXPR: case BIT_XOR_EXPR: if (code0 == INTEGER_TYPE && code1 == INTEGER_TYPE) diff --git a/gcc/convert.c b/gcc/convert.c index fe3f3ec2497..9096541fe2a 100644 --- a/gcc/convert.c +++ b/gcc/convert.c @@ -473,7 +473,6 @@ convert_to_integer (tree type, tree expr) case BIT_AND_EXPR: case BIT_IOR_EXPR: case BIT_XOR_EXPR: - case BIT_ANDTC_EXPR: trunc1: { tree arg0 = get_unwidened (TREE_OPERAND (expr, 0), type); diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index d0664230fd2..55635df2024 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,11 @@ +2003-09-01 Josef Zlomek <zlomekj@suse.cz> + + * error.c (dump_expr): Kill BIT_ANDTC_EXPR. + * lex.c (init_operators): Kill BIT_ANDTC_EXPR. + * pt.c (tsubst_copy): Kill BIT_ANDTC_EXPR. + * typeck.c (build_binary_op): Kill BIT_ANDTC_EXPR. + (tsubst_copy_and_build): Kill BIT_ANDTC_EXPR. + 2003-08-29 Mark Mitchell <mark@codesourcery.com> PR c++/12093 diff --git a/gcc/cp/error.c b/gcc/cp/error.c index aa7534ed086..d8d70e7286b 100644 --- a/gcc/cp/error.c +++ b/gcc/cp/error.c @@ -1486,7 +1486,6 @@ dump_expr (tree t, int flags) case BIT_IOR_EXPR: case BIT_XOR_EXPR: case BIT_AND_EXPR: - case BIT_ANDTC_EXPR: case TRUTH_ANDIF_EXPR: case TRUTH_ORIF_EXPR: case LT_EXPR: diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c index 49b8311bd79..4e602757eed 100644 --- a/gcc/cp/lex.c +++ b/gcc/cp/lex.c @@ -206,7 +206,6 @@ init_operators (void) operator_name_info [(int) ROUND_MOD_EXPR].name = "(round %)"; operator_name_info [(int) ABS_EXPR].name = "abs"; operator_name_info [(int) FFS_EXPR].name = "ffs"; - operator_name_info [(int) BIT_ANDTC_EXPR].name = "&~"; operator_name_info [(int) TRUTH_AND_EXPR].name = "strict &&"; operator_name_info [(int) TRUTH_OR_EXPR].name = "strict ||"; operator_name_info [(int) IN_EXPR].name = "in"; diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 6ae091e749c..0c5714363f1 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -7302,7 +7302,6 @@ tsubst_copy (tree t, tree args, tsubst_flags_t complain, tree in_decl) case ROUND_DIV_EXPR: case EXACT_DIV_EXPR: case BIT_AND_EXPR: - case BIT_ANDTC_EXPR: case BIT_IOR_EXPR: case BIT_XOR_EXPR: case TRUNC_MOD_EXPR: @@ -7985,7 +7984,6 @@ tsubst_copy_and_build (tree t, case ROUND_DIV_EXPR: case EXACT_DIV_EXPR: case BIT_AND_EXPR: - case BIT_ANDTC_EXPR: case BIT_IOR_EXPR: case BIT_XOR_EXPR: case TRUNC_MOD_EXPR: diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c index 65ce8a06c6b..91aab2f99e8 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -2808,7 +2808,6 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1, break; case BIT_AND_EXPR: - case BIT_ANDTC_EXPR: case BIT_IOR_EXPR: case BIT_XOR_EXPR: if (code0 == INTEGER_TYPE && code1 == INTEGER_TYPE) diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog index 99ffa7f4754..62a7941aad9 100644 --- a/gcc/f/ChangeLog +++ b/gcc/f/ChangeLog @@ -1,3 +1,8 @@ +2003-09-01 Josef Zlomek <zlomekj@suse.cz> + + * com.c (ffecom_overlap_): Kill BIT_ANDTC_EXPR. + (ffecom_tree_canonize_ref_): Kill BIT_ANDTC_EXPR. + Thu Jul 31 01:47:27 2003 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * com.c (ffecom_init_0): Use `dconsthalf'. diff --git a/gcc/f/com.c b/gcc/f/com.c index a6a9bf9061b..b5e6fddb067 100644 --- a/gcc/f/com.c +++ b/gcc/f/com.c @@ -1581,7 +1581,6 @@ ffecom_overlap_ (tree dest_decl, tree dest_offset, tree dest_size, case BIT_IOR_EXPR: case BIT_XOR_EXPR: case BIT_AND_EXPR: - case BIT_ANDTC_EXPR: case BIT_NOT_EXPR: case TRUTH_ANDIF_EXPR: case TRUTH_ORIF_EXPR: @@ -8891,7 +8890,6 @@ ffecom_tree_canonize_ref_ (tree *decl, tree *offset, tree *size, tree t) case BIT_IOR_EXPR: case BIT_XOR_EXPR: case BIT_AND_EXPR: - case BIT_ANDTC_EXPR: case BIT_NOT_EXPR: case TRUTH_ANDIF_EXPR: case TRUTH_ORIF_EXPR: diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 68a92a2ed38..27a3da15e4c 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -1108,10 +1108,6 @@ int_const_binop (enum tree_code code, tree arg1, tree arg2, int notrunc) low = int1l & int2l, hi = int1h & int2h; break; - case BIT_ANDTC_EXPR: - low = int1l & ~int2l, hi = int1h & ~int2h; - break; - case RSHIFT_EXPR: int2l = -int2l; case LSHIFT_EXPR: @@ -6316,7 +6312,6 @@ fold (tree expr) goto bit_rotate; case BIT_AND_EXPR: - bit_and: if (integer_all_onesp (arg1)) return non_lvalue (convert (type, arg0)); if (integer_zerop (arg1)) @@ -6354,19 +6349,6 @@ fold (tree expr) goto associate; - case BIT_ANDTC_EXPR: - if (integer_all_onesp (arg0)) - return non_lvalue (convert (type, arg1)); - if (integer_zerop (arg0)) - return omit_one_operand (type, arg0, arg1); - if (TREE_CODE (arg1) == INTEGER_CST) - { - arg1 = fold (build1 (BIT_NOT_EXPR, type, arg1)); - code = BIT_AND_EXPR; - goto bit_and; - } - goto binary; - case RDIV_EXPR: /* Don't touch a floating-point divide by zero unless the mode of the constant can represent infinity. */ @@ -6649,7 +6631,6 @@ fold (tree expr) permute the two operations. */ if (code == RROTATE_EXPR && TREE_CODE (arg1) == INTEGER_CST && (TREE_CODE (arg0) == BIT_AND_EXPR - || TREE_CODE (arg0) == BIT_ANDTC_EXPR || TREE_CODE (arg0) == BIT_IOR_EXPR || TREE_CODE (arg0) == BIT_XOR_EXPR) && TREE_CODE (TREE_OPERAND (arg0, 1)) == INTEGER_CST) @@ -7418,8 +7399,11 @@ fold (tree expr) && TREE_CODE (arg1) == INTEGER_CST && TREE_CODE (TREE_OPERAND (arg0, 1)) == INTEGER_CST) { - tree dandnotc = fold (build (BIT_ANDTC_EXPR, TREE_TYPE (arg0), - arg1, TREE_OPERAND (arg0, 1))); + tree dandnotc + = fold (build (BIT_AND_EXPR, TREE_TYPE (arg0), + arg1, build1 (BIT_NOT_EXPR, + TREE_TYPE (TREE_OPERAND (arg0, 1)), + TREE_OPERAND (arg0, 1)))); tree rslt = code == EQ_EXPR ? integer_zero_node : integer_one_node; if (integer_nonzerop (dandnotc)) return omit_one_operand (type, rslt, arg0); @@ -7432,8 +7416,10 @@ fold (tree expr) && TREE_CODE (arg1) == INTEGER_CST && TREE_CODE (TREE_OPERAND (arg0, 1)) == INTEGER_CST) { - tree candnotd = fold (build (BIT_ANDTC_EXPR, TREE_TYPE (arg0), - TREE_OPERAND (arg0, 1), arg1)); + tree candnotd + = fold (build (BIT_AND_EXPR, TREE_TYPE (arg0), + TREE_OPERAND (arg0, 1), + build1 (BIT_NOT_EXPR, TREE_TYPE (arg1), arg1))); tree rslt = code == EQ_EXPR ? integer_zero_node : integer_one_node; if (integer_nonzerop (candnotd)) return omit_one_operand (type, rslt, arg0); diff --git a/gcc/tree.def b/gcc/tree.def index 085f9e47857..553e4ed930a 100644 --- a/gcc/tree.def +++ b/gcc/tree.def @@ -638,7 +638,6 @@ DEFTREECODE (RROTATE_EXPR, "rrotate_expr", '2', 2) DEFTREECODE (BIT_IOR_EXPR, "bit_ior_expr", '2', 2) DEFTREECODE (BIT_XOR_EXPR, "bit_xor_expr", '2', 2) DEFTREECODE (BIT_AND_EXPR, "bit_and_expr", '2', 2) -DEFTREECODE (BIT_ANDTC_EXPR, "bit_andtc_expr", '2', 2) DEFTREECODE (BIT_NOT_EXPR, "bit_not_expr", '1', 1) /* ANDIF and ORIF allow the second operand not to be computed if the |