re PR tree-optimization/51091 (FAIL: gcc.dg/tree-ssa/stdarg-2.c scan-tree-dump stdarg)

PR tree-optimization/51091
	* tree-stdarg.c (execute_optimize_stdarg): Ignore TREE_CLOBBER_P
	rhs also in the va_list_simple_ptr case.

From-SVN: r181299
This commit is contained in:
Jakub Jelinek 2011-11-11 20:57:23 +01:00 committed by Jakub Jelinek
parent dd34c087ff
commit bad2545327
2 changed files with 11 additions and 2 deletions

View File

@ -1,5 +1,9 @@
2011-11-11 Jakub Jelinek <jakub@redhat.com> 2011-11-11 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/51091
* tree-stdarg.c (execute_optimize_stdarg): Ignore TREE_CLOBBER_P
rhs also in the va_list_simple_ptr case.
PR tree-optimization/51058 PR tree-optimization/51058
* tree-vect-slp.c (vect_remove_slp_scalar_calls): New function. * tree-vect-slp.c (vect_remove_slp_scalar_calls): New function.
(vect_schedule_slp): Call it. (vect_schedule_slp): Call it.

View File

@ -1,5 +1,5 @@
/* Pass computing data for optimizing stdarg functions. /* Pass computing data for optimizing stdarg functions.
Copyright (C) 2004, 2005, 2007, 2008, 2009, 2010 Copyright (C) 2004, 2005, 2007, 2008, 2009, 2010, 2011
Free Software Foundation, Inc. Free Software Foundation, Inc.
Contributed by Jakub Jelinek <jakub@redhat.com> Contributed by Jakub Jelinek <jakub@redhat.com>
@ -847,8 +847,12 @@ execute_optimize_stdarg (void)
if (get_gimple_rhs_class (gimple_assign_rhs_code (stmt)) if (get_gimple_rhs_class (gimple_assign_rhs_code (stmt))
== GIMPLE_SINGLE_RHS) == GIMPLE_SINGLE_RHS)
{ {
/* Check for ap ={v} {}. */
if (TREE_CLOBBER_P (rhs))
continue;
/* Check for tem = ap. */ /* Check for tem = ap. */
if (va_list_ptr_read (&si, rhs, lhs)) else if (va_list_ptr_read (&si, rhs, lhs))
continue; continue;
/* Check for the last insn in: /* Check for the last insn in:
@ -875,6 +879,7 @@ execute_optimize_stdarg (void)
/* Check for ap ={v} {}. */ /* Check for ap ={v} {}. */
if (TREE_CLOBBER_P (rhs)) if (TREE_CLOBBER_P (rhs))
continue; continue;
/* Check for ap[0].field = temp. */ /* Check for ap[0].field = temp. */
else if (va_list_counter_struct_op (&si, lhs, rhs, true)) else if (va_list_counter_struct_op (&si, lhs, rhs, true))
continue; continue;