This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: ia32: genrecog & peep2
- To: Richard Henderson <rth@cygnus.com>
- Subject: Re: ia32: genrecog & peep2
- From: Bernd Schmidt <bernds@cygnus.co.uk>
- Date: Fri, 27 Aug 1999 13:55:44 +0100 (BST)
- cc: gcc-patches@gcc.gnu.org
>
> When we fail matching on the third instruction of the first pattern,
> we see code like
>
> _last_insn = recog_next_insn (insn, 1);
> x1 = PATTERN (_last_insn);
> x2 = XEXP (x1, 1);
> goto L3634;
Just so I understand it correctly: you aren't maintaining a stack of insns,
you just call recog_next_insn again when you pop. That should work.
> Do you have any further concerns about the peephole2 generation?
For a minor nit, see the patch below. I applied it to the branch as an
obvious bug fix.
I'll think about the scratch register allocation code some more.
Bernd
* genemit.c (output_peephole2_scratch): Use old-style function
definition.
Index: genemit.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/genemit.c,v
retrieving revision 1.30.2.2
diff -u -p -r1.30.2.2 genemit.c
--- genemit.c 1999/08/25 23:30:48 1.30.2.2
+++ genemit.c 1999/08/27 12:51:47
@@ -706,7 +706,8 @@ output_add_clobbers ()
scratch registers used by the peephole2 pattern in INSN. */
static void
-output_peephole2_scratch (rtx insn)
+output_peephole2_scratch (insn)
+ rtx insn;
{
RTX_CODE code = GET_CODE (insn);