From: Richard Guenther Date: Wed, 7 Apr 2010 14:34:35 +0000 (+0000) Subject: tree-ssa-forwprop.c (forward_propagate_addr_expr): Propagate constants everywhere. X-Git-Tag: releases/gcc-4.6.0~8034 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=95d938ee6f8d45d9e51c05bea7cb1b7dd695bbf4;p=thirdparty%2Fgcc.git tree-ssa-forwprop.c (forward_propagate_addr_expr): Propagate constants everywhere. 2010-04-07 Richard Guenther * tree-ssa-forwprop.c (forward_propagate_addr_expr): Propagate constants everywhere. From-SVN: r158063 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0840425687f7..20aa611e134d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-04-07 Richard Guenther + + * tree-ssa-forwprop.c (forward_propagate_addr_expr): + Propagate constants everywhere. + 2010-04-07 Jakub Jelinek PR debug/43516 diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c index 215179593701..d7d378b0f929 100644 --- a/gcc/tree-ssa-forwprop.c +++ b/gcc/tree-ssa-forwprop.c @@ -955,9 +955,10 @@ forward_propagate_addr_expr (tree name, tree rhs) } /* If the use is in a deeper loop nest, then we do not want - to propagate the ADDR_EXPR into the loop as that is likely - adding expression evaluations into the loop. */ - if (gimple_bb (use_stmt)->loop_depth > stmt_loop_depth) + to propagate non-invariant ADDR_EXPRs into the loop as that + is likely adding expression evaluations into the loop. */ + if (gimple_bb (use_stmt)->loop_depth > stmt_loop_depth + && !is_gimple_min_invariant (rhs)) { all = false; continue;