From 3147591f604b6ce925c1e7d39e62ec973472af58 Mon Sep 17 00:00:00 2001 From: Mike Stump Date: Fri, 21 Oct 2011 02:14:32 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/regcprop.c | 12 ++++++++++++ 2 files changed, 17 insertions(+) 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 (); } } } -- 2.47.2