OSDN Git Service

PR middle-end/40815
authormkuvyrkov <mkuvyrkov@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 8 Apr 2010 08:20:36 +0000 (08:20 +0000)
committerMasaki Muranaka <monaka@monami-software.com>
Sun, 23 May 2010 05:17:43 +0000 (14:17 +0900)
* tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
(negate_value): Move code to push elements to broken_up_substracts ...
(eliminate_plus_minus_pair): ... here.  Push operands that have no
negative pair to plus_negates.
(repropagate_negates, init_reassoc, fini_reassoc): Update.

PR middle-end/40815
* gcc.dg/tree-ssa/reassoc-19.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158105 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/tree-ssa-reassoc.c

index 0ff57fd..761ecc2 100644 (file)
@@ -1,3 +1,12 @@
+2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       PR middle-end/40815
+       * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
+       (negate_value): Move code to push elements to broken_up_substracts ...
+       (eliminate_plus_minus_pair): ... here.  Push operands that have no
+       negative pair to plus_negates.
+       (repropagate_negates, init_reassoc, fini_reassoc): Update.
+
 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        * doc/install.texi (Configuration): Move description of
index 3674a26..ff405cd 100644 (file)
@@ -1,3 +1,8 @@
+2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       PR middle-end/40815
+       * gcc.dg/tree-ssa/reassoc-19.c: New.
+
 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
 
        PR c/18624
index ae630e5..cfb0642 100644 (file)
@@ -489,11 +489,11 @@ eliminate_duplicate_pair (enum tree_code opcode,
 
 static VEC(tree, heap) *plus_negates;
 
-/* If OPCODE is PLUS_EXPR, CURR->OP is a negate expression or a bitwise not
-   expression, look in OPS for a corresponding positive operation to cancel
-   it out.  If we find one, remove the other from OPS, replace
-   OPS[CURRINDEX] with 0 or -1, respectively, and return true.  Otherwise,
-   return false. */
+/* If OPCODE is PLUS_EXPR, CURR->OP is really a negate expression,
+   look in OPS for a corresponding positive operation to cancel it
+   out.  If we find one, remove the other from OPS, replace
+   OPS[CURRINDEX] with 0, and return true.  Otherwise, return
+   false. */
 
 static bool
 eliminate_plus_minus_pair (enum tree_code opcode,
@@ -567,8 +567,7 @@ eliminate_plus_minus_pair (enum tree_code opcode,
 
   /* CURR->OP is a negate expr in a plus expr: save it for later
      inspection in repropagate_negates().  */
-  if (negateop != NULL_TREE)
-    VEC_safe_push (tree, heap, plus_negates, curr->op);
+  VEC_safe_push (tree, heap, plus_negates, curr->op);
 
   return false;
 }