[3.3 branch] IA64 bootstrap failure

H. J. Lu hjl@lucon.org
Tue Jul 8 21:50:00 GMT 2003


On Tue, Jul 08, 2003 at 07:37:05AM -0700, H. J. Lu wrote:
> On Tue, Jul 08, 2003 at 04:10:33PM +0200, Andreas Schwab wrote:
> > Eric Botcazou <ebotcazou@libertysurf.fr> writes:
> > 
> > |> > @@ -2054,10 +2054,10 @@
> > |> >      2a50:	0b 70 00 1e 18 10 	[MMI]       ld8 r14=[r15];;
> > |> >      2a56:	70 00 38 0c 72 00 	            cmp.eq p7,p6=0,r14
> > |> >      2a5c:	00 00 04 00       	            nop.i 0x0;;
> > |> > -    2a60:	dc 00 20 40 98 11 	[MFB] (p06) st8 [r32]=r8
> > |> > +    2a60:	fc 00 20 1e 98 11 	[MFB] (p07) st8 [r15]=r8
> > |> >      2a66:	00 00 00 02 00 00 	            nop.f 0x0
> > |> >      2a6c:	00 00 00 20       	            nop.b 0x0
> > |> > -    2a70:	e0 00 20 1e 98 11 	[MII] (p07) st8 [r15]=r8
> > |> > +    2a70:	c0 00 20 40 98 11 	[MII] (p06) st8 [r32]=r8
> > |> >      2a76:	f0 c0 22 00 42 00 	            adds r15=88,r8
> > |> >      2a7c:	04 40 00 84       	            mov r32=r8
> > |> >      2a80:	0a 70 00 46 18 10 	[MMI]       ld8 r14=[r35];;
> > |> 
> > |> It bears some ressemblance with PR optimization/11320, where the machine 
> > |> dependent reorg pass also swaps two insns.
> > 
> > Could be, but then I would have expected that the stage1 compiler
> > generates the same code.  I'd rather think this is similar to the problem
> > that lead to the replacement of PWD with PWD_COMMAND.
> > 
> 
> Yes, it is true. Can you duplicate the result on the command line? If
> not, can you duplicate it with Makefile?
> 

I found:

/* If we don't have __builtin_constant_p, or it's not acceptable in
   array initializers, fall back to assuming that all conditions
   potentially vary at run time.  It works in 3.0.1 and later; 3.0
   only when not optimizing.  */
#if (GCC_VERSION >= 3001) || ((GCC_VERSION == 3000) && !__OPTIMIZE__)
# define MAYBE_EVAL(expr) (__builtin_constant_p(expr) ? (int) (expr) : -1)
#else
# define MAYBE_EVAL(expr) -1
#endif

in the generated insn-conditions.c. It means the stage1 compiler may
be different from the stage2 compiler, depending on what compiler is
used to bootstrap gcc. I think insn-conditions.c should be the same
regardless the compiler used to boostrap.


H.J.



More information about the Gcc mailing list