From 4b4d1c3b10f0666c1b6775e7ad3775969f35601b Mon Sep 17 00:00:00 2001 From: jakub Date: Fri, 11 Nov 2011 19:57:23 +0000 Subject: [PATCH] PR tree-optimization/51091 * tree-stdarg.c (execute_optimize_stdarg): Ignore TREE_CLOBBER_P rhs also in the va_list_simple_ptr case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181299 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 4 ++++ gcc/tree-stdarg.c | 9 +++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 60d97d15c8f..40c57d161cb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2011-11-11 Jakub Jelinek + 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 * tree-vect-slp.c (vect_remove_slp_scalar_calls): New function. (vect_schedule_slp): Call it. diff --git a/gcc/tree-stdarg.c b/gcc/tree-stdarg.c index ef898ee5bbd..9b7a126b1ef 100644 --- a/gcc/tree-stdarg.c +++ b/gcc/tree-stdarg.c @@ -1,5 +1,5 @@ /* 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. Contributed by Jakub Jelinek @@ -847,8 +847,12 @@ execute_optimize_stdarg (void) if (get_gimple_rhs_class (gimple_assign_rhs_code (stmt)) == GIMPLE_SINGLE_RHS) { + /* Check for ap ={v} {}. */ + if (TREE_CLOBBER_P (rhs)) + continue; + /* Check for tem = ap. */ - if (va_list_ptr_read (&si, rhs, lhs)) + else if (va_list_ptr_read (&si, rhs, lhs)) continue; /* Check for the last insn in: @@ -875,6 +879,7 @@ execute_optimize_stdarg (void) /* Check for ap ={v} {}. */ if (TREE_CLOBBER_P (rhs)) continue; + /* Check for ap[0].field = temp. */ else if (va_list_counter_struct_op (&si, lhs, rhs, true)) continue; -- 2.11.0