summaryrefslogtreecommitdiff
path: root/gcc/genemit.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-05-27 20:23:15 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-05-27 20:23:15 +0000
commit3e9f123748453342eae2fa9a1bcf63730429b38d (patch)
tree2a3db5cb69837af35662b42fa3a1b95b877158ed /gcc/genemit.c
parent5496faf1f5e781229d4ea5cfb2d3a9295845f661 (diff)
downloadgcc-3e9f123748453342eae2fa9a1bcf63730429b38d.tar.gz
* Makefile.in (recog.o): Don't depend on resource.h.
* recog.c: Don't include resource.h. (recog_last_allowed_insn): Remove. (recog_next_insn): Remove. (struct peep2_insn_data): New. (peep2_insn_data, peep2_current): New. (peep2_next_insn): New. (peep2_regno_dead_p, peep2_reg_dead_p): New. (peep2_find_free_register): New. (peephole2_optimize): Track life information by insn as we go. * recog.h: Update declarations. * resource.c (find_free_register, reg_dead_p): Remove. * resource.h: Remove their declarations. * toplev.c: Include hard-reg-set.h before recog.h. * genconfig.c (max_insns_per_peep2): New. (gen_peephole2): New. (main): Call it. * genemit.c (output_peephole2_scratches): Generate calls to peep2_find_free_register; adjust surrounding code. (main): Have insn-emit.c include hard-reg-set.h before recog.h. * genrecog.c (change_state): Don't track last_insn. (write_action): Write into *_pmatch_len before accepting. (write_tree): Adjust peephole2_insns and subroutines to match. * config/i386/i386.md (all peepholes): Use peep2_regno_dead_p. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34208 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/genemit.c')
-rw-r--r--gcc/genemit.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/gcc/genemit.c b/gcc/genemit.c
index dab819bf6b1..54793d46a47 100644
--- a/gcc/genemit.c
+++ b/gcc/genemit.c
@@ -699,10 +699,7 @@ output_peephole2_scratches (split)
int i;
int insn_nr = 0;
- printf (" rtx first_insn ATTRIBUTE_UNUSED;\n");
- printf (" rtx last_insn ATTRIBUTE_UNUSED;\n");
printf (" HARD_REG_SET _regs_allocated;\n");
-
printf (" CLEAR_HARD_REG_SET (_regs_allocated);\n");
for (i = 0; i < XVECLEN (split, 0); i++)
@@ -721,15 +718,11 @@ output_peephole2_scratches (split)
}
else if (GET_CODE (XVECEXP (split, 0, j)) != MATCH_SCRATCH)
cur_insn_nr++;
- printf (" first_insn = recog_next_insn (curr_insn, %d);\n", insn_nr);
- if (last_insn_nr > insn_nr)
- printf (" last_insn = recog_next_insn (curr_insn, %d);\n",
- last_insn_nr - 1);
- else
- printf (" last_insn = 0;\n");
- printf (" if ((operands[%d] = find_free_register (first_insn, last_insn, \"%s\", %smode, &_regs_allocated)) == NULL_RTX)\n\
+
+ printf (" if ((operands[%d] = peep2_find_free_register (%d, %d, \"%s\", %smode, &_regs_allocated)) == NULL_RTX)\n\
return NULL;\n",
XINT (elt, 0),
+ insn_nr, last_insn_nr,
XSTR (elt, 1),
GET_MODE_NAME (GET_MODE (elt)));
@@ -777,8 +770,8 @@ from the machine description file `md'. */\n\n");
printf ("#include \"insn-config.h\"\n");
printf ("#include \"insn-flags.h\"\n");
printf ("#include \"insn-codes.h\"\n");
- printf ("#include \"recog.h\"\n");
printf ("#include \"hard-reg-set.h\"\n");
+ printf ("#include \"recog.h\"\n");
printf ("#include \"resource.h\"\n");
printf ("#include \"reload.h\"\n\n");
printf ("#define FAIL return (end_sequence (), _val)\n");