From: Richard Sandiford Date: Tue, 6 Jan 2009 21:58:46 +0000 (+0000) Subject: re PR rtl-optimization/38426 (Incorrect code produced with -momit-leaf-frame-pointer... X-Git-Tag: releases/gcc-4.4.0~996 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ace984c85138fbc4aa823a3aae0d0eba2d117437;p=thirdparty%2Fgcc.git re PR rtl-optimization/38426 (Incorrect code produced with -momit-leaf-frame-pointer -fno-unit-at-a-time) gcc/ PR rtl-optimization/38426. * ira.c (ira): Set current_function_is_leaf earlier. From-SVN: r143135 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8dafe634ff39..942d733ed531 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2009-01-06 Richard Sandiford + + PR rtl-optimization/38426. + * ira.c (ira): Set current_function_is_leaf earlier. + 2009-01-06 Jakub Jelinek PR rtl-optimization/38722 diff --git a/gcc/ira.c b/gcc/ira.c index 2273512ec23d..5830bae16348 100644 --- a/gcc/ira.c +++ b/gcc/ira.c @@ -1879,6 +1879,11 @@ ira (FILE *f) if (warn_clobbered) generate_setjmp_warnings (); + /* Determine if the current function is a leaf before running IRA + since this can impact optimizations done by the prologue and + epilogue thus changing register elimination offsets. */ + current_function_is_leaf = leaf_function_p (); + rebuild_p = update_equiv_regs (); #ifndef IRA_NO_OBSTACK @@ -1977,11 +1982,6 @@ ira (FILE *f) delete_trivially_dead_insns (get_insns (), max_reg_num ()); max_regno = max_reg_num (); - /* Determine if the current function is a leaf before running IRA - since this can impact optimizations done by the prologue and - epilogue thus changing register elimination offsets. */ - current_function_is_leaf = leaf_function_p (); - /* And the reg_equiv_memory_loc array. */ VEC_safe_grow (rtx, gc, reg_equiv_memory_loc_vec, max_regno); memset (VEC_address (rtx, reg_equiv_memory_loc_vec), 0,