------- Comment #7 from ro at techfak dot uni-bielefeld dot de  2009-09-03 
13:53 -------
Subject: Re:  [4.5 regression] ICE: in get_attr_got, at config/mips/mips.md:455
building stage1 N64 libgcc

> ------- Comment #5 from ubizjak at gmail dot com  2009-09-03 13:08 -------
> (In reply to comment #3)
> 
> > I'm sort of stuck now.
> 
> Add -save-temps to failing command on a native compiler, create a 
> crosscompiler
> on i.e. x86_64 and debug ../gcc/cc1 from crosscompiler with -O2 -g
> <some_file>.i in x86_64 host. You don't even need to create binutils cross to
> create cc1, although the full build won't finish.

Good point: I routinely forget about cross compilers until I really have
to.  This was really beneficial in this case, since the X4450 is a *much*
faster box.  I did have to build cross binutils, though, since the bug is
only triggered when certain assembler features are present (I haven't
checked exactly which ones, but a cross compiler without a cross gas 2.19.1
didn't ICE).

I've come up with the following patch, similar to your's for the alpha:

2009-09-03  Rainer Orth  <r...@cecitec.uni-bielefeld.de>

        PR target/41240
        * config/mips/mips.c (mips_function_has_gp_insn): Ignore debug insn.

Index: config/mips/mips.c
===================================================================
--- config/mips/mips.c  (revision 151371)
+++ config/mips/mips.c  (working copy)
@@ -8579,7 +8579,7 @@

       push_topmost_sequence ();
       for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
-       if (USEFUL_INSN_P (insn)
+       if (USEFUL_INSN_P (insn) && !DEBUG_INSN_P (insn)
            && (get_attr_got (insn) != GOT_UNSET
                || mips_small_data_pattern_p (PATTERN (insn))))
          {

With it, my testcase passed and the cross-build ran until it hit missing
target headers.  I'm now continuing the really bootstrap and will submit it
once that finishes.

Thanks alot.

        Rainer


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41240

Reply via email to