re PR middle-end/52285 (libgcrypt _gcry_burn_stack slowdown)

PR tree-optimization/52285
	* tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
	when deciding if a call is a tail call or tail recursion.

From-SVN: r184317
This commit is contained in:
Jakub Jelinek 2012-02-16 23:20:27 +01:00 committed by Jakub Jelinek
parent 60a3da27fe
commit ca786352c5
2 changed files with 12 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2012-02-16 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/52285
* tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
when deciding if a call is a tail call or tail recursion.
2012-02-16 Kai Tietz <ktietz@redhat.com>
* config/i386/i386.c (legitimate_pic_address_disp_p): Allow

View File

@ -1,5 +1,5 @@
/* Tail call optimization on trees.
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
Free Software Foundation, Inc.
This file is part of GCC.
@ -400,9 +400,10 @@ find_tail_calls (basic_block bb, struct tailcall **ret)
{
stmt = gsi_stmt (gsi);
/* Ignore labels, returns and debug stmts. */
/* Ignore labels, returns, clobbers and debug stmts. */
if (gimple_code (stmt) == GIMPLE_LABEL
|| gimple_code (stmt) == GIMPLE_RETURN
|| gimple_clobber_p (stmt)
|| is_gimple_debug (stmt))
continue;
@ -523,6 +524,9 @@ find_tail_calls (basic_block bb, struct tailcall **ret)
if (gimple_code (stmt) == GIMPLE_RETURN)
break;
if (gimple_clobber_p (stmt))
continue;
if (is_gimple_debug (stmt))
continue;