This is the mail archive of the gcc@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]
Other format: [Raw text]

PATCH: [3.3 branch] IA64 bootstrap failure


On Tue, Jul 08, 2003 at 02:11:42PM -0700, H. J. Lu wrote:
> 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.
> 
> 

I am testing this patch now.


H.J.

Attachment: gcc-3.3-const.patch
Description: Text document


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