re PR tree-optimization/57742 (memset(malloc(n),0,n) -> calloc(n,1))

2014-06-25  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/57742
gcc/
	* tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
	after replacing the statement.
gcc/testsuite/
	* gcc.dg/tree-ssa/calloc-3.c: New file.

From-SVN: r211977
This commit is contained in:
Marc Glisse 2014-06-25 14:27:13 +02:00 committed by Marc Glisse
parent cd47dfd0c5
commit 20cb2258ec
4 changed files with 27 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2014-06-25 Marc Glisse <marc.glisse@inria.fr>
PR tree-optimization/57742
* tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
after replacing the statement.
2014-06-25 Nick Clifton <nickc@redhat.com>
* config/v850/v850.c (GHS_default_section_names): Change to const

View File

@ -1,3 +1,8 @@
2014-06-25 Marc Glisse <marc.glisse@inria.fr>
PR tree-optimization/57742
* gcc.dg/tree-ssa/calloc-3.c: New file.
2014-06-25 Richard Biener <rguenther@suse.de>
PR testsuite/61560

View File

@ -0,0 +1,14 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-optimized" } */
void*f(){
char*p=__builtin_malloc(42);
__builtin_memset(p,0,42);
__builtin_memset(p,0,42);
return p;
};
/* { dg-final { scan-tree-dump-not "malloc" "optimized" } } */
/* { dg-final { scan-tree-dump-times "calloc" 1 "optimized" } } */
/* { dg-final { scan-tree-dump-not "memset" "optimized" } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */

View File

@ -1653,6 +1653,8 @@ handle_builtin_memset (gimple_stmt_iterator *gsi)
gimple_stmt_iterator gsi1 = gsi_for_stmt (stmt1);
update_gimple_call (&gsi1, builtin_decl_implicit (BUILT_IN_CALLOC), 2,
size, build_one_cst (size_type_node));
si1->length = build_int_cst (size_type_node, 0);
si1->stmt = gsi_stmt (gsi1);
}
else
return true;