This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/12032] New: flag -fnew-ra does not work! In the description you'll find the source AND all relevant information.
- From: "haefele at mpi-magdeburg dot mpg dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 22 Aug 2003 08:00:19 -0000
- Subject: [Bug fortran/12032] New: flag -fnew-ra does not work! In the description you'll find the source AND all relevant information.
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12032
Summary: flag -fnew-ra does not work! In the description you'll
find the source AND all relevant information.
Product: gcc
Version: 3.3.1
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: haefele at mpi-magdeburg dot mpg dot de
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: GNU F77 version 3.3.1 20030626 (Debian prerelease)
(i386-linux)
GCC host triplet: i386-linux
GCC target triplet: i386-linux
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