From: Mike Stump Date: Fri, 21 Oct 2011 02:14:32 +0000 (+0000) Subject: regcprop.c (copyprop_hardreg_forward_1): Update recog_data after validate_change... X-Git-Tag: releases/gcc-4.7.0~2926 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3147591f604b6ce925c1e7d39e62ec973472af58;p=thirdparty%2Fgcc.git regcprop.c (copyprop_hardreg_forward_1): Update recog_data after validate_change wipes it out. * regcprop.c (copyprop_hardreg_forward_1): Update recog_data after validate_change wipes it out. From-SVN: r180284 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3b5fc23e9063..a76979d8f753 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-10-20 Mike Stump + + * regcprop.c (copyprop_hardreg_forward_1): Update recog_data + after validate_change wipes it out. + 2011-10-20 Ulrich Weigand * config/spu/spu.md ("vec_permv16qi"): Reduce selector modulo 32 diff --git a/gcc/regcprop.c b/gcc/regcprop.c index aca005d7afd9..ad92a64cc298 100644 --- a/gcc/regcprop.c +++ b/gcc/regcprop.c @@ -840,6 +840,12 @@ copyprop_hardreg_forward_1 (basic_block bb, struct value_data *vd) changed = true; goto did_replacement; } + /* We need to re-extract as validate_change clobbers + recog_data. */ + extract_insn (insn); + if (! constrain_operands (1)) + fatal_insn_not_found (insn); + preprocess_constraints (); } /* Otherwise, try all valid registers and see if its valid. */ @@ -862,6 +868,12 @@ copyprop_hardreg_forward_1 (basic_block bb, struct value_data *vd) changed = true; goto did_replacement; } + /* We need to re-extract as validate_change clobbers + recog_data. */ + extract_insn (insn); + if (! constrain_operands (1)) + fatal_insn_not_found (insn); + preprocess_constraints (); } } }