aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMike Stump <mikestump@comcast.net>2011-10-21 02:14:32 +0000
committerMike Stump <mrs@gcc.gnu.org>2011-10-21 02:14:32 +0000
commit3147591f604b6ce925c1e7d39e62ec973472af58 (patch)
treea6ae2b06fc3e0bf291089327105908c30f1ea6c6 /gcc
parentb66cf46e4d410cb19a3529efa2ffda289848298d (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/regcprop.c12
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 ();
}
}
}