Hello,
well the bonus points might gain somebody else ... But this adds a
missing optimization
for tree level implemented in fold-const.
ChangeLog gcc/
2011-04-20 Kai Tietz
* fold-const.c (fold_binary_loc): Add handling for
(X ~Y) | (~X Y) and (X !Y) | (!X Y) optimization
On 04/20/2011 08:22 AM, Kai Tietz wrote:
+ if (TREE_CODE (arg0) == BIT_AND_EXPR
+TREE_CODE (arg1) == BIT_AND_EXPR)
+{
+ tree a0, a1, l0, l1, n0, n1;
+
+ a0 = fold_convert_loc (loc, type, TREE_OPERAND (arg1, 0));
+ a1 = fold_convert_loc (loc, type,
2011/4/20 Richard Henderson r...@redhat.com:
On 04/20/2011 08:22 AM, Kai Tietz wrote:
+ if (TREE_CODE (arg0) == BIT_AND_EXPR
+ TREE_CODE (arg1) == BIT_AND_EXPR)
+ {
+ tree a0, a1, l0, l1, n0, n1;
+
+ a0 = fold_convert_loc (loc, type, TREE_OPERAND (arg1, 0));
On 04/20/2011 08:50 AM, Kai Tietz wrote:
+ if (TREE_CODE (arg0) == TREE_CODE (arg1)
+TREE_CODE (arg1) == TRUTH_AND_EXPR)
Ok with these both explicitly testing TRUTH_AND_EXPR now.
r~
2011/4/20 Jakub Jelinek ja...@redhat.com:
On Wed, Apr 20, 2011 at 05:22:31PM +0200, Kai Tietz wrote:
--- gcc.orig/gcc/fold-const.c 2011-04-20 17:10:39.478091900 +0200
+++ gcc/gcc/fold-const.c 2011-04-20 17:11:22.901039400 +0200
@@ -10660,6 +10660,28 @@ fold_binary_loc (location_t loc,
2011/4/20 Richard Henderson r...@redhat.com:
On 04/20/2011 08:50 AM, Kai Tietz wrote:
+ if (TREE_CODE (arg0) == TREE_CODE (arg1)
+ TREE_CODE (arg1) == TRUTH_AND_EXPR)
Ok with these both explicitly testing TRUTH_AND_EXPR now.
r~
Committed at revision 172776 with explicit