re PR tree-optimization/29984 (SPE GCC segfaults with MAX_EXPR <a, a>)
2006-11-28 Andrew Pinski <pinskia@gmail.com> PR tree-opt/29984 * gcc.dg/tree-ssa/reassoc-12.c: New test. 2006-11-28 Andrew Pinski <pinskia@gmail.com> PR tree-opt/29984 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Handle MAX_EXPR and MIN_EXRP. From-SVN: r119303
This commit is contained in:
parent
fd074cfecc
commit
e969dbde29
4 changed files with 27 additions and 3 deletions
|
@ -1,3 +1,9 @@
|
|||
2006-11-28 Andrew Pinski <pinskia@gmail.com>
|
||||
|
||||
PR tree-opt/29984
|
||||
* tree-ssa-reassoc.c (eliminate_duplicate_pair): Handle MAX_EXPR
|
||||
and MIN_EXRP.
|
||||
|
||||
2006-11-28 Bob Wilson <bob.wilson@acm.org>
|
||||
|
||||
* config/xtensa/lib1funcs.asm (__umulsidi3): Restore a12-a15 on exit.
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2006-11-28 Andrew Pinski <pinskia@gmail.com>
|
||||
|
||||
PR tree-opt/29984
|
||||
* gcc.dg/tree-ssa/reassoc-12.c: New test.
|
||||
|
||||
2006-11-28 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* gcc.dg/memcpy-1.c: New test.
|
||||
|
|
11
gcc/testsuite/gcc.dg/tree-ssa/reassoc-12.c
Normal file
11
gcc/testsuite/gcc.dg/tree-ssa/reassoc-12.c
Normal file
|
@ -0,0 +1,11 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fdump-tree-reassoc1-details" } */
|
||||
int f(int a, int b)
|
||||
{
|
||||
/* MAX_EXPR <a, a> should cause it to be equivalent to a. */
|
||||
int c = a>=b?a:b;
|
||||
int d = c>=a?c:a;
|
||||
return d;
|
||||
}
|
||||
/* { dg-final { scan-tree-dump-times "Equivalence:" 1 "reassoc1"} } */
|
||||
/* { dg-final { cleanup-tree-dump "reassoc1" } } */
|
|
@ -417,8 +417,8 @@ eliminate_duplicate_pair (enum tree_code opcode,
|
|||
operand_entry_t last)
|
||||
{
|
||||
|
||||
/* If we have two of the same op, and the opcode is & or |, we can
|
||||
eliminate one of them.
|
||||
/* If we have two of the same op, and the opcode is & |, min, or max,
|
||||
we can eliminate one of them.
|
||||
If we have two of the same op, and the opcode is ^, we can
|
||||
eliminate both of them. */
|
||||
|
||||
|
@ -426,13 +426,15 @@ eliminate_duplicate_pair (enum tree_code opcode,
|
|||
{
|
||||
switch (opcode)
|
||||
{
|
||||
case MAX_EXPR:
|
||||
case MIN_EXPR:
|
||||
case BIT_IOR_EXPR:
|
||||
case BIT_AND_EXPR:
|
||||
if (dump_file && (dump_flags & TDF_DETAILS))
|
||||
{
|
||||
fprintf (dump_file, "Equivalence: ");
|
||||
print_generic_expr (dump_file, curr->op, 0);
|
||||
fprintf (dump_file, " [&|] ");
|
||||
fprintf (dump_file, " [&|minmax] ");
|
||||
print_generic_expr (dump_file, last->op, 0);
|
||||
fprintf (dump_file, " -> ");
|
||||
print_generic_stmt (dump_file, last->op, 0);
|
||||
|
|
Loading…
Add table
Reference in a new issue