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]
Other format: [Raw text]

Re: 4.3 bootstrap broken on i386-linux


> On Tue, Mar 27, 2007 at 06:54:26AM -0700, H. J. Lu wrote:
> > On Tue, Mar 27, 2007 at 02:41:51PM +0100, Richard Guenther wrote:
> > > On 3/27/07, H. J. Lu <hjl@lucon.org> wrote:
> > > >On Tue, Mar 27, 2007 at 12:28:18PM +0200, François-Xavier Coudert wrote:
> > > >> >My nightly bootstrap of mainline on i386-linux failed tonight, on
> > > >> >revision 123192.
> > > >>
> > > >> This issue is still not fixed as of now. A diff was posted to PR31344
> > > >> with the mention "This isn't a real patch." Is a real patch planned in
> > > >> the near future, or is there any other short-time plan to get
> > > >> i386-linux bootstrap back?
> > > >
> > > >Just configure gcc with --disable-decimal-float. I don't think
> > > >dfp works on x86 very well.
> > > 
> > > If it doesn't work it shouldn't be the default.
> > 
> > I am trying to find a way to expose the dfp bugs on x86. Many DFP
> > testcases will fail on x86 at any optimization with error like
> > 
> > bash-3.1$ ./xgcc -B./ -m32 -S /tmp/foo.i -mtune=generic
> > bash-3.1$ ./xgcc -B./ -m32 -S /tmp/foo.i -O1 -mtune=generic
> > /net/gnu-13/export/gnu/src/gcc/gcc/gcc/testsuite/gcc.dg/compat/scalar-by-value-dfp_x.c: In function ???checkd128???:
> > /net/gnu-13/export/gnu/src/gcc/gcc/gcc/testsuite/gcc.dg/compat/scalar-by-value-dfp_x.c:149:
> > internal compiler error: in cgraph_local_info, at cgraph.c:618
> > Please submit a full bug report,
> > with preprocessed source if appropriate.
> > See <URL:http://gcc.gnu.org/bugs.html> for instructions.
> > 
> > But for some reason, x86-64 works fine:
> > 
> > bash-3.1$ ./xgcc -B./ -O3 -S /tmp/foo.i -mtune=generic
> > 
> 
> This patch allows me to finish bootstrap when configured as i386-linux:
> 
> http://gcc.gnu.org/ml/gcc-testresults/2007-03/msg01308.html
> http://gcc.gnu.org/ml/gcc-testresults/2007-03/msg01309.html
> http://gcc.gnu.org/ml/gcc-testresults/2007-03/msg01310.html
> http://gcc.gnu.org/ml/gcc-testresults/2007-03/msg01311.html
> 
> But many DFP testcases fails in 32bit and more will fail at any
> optimization.
> 
> 
> H.J.
> ----
> 2007-03-26  H.J. Lu  <hongjiu.lu@intel.com>
> 
> 	PR target/31344
> 	* config/i386/i386.md (pushsd1): New pattern.
> 	(*pushsd2): Likewise.
> 	(*pushsd2_rex64): Likewise.
> 	(pushdd1): Likewise.
> 	(*pushdd2): Likewise.
> 	(*pushdd2_rex64): Likewise.
> 	Split push DDmode for 32bit target.

Hi,
we don't need movdd patterns, since expand_move is smart enough to work
around by using integer modes.

  if (GET_MODE_CLASS (mode) == MODE_DECIMAL_FLOAT)
    {
      rtx result = emit_move_via_integer (mode, x, y, true);

      /* If we can't find an integer mode, use multi words.  */
      if (result)
        return result;
      else
        return emit_move_multi_word (mode, x, y);
    }
I think emit_single_push_insn should do the same to help also other
targets that do push/pop.

Honza


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