re PR tree-optimization/57361 (Remove self memory assignment)

2013-06-12  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/57361
gcc/
	* tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.

gcc/testsuite/
	* gcc.dg/tree-ssa/pr57361.c: New file.

From-SVN: r200034
This commit is contained in:
Marc Glisse 2013-06-12 19:56:30 +02:00 committed by Marc Glisse
parent 8b033a8a92
commit 1951f1016c
4 changed files with 26 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2013-06-12 Marc Glisse <marc.glisse@inria.fr>
PR tree-optimization/57361
* tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
2013-06-12 Sofiane Naci <sofiane.naci@arm.com> 2013-06-12 Sofiane Naci <sofiane.naci@arm.com>
* config/aarch64/aarch64-simd.md (aarch64_combine<mode>): convert to split. * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): convert to split.

View File

@ -1,3 +1,8 @@
2013-06-12 Marc Glisse <marc.glisse@inria.fr>
PR tree-optimization/57361
* gcc.dg/tree-ssa/pr57361.c: New file.
2013-06-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 2013-06-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* gcc.target/arm/unaligned-memcpy-4.c (src, dst): Initialize * gcc.target/arm/unaligned-memcpy-4.c (src, dst): Initialize

View File

@ -0,0 +1,9 @@
/* { dg-do compile } */
/* { dg-options "-O -fdump-tree-dse1-details" } */
struct A { int x; double y; };
void f (struct A *a) {
*a = *a;
}
/* { dg-final { scan-tree-dump "Deleted dead store" "dse1"} } */

View File

@ -84,6 +84,13 @@ dse_possible_dead_store_p (gimple stmt, gimple *use_stmt)
*use_stmt = NULL; *use_stmt = NULL;
/* Self-assignments are zombies. */
if (operand_equal_p (gimple_assign_rhs1 (stmt), gimple_assign_lhs (stmt), 0))
{
*use_stmt = stmt;
return true;
}
/* Find the first dominated statement that clobbers (part of) the /* Find the first dominated statement that clobbers (part of) the
memory stmt stores to with no intermediate statement that may use memory stmt stores to with no intermediate statement that may use
part of the memory stmt stores. That is, find a store that may part of the memory stmt stores. That is, find a store that may