This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: ia32: genrecog & peep2


> 
> 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);
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]