From: Kai Tietz Date: Wed, 27 Jul 2011 14:59:40 +0000 (+0200) Subject: gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR expression handling. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=eb9820c0a3df0746ca13cbe767a2d39ef0a8c751;p=gcc.git gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR expression handling. 2011-07-27 Kai Tietz * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR expression handling. (and_var_with_comparison_1): Likewise. From-SVN: r176827 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bdb1b612ccb..996bb931166 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-07-27 Kai Tietz + + * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR + expression handling. + (and_var_with_comparison_1): Likewise. + 2011-07-27 Aldy Hernandez * params.h (ALLOW_STORE_DATA_RACES): New. diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c index d1c5c89546f..cc89b2fd4fb 100644 --- a/gcc/gimple-fold.c +++ b/gcc/gimple-fold.c @@ -1937,17 +1937,15 @@ and_var_with_comparison_1 (gimple stmt, /* If the definition is an AND or OR expression, we may be able to simplify by reassociating. */ - if (innercode == TRUTH_AND_EXPR - || innercode == TRUTH_OR_EXPR - || (TREE_CODE (TREE_TYPE (var)) == BOOLEAN_TYPE - && (innercode == BIT_AND_EXPR || innercode == BIT_IOR_EXPR))) + if (TREE_CODE (TREE_TYPE (var)) == BOOLEAN_TYPE + && (innercode == BIT_AND_EXPR || innercode == BIT_IOR_EXPR)) { tree inner1 = gimple_assign_rhs1 (stmt); tree inner2 = gimple_assign_rhs2 (stmt); gimple s; tree t; tree partial = NULL_TREE; - bool is_and = (innercode == TRUTH_AND_EXPR || innercode == BIT_AND_EXPR); + bool is_and = (innercode == BIT_AND_EXPR); /* Check for boolean identities that don't require recursive examination of inner1/inner2: @@ -2069,6 +2067,7 @@ and_comparisons_1 (enum tree_code code1, tree op1a, tree op1b, if (operand_equal_p (op1a, op2a, 0) && operand_equal_p (op1b, op2b, 0)) { + /* Result will be either NULL_TREE, or a combined comparison. */ tree t = combine_comparisons (UNKNOWN_LOCATION, TRUTH_ANDIF_EXPR, code1, code2, boolean_type_node, op1a, op1b); @@ -2080,6 +2079,7 @@ and_comparisons_1 (enum tree_code code1, tree op1a, tree op1b, if (operand_equal_p (op1a, op2b, 0) && operand_equal_p (op1b, op2a, 0)) { + /* Result will be either NULL_TREE, or a combined comparison. */ tree t = combine_comparisons (UNKNOWN_LOCATION, TRUTH_ANDIF_EXPR, code1, swap_tree_comparison (code2), @@ -2398,17 +2398,15 @@ or_var_with_comparison_1 (gimple stmt, /* If the definition is an AND or OR expression, we may be able to simplify by reassociating. */ - if (innercode == TRUTH_AND_EXPR - || innercode == TRUTH_OR_EXPR - || (TREE_CODE (TREE_TYPE (var)) == BOOLEAN_TYPE - && (innercode == BIT_AND_EXPR || innercode == BIT_IOR_EXPR))) + if (TREE_CODE (TREE_TYPE (var)) == BOOLEAN_TYPE + && (innercode == BIT_AND_EXPR || innercode == BIT_IOR_EXPR)) { tree inner1 = gimple_assign_rhs1 (stmt); tree inner2 = gimple_assign_rhs2 (stmt); gimple s; tree t; tree partial = NULL_TREE; - bool is_or = (innercode == TRUTH_OR_EXPR || innercode == BIT_IOR_EXPR); + bool is_or = (innercode == BIT_IOR_EXPR); /* Check for boolean identities that don't require recursive examination of inner1/inner2: @@ -2531,6 +2529,7 @@ or_comparisons_1 (enum tree_code code1, tree op1a, tree op1b, if (operand_equal_p (op1a, op2a, 0) && operand_equal_p (op1b, op2b, 0)) { + /* Result will be either NULL_TREE, or a combined comparison. */ tree t = combine_comparisons (UNKNOWN_LOCATION, TRUTH_ORIF_EXPR, code1, code2, boolean_type_node, op1a, op1b); @@ -2542,6 +2541,7 @@ or_comparisons_1 (enum tree_code code1, tree op1a, tree op1b, if (operand_equal_p (op1a, op2b, 0) && operand_equal_p (op1b, op2a, 0)) { + /* Result will be either NULL_TREE, or a combined comparison. */ tree t = combine_comparisons (UNKNOWN_LOCATION, TRUTH_ORIF_EXPR, code1, swap_tree_comparison (code2),