From: mrs Date: Fri, 21 Oct 2011 02:14:32 +0000 (+0000) Subject: * regcprop.c (copyprop_hardreg_forward_1): Update recog_data X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=commitdiff_plain;h=cc7416ffe6c21a7899667089d795f3f49b4b46e7 * regcprop.c (copyprop_hardreg_forward_1): Update recog_data after validate_change wipes it out. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180284 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3b5fc23e906..a76979d8f75 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 aca005d7afd..ad92a64cc29 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 (); } } }