hawk:[std]> g77 -v -save-temps -w -pipe -finit-local-zero -fnew-ra -Isource/sim/ misc -D__unix__ -Isource/mod/signal/saett/ -O3 -march=pentiumpro -funroll-loops -malign-double -falign-functions=4 -fexpensive-optimizations -fschedule-insns2 -ffloat-store -fomit-frame-pointer -c -o obj/intel-linux-glibc2.1/opt-dab02i.o s ource/mod/signal/saett/dab02i.f g77: warning: -pipe ignored because -save-temps specified Reading specs from /usr/lib/gcc-lib/i386-linux/3.3.1/specs Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,pascal,ob jc,ada,treelang --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --with-system-zlib - -enable-nls --without-included-gettext --enable-__cxa_atexit --enable-clocale=gn u --enable-debug --enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc i386-linux Thread model: posix gcc version 3.3.1 20030626 (Debian prerelease) /usr/lib/gcc-lib/i386-linux/3.3.1/f771 source/mod/signal/saett/dab02i.f -quiet -dumpbase dab02i.f -march=pentiumpro -malign-double -auxbase-strip obj/intel-lin ux-glibc2.1/opt-dab02i.o -O3 -w -version -finit-local-zero -fnew-ra -funroll-loo ps -falign-functions=4 -fexpensive-optimizations -fschedule-insns2 -ffloat-store -fomit-frame-pointer -Isource/sim/misc -Isource/mod/signal/saett/ -o dab02i.s GNU F77 version 3.3.1 20030626 (Debian prerelease) (i386-linux) compiled by GNU C version 3.3.1 20030626 (Debian prerelease). GGC heuristics: --param ggc-min-expand=42 --param ggc-min-heapsize=23893 source/mod/signal/saett/dab02i.f:1: internal compiler error: in select_spill, at ra-colorize.c:1002 --------------------- Here goes the source (I did not find a place where to upload a zipped version of it) --------------------- SUBROUTINE DAB02I(PLANT,VERNR,BNAME,BNR, # X,XMIN,XMAX,XABS,CX, 1 CU, # PHIERR,CPHI, # NX,NU,NY,NPHI, # IOUT, CY, # RPAR,CRPAR,NRP,IPAR,CIPAR,LIPAR,NIP,CPAR,CCPAR, # NCP,RWORK,NRW,IWORK,NIW,CWORK,NCW, # ICFX,IRFX,NFX, # ICFU,IRFU,NFU, # ICB,IRB,NB, # ICBX,IRBX,NBX, # ICBU,IRBU,NBU, # IDUM1,IDUM2,IDUM3,IDUM4,IDUM5,IDUM6,IDUM7, # IDUM8,IDUM9,IDUM10,IDUM11,IDUM12,IDUM13, # IDUM14, # MESID, MESTXT, SEVRTY) C IMPLICIT NONE C C*********************************************************************** C DIVA V3 C File : DAB02I.FOR C Autor : T.Obertopp C Datum : 20-September-1991 C C Datum Bearbeiter Kommentar C 15.02.93 G. Hutzl alternative Return-Anweisung entfernt C (in der Parameterklammer und beim Ruecksprung) C C*********************************************************************** C<FF> C Aufgabe des Programms: C ---------------------- C C Initialisierung eines DIVA-Grundelement zu einen eindeutigen C Block in einer Anlage. C C*********************************************************************** C<FF> C Benoetigte Unterprogramme: C C DSSPAT Stoffdateninitialisierung (Belegung der Parameter- C klammer siehe Programmieranleitung) C C C*********************************************************************** C C Definition der Variablen > Eingangsvariable C < Ausgangsvariable C * Ein- und Ausgangsvariable C - Groesse wird nicht benoetigt C L lokale Variable C C.Variable eines COMMON-Blocks C C************************************************************************ C VARIABLE: C-------------- CHARACTER*(*) BNAME C > Name des Blocks in der Anlage CHARACTER*10 CDUM C L Dummy CHARACTER*(*) DNAME C L DIVA-Name des Blocks, benannte Konstante CHARACTER*(*) MESTXT C > Klartext oder Parameter f"ur Message CHARACTER*(*) PLANT C > Name der Anlage INTEGER BUFLEN C l Ben"otigte L"ange von DATBUF INTEGER BNR C > Blocknummer; von DIVA erzeugt INTEGER DNIP C > Arbeitsvariable fuer IPAR INTEGER IDUM1,IDUM2,IDUM3,IDUM4,IDUM5,IDUM6,IDUM7, # IDUM8,IDUM9,IDUM10,IDUM11,IDUM12,IDUM13, # IDUM14 C - dummy input variables, they must not be C referenced within this program INTEGER JDUM1,JDUM2,JDUM3,JDUM4,JDUM5,JDUM6,JDUM7, # JDUM8,JDUM9,JDUM10,JDUM11,JDUM12,JDUM13, # JDUM14,JDUM15,JDUM16,JDUM17,JDUM18,JDUM19, # JDUM20,JDUM21,JDUM22,JDUM23,JDUM24,JDUM25, # JDUM26,JDUM27,JDUM28,JDUM29,JDUM30,I C - Dummy-Variablen INTEGER KEYLEN C L Anzahl der Proz.gr. INTEGER MESID C * Nummer der Message und des C Messageformats INTEGER MAXSTA C L max. Anzahl von STates in Proz.gr. INTEGER MNB C L Arbeitsvariable f"ur NB INTEGER MNBU C L Arbeitsvariable f"ur NBU INTEGER MNBX C L Arbeitsvariable f"ur NBX INTEGER MNCP C L Arbeitsvariable f"ur NCP INTEGER MNCW C L Arbeitsvariable f"ur NCW INTEGER MNFU C L Arbeitsvariable f"ur NFU INTEGER MNFX C L Arbeitsvariable f"ur NFX INTEGER MNIP C L Arbeitsvariable f"ur NIP INTEGER MNIW C L Arbeitsvariable f"ur NIW INTEGER MNPHI C L Arbeitsvariable f"ur NPHI INTEGER MNRP C L Arbeitsvariable f"ur NRP INTEGER MNRW SAVE MNRW C L Arbeitsvariable f"ur NRW INTEGER MNU C L Arbeitsvariable f"ur NU INTEGER MNX C L Arbeitsvariable f"ur NX INTEGER MNY C L Arbeitsvariable f"ur NY INTEGER NB C *>noch freie Länge für Matrix B C <tatsächlich benötigte Länge für B INTEGER NBU C *>noch freie Länge für Matrix dbeta/du C <tatsächlich benötigte Länge dbeta/du INTEGER NBX C *>noch freie Länge für Matrix dbeta/deta C <tatsächlich benötigte Länge dbeta/deta INTEGER NCP C *>noch freie Länge für Character-Parameter C <tatsächlich benötigte Anz. Char.-Par. INTEGER NCW C > Länge des Character-Arbeitsfeld C (DARF NICHTR VERÄNDERT WERDEN!) INTEGER NFU C *>noch freie Länge für Matrix df/du C <tatsächlich benötigte Länge df/du INTEGER NFX C *>noch freie Länge für Matrix df/deta C <tatsächlich benötigte Länge df/deta INTEGER NIP C *>noch freie Länge für Integer-Parameter C <tatsächlich benötigte Anz. Integer-Par. INTEGER NISP C L Anzahl der Strukturparameter INTEGER NIW C > Länge des Integer-Arbeitsfeld C (DARF NICHTR VERÄNDERT WERDEN!) INTEGER NPHI C *>noch freie Länge für Eventvektor PHI C <tatsächlich benötigte Länge PHI INTEGER NRP C *>noch freie Länge für REAL-Parameter C <tatsächlich benötigte Anz. REAL-Par. INTEGER NRW C > max. Länge des REAL-Arbeitsfeldes C (DARF NICHTR VERÄNDERT WERDEN!) INTEGER NU C *>noch freie Länge für Eingangsvektor C <tatsächlich benötigte Länge Eingangsv. INTEGER NX C *>noch freie Länge für Zustandsvektor C <tatsächlich benötigte Länge Zustandsv. INTEGER NY C *>noch freie Länge für Ausgangsvektor C <tatsächlich benötigte Länge Ausgangsv. C INTEGER OFFH1, OFFH2, OFFH3 C C INTEGER SEVRTY C * Severitycode der Mesage und Fehlerflag C f"ur die Ausf"uhrung des Programms. C Bei Aufruf: C = 0 normale Initialisierung C < 0 nur Feldlängenübergabe; keine C "Anderung von SEVRTY! C Bei R"ucksprung: C = 0 Initialisierung ohne Fehler C # 0 Initialisierung mit Fehler oder C Error oder SEVRTY < 0 bei Aufruf. INTEGER SPACEX, SPACEY, SPACEZ C L Stuetzstellenzahl INTEGER STAPPG C L States pro Proz.gr. INTEGER VERNR C > Versionsnummer der Anlage *********************************************************************** C Felder: C----------- CHARACTER*(*) CCPAR(1) C < Name der Character-Parameter CHARACTER*(*) CIPAR(1) C < Name der Integer-Parameter CHARACTER*(*) CPAR(1) C < Character-Parameter CHARACTER*(*) CPHI(1) C < Name der Eventfunktionen CHARACTER*(*) CWORK(NCW) C > Character-Arbeitsfeld CHARACTER*(*) CRPAR(1) C < Name der Real-Parameter CHARACTER*(*) CU(1) C < Name der Eingangsgr"o"sen CHARACTER*(*) CX(1) C < Name der Zustandsgr"o"sen CHARACTER*(*) CY(1) C < Name der Ausgangsgr"o"sen DOUBLE PRECISION PHIERR(1) C < abs. Breite des Schaltbereichs der C Eventfunktionen DOUBLE PRECISION RPAR(1) C < Real-Parameter DOUBLE PRECISION RWORK(1) C > Real-Arbeitsfeld DOUBLE PRECISION X(1) C < Zustandsvektor DOUBLE PRECISION XABS(1) C < abs. Fehler der Zustände DOUBLE PRECISION XMAX(1) C < Maximalwert der Zustände DOUBLE PRECISION XMIN(1) C < Minimalwert der Zustände INTEGER FBLO(1) C > Nr. der Gleichung in der Stoffdaten- C einflussmatrix (Arbeitsfeld) INTEGER ICB(1) C < Spaltennr. der Elemente der Matrix B INTEGER ICBU(1) C < Spaltennr. der Elemente der Matrix C dbeta/du INTEGER ICBX(1) C < Spaltennr. der Elemente der Matrix C dbeta/deta INTEGER ICFU(1) C < Spaltennr. der Elemente der Matrix C df/du INTEGER ICFX(1) C < Spaltennr. der Elemente der Matrix C df/deta INTEGER IOUT(1) C < Zuordnung der Zustände zu Ausgängen INTEGER IPAR(1) C < Integer-Parameter INTEGER IRB(1) C < Zeilennr. der Elemente der Matrix B INTEGER IRBU(1) C < Zeilennr. der Elemente der Matrix C dbeta/du INTEGER IRBX(1) C < Zeilennr. der Elemente der Matrix C dbeta/deta INTEGER IRFU(1) C < Zeilennr. der Elemente der Matrix C df/du INTEGER IRFX(1) C < Zeilennr. der Elemente der Matrix C df/deta INTEGER IWORK(1) C > Integer-Arbeitsfeld LOGICAL LIPAR(1) C < .TRUE. f"ur Strukturparameter C .FALSE. f"ur Integerparameter C********************************************************************** EXTERNAL DSESLE INTEGER DSESLE C********************************************************************** C C Parameter: C------------ PARAMETER (DNAME='DAB02') C C********************************************************************** C >> Zuweisung f"ur ben"otigte Anzahl an Strukturparametern C NISP = 0 C C C >> Zuweisungen f"ur ben"otigte Feldl"angen C C > Anlagenvektoren C MNX = 1 MNU = 1 MNY = 1 MNPHI = 2 C C > Parameterfelder C MNRP = 4 MNIP = 1 MNCP = 0 C C > Matrizen C MNB = 0 MNBX = 0 MNBU = 0 MNFX = 1 MNFU = 1 C MNCW = 3 + 3 + 3 + 3 * 4 C C MNIW = 0 MNRW = 0 JDUM1 = 0 JDUM2 = 0 JDUM3 = 0 JDUM4 = 0 JDUM5 = 0 JDUM6 = 0 JDUM7 = 0 JDUM8 = 0 JDUM9 = 0 JDUM10= 0 JDUM11= 0 JDUM12= 0 C C >> Vergleich zwischen ben"otigten und freien L"angen C CALL DSEMCK (SEVRTY,BNAME,DNAME,BNR # ,NX,NU,NY,NPHI,NRP,NIP,NCP,NRW,NIW # ,NCW,NFX,NFU,NB,NBX,NBU # ,JDUM1,JDUM2,JDUM3,JDUM4,JDUM5 # ,MNX,MNU,MNY,MNPHI,MNRP,MNIP,MNCP,MNRW,MNIW # ,MNCW,MNFX,MNFU,MNB,MNBX,MNBU # ,JDUM6,JDUM7,JDUM8,JDUM9,JDUM10,JDUM11,JDUM12) C >> Belegung des ben"otigten Platzes C CALL DSEMST (NX,NU,NY,NPHI,NRP,NIP,NCP # ,JDUM13,JDUM14,JDUM15 # ,NFX,NFU,NB,NBX,NBU # ,JDUM16,JDUM17,JDUM18,JDUM19,JDUM20 # ,MNX,MNU,MNY,MNPHI,MNRP,MNIP,MNCP # ,JDUM21,JDUM22,JDUM23 # ,MNFX,MNFU,MNB,MNBX,MNBU # ,JDUM24,JDUM25,JDUM26,JDUM27,JDUM28,JDUM29,JDUM30) C C IF (SEVRTY .LT. 0) THEN RETURN ENDIF C C C Der Integer-Parameter wird lediglich fuer die Uebergabe der aktuellen C Modellnummer zwischen F- und P-Programm benoetigt: DNIP = 0 C C >> Blockdaten einlesen C CALL PARWER (PLANT,VERNR,BNAME,CX,NX,X,XMIN,XMAX,XABS, * CU,NU,CY,NY,CPHI,PHIERR,NPHI,CRPAR,NRP,RPAR, * CIPAR(NISP+1),DNIP,IPAR(NISP+1),CCPAR,NCP,CPAR, * MESID,MESTXT) C C C MSH \/\/\/\/ MSH DO 1234 I = DNIP+1, NIP WRITE(CDUM,'(I10)') (I-DNIP-1) print *,'CDUM: ',CDUM CALL DELBLA(CDUM) WRITE(CIPAR(I),'(A10,A)') '_CGH HELP',CDUM(1:DSESLE(CDUM)) 1234 CONTINUE C MSH /\/\/\/\ MSH IF (MESID .NE. 0) THEN RETURN ENDIF C C C >> Belegen von Teilstrukturen des Patterns von Matrizen C ICFX(1) = 1 IRFX(1) = 1 ICFU(1) = 1 IRFU(1) = 1 C C C >> Zuordnung des Zustands zum Ausgang C IOUT(1) = 1 C C C >> Schreibschl"ussel definieren C KEYLEN = 3 CWORK(1)(1:10) = BNAME(1:5)//CX(1)(1:5) CWORK(2)(1:10) = BNAME(1:5)//CU(1)(1:5) CWORK(3)(1:10) = BNAME(1:5)//CY(1)(1:5) DO 2000 I = 1,3 IWORK(I) = 1 2000 CONTINUE DO 400 I=1,3*KEYLEN IWORK(3+I) = 1 400 CONTINUE C 1.Proze"sgr"o"se CWORK(4)(1:10) = CX(1)(6:15) C 2.Proze"sgr"o"se CWORK(5)(1:10) = CU(1)(6:15) C 3.Proze"sgr"o"se CWORK(6)(1:10) = CY(1)(6:15) C Adressrechnung der zus"atzlich ben"otigten Hilfsfelder MAXSTA = 1 OFFH1 = 7 OFFH2 = OFFH1 + KEYLEN*MAXSTA OFFH3 = 3 + 3*KEYLEN + 1 CALL DSEDIW (BNAME, KEYLEN, CWORK(1), IWORK(1), * IWORK(4), IWORK(4+KEYLEN), IWORK(4+2*KEYLEN), * CWORK(4), BUFLEN, * CWORK(OFFH1),CWORK(OFFH2),IWORK(OFFH3),MAXSTA, * MESID, MESTXT, SEVRTY) C----FORMATE------------------------------------------------------------- C C************************************************************************ C End of file DAB02I.FOR RETURN END
I can confirm this in 3.3.1 (20030707) but on the mainline (20030821) it does not ICE but most likely the mainline does not ICE because the RTL is different. Most likely the same bug as bug 8479.
Suspending until either new-regalloc branch is merged to mainline, or bug is rechecked against new-regalloc branch.
Closing this one as fixed as I said it was fixed on the mainline (back when it was 3.4.0).