aboutsummaryrefslogtreecommitdiff
path: root/gcc/combine.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gcc.gnu.org>2017-01-14 23:54:46 +1030
committerAlan Modra <amodra@gcc.gnu.org>2017-01-14 23:54:46 +1030
commitd6b251481d16865e3ebb4e6075f99c2c484e4c72 (patch)
tree364027b7a18ed0f254e4edbce192537dc2713f10 /gcc/combine.c
parentac4664f9da074d5e146102142cd2bf3bcde17b33 (diff)
downloadgcc-d6b251481d16865e3ebb4e6075f99c2c484e4c72.zip
gcc-d6b251481d16865e3ebb4e6075f99c2c484e4c72.tar.gz
gcc-d6b251481d16865e3ebb4e6075f99c2c484e4c72.tar.bz2
Avoid PR72749 by not using unspecs
Rather than using unspecs in doloop insns to stop combine creating these insns, use legitimate_combined_insn. PR target/72749 * combine.c (recog_for_combine_1): Set INSN_CODE before calling target legitimate_combined_insn. * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define. (rs6000_legitimate_combined_insn): New function. * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove all uses. (ctr<mode>_internal3): Rename from *ctr<mode>_internal5. (ctr<mode>_internal4): Rename from *ctr<mode>_internal6. (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name. From-SVN: r244465
Diffstat (limited to 'gcc/combine.c')
-rw-r--r--gcc/combine.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index 3598045..28133ff 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -11201,6 +11201,7 @@ recog_for_combine_1 (rtx *pnewpat, rtx_insn *insn, rtx *pnotes)
old_icode = INSN_CODE (insn);
PATTERN (insn) = pat;
REG_NOTES (insn) = notes;
+ INSN_CODE (insn) = insn_code_number;
/* Allow targets to reject combined insn. */
if (!targetm.legitimate_combined_insn (insn))