diff options
author | Mike Stump <mikestump@comcast.net> | 2011-10-21 02:14:32 +0000 |
---|---|---|
committer | Mike Stump <mrs@gcc.gnu.org> | 2011-10-21 02:14:32 +0000 |
commit | 3147591f604b6ce925c1e7d39e62ec973472af58 (patch) | |
tree | a6ae2b06fc3e0bf291089327105908c30f1ea6c6 /gcc | |
parent | b66cf46e4d410cb19a3529efa2ffda289848298d (diff) | |
download | gcc-3147591f604b6ce925c1e7d39e62ec973472af58.zip gcc-3147591f604b6ce925c1e7d39e62ec973472af58.tar.gz gcc-3147591f604b6ce925c1e7d39e62ec973472af58.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/regcprop.c | 12 |
2 files changed, 17 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3b5fc23..a76979d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-10-20 Mike Stump <mikestump@comcast.net> + + * regcprop.c (copyprop_hardreg_forward_1): Update recog_data + after validate_change wipes it out. + 2011-10-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> * config/spu/spu.md ("vec_permv16qi"): Reduce selector modulo 32 diff --git a/gcc/regcprop.c b/gcc/regcprop.c index aca005d..ad92a64 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 (); } } } |