Commit 20cb2258 by Marc Glisse Committed by Marc Glisse

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
parent cd47dfd0
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> 2014-06-25 Nick Clifton <nickc@redhat.com>
* config/v850/v850.c (GHS_default_section_names): Change to const * config/v850/v850.c (GHS_default_section_names): Change to const
......
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> 2014-06-25 Richard Biener <rguenther@suse.de>
PR testsuite/61560 PR testsuite/61560
......
/* { 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" } } */
...@@ -1653,6 +1653,8 @@ handle_builtin_memset (gimple_stmt_iterator *gsi) ...@@ -1653,6 +1653,8 @@ handle_builtin_memset (gimple_stmt_iterator *gsi)
gimple_stmt_iterator gsi1 = gsi_for_stmt (stmt1); gimple_stmt_iterator gsi1 = gsi_for_stmt (stmt1);
update_gimple_call (&gsi1, builtin_decl_implicit (BUILT_IN_CALLOC), 2, update_gimple_call (&gsi1, builtin_decl_implicit (BUILT_IN_CALLOC), 2,
size, build_one_cst (size_type_node)); size, build_one_cst (size_type_node));
si1->length = build_int_cst (size_type_node, 0);
si1->stmt = gsi_stmt (gsi1);
} }
else else
return true; return true;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment