PATCH: Re: ICE in single_set_1, at rtlanal.c:881

John David Anglin dave@hiauly1.hia.nrc.ca
Mon Oct 2 12:37:00 GMT 2000


> 
> > ./xgcc -B./ -B/usr/local/hppa1.1-hp-hpux10.20/bin/ -isystem /usr/local/hppa1.1-hp-hpux10.20/include -O2   -DIN_GCC    -g -W -Wall  -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes  -Wno-long-long -isystem ./include  -fPIC -g1  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  -I. -I../../gcc -I../../gcc/config -I../../gcc/../include -DUSE_COLLECT2 -DL_divdi3 -c ../../gcc/libgcc2.c -o libgcc/./_divdi3.o
> > ../../gcc/libgcc2.c: In function `__divdi3':
> > ../../gcc/libgcc2.c:576: Internal compiler error in single_set_1, at rtlanal.c:881
> 
> This is the insn that causes the abort:
> 
> (gdb) p debug_rtx(insn)
> 
> (jump_insn 980 979 981 (parallel[
>             (use (reg:SI 2 %r2))
> 	    (return)
> 	] ) -1 (nil)
>     (nil))

I believe that the enclosed patch fixes the problem.  Checked with a full
bootstrap.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)

2000-10-01  J. David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.md (return_internal): Move `use' after `return'.

--- pa.md.orig	Sun Oct  1 14:53:00 2000
+++ pa.md	Sun Oct  1 14:54:05 2000
@@ -5561,8 +5561,8 @@
 ;; Use a different pattern for functions which have non-trivial
 ;; epilogues so as not to confuse jump and reorg.
 (define_insn "return_internal"
-  [(use (reg:SI 2))
-   (return)]
+  [(return)
+   (use (reg:SI 2))]
   ""
   "*
 {


More information about the Gcc-patches mailing list