1 * Date: Thu
, 19 Aug
1999 10:02:32 +0200
2 * From
: Frederic Devernay
<devernay@istar
.fr
>
4 * X
-Accept
-Language
: French
, fr
, en
5 * To: gcc
-bugs@gcc
.gnu
.org
6 * Subject
: g77
2.95 bug
(Internal compiler error in `final_scan_insn
')
7 * X-UIDL: 08443f5c374ffa382a05573281482f4f
9 * Here's a bug that happens only when I compile with
-O
(disappears with
12 * > g77
-v
--save
-temps
-O
-c pcapop
.f
13 * g77 version
2.95 19990728 (release
) (from FSF
-g77 version
0.5.25
16 * /usr
/local
/lib
/gcc
-lib
/sparc
-sun
-solaris2
.6
/2.95/specs
17 * gcc version
2.95 19990728 (release
)
18 * /usr
/local
/lib
/gcc
-lib
/sparc
-sun
-solaris2
.6
/2.95/f771 pcapop
.f
-quiet
19 * -dumpbase pcapop
.f
-O
-version
-fversion
-o pcapop
.s
20 * GNU F77 version
2.95 19990728 (release
) (sparc
-sun
-solaris2
.6
) compiled
21 * by GNU C version
2.95 19990728 (release
).
22 * GNU Fortran Front
End version
0.5.25 19990728 (release
)
23 * pcapop
.f
: In
subroutine `pcapop
':
24 * pcapop.f:291: Internal compiler error in `final_scan_insn', at
26 * Please submit a full bug report
.
27 * See
<URL
:http
://egcs
.cygnus
.com
/faq
.html#bugreport
> for instructions
.
30 SUBROUTINE PCAPOP
(M1
,M2
,L1
,L2
,NMEM
,N1
,N2
,IB
,IBB
,K3
,TF
,TS
,TC
,TTO
)
31 DIMENSION NVA
(6),C
(6),I
(6)
33 C CALCUL DES PARAMETRES OPTIMAUX N1 N2 IB IBB
43 VY1
=3*RTE
+RDI
+8*REQ
+3*(RAD
+RMI
+RMU
)
45 AR2
=M2*
(2*(REQ
+RMI
)+3*RMU
+M1*
(2*RAD
+REQ
))
71 C POUR AVOIR CES RESULTATS FAIRE TOURNER LE PROGRAMME VEFFT1
73 IF(N10
.EQ
.128.AND
.N20
.EQ
.128)TCFFTU
=3.35
74 IF(N10
.EQ
.64.AND
.N20
.EQ
.64)TCFFTU
=.70
75 IF(N10
.EQ
.32.AND
.N20
.EQ
.32)TCFFTU
=.138
76 IF(N10
.EQ
.16.AND
.N20
.EQ
.16)TCFFTU
=.0332
77 IF(N10
.EQ
.8.AND
.N20
.EQ
.8)TCFFTU
=.00688
78 IF(NDIF
.EQ
.64)TCFFTU
=1.566
79 IF(NDIF
.EQ
.96)TCFFTU
=.709
80 IF(NDIF
.EQ
.112)TCFFTU
=.349
81 IF(NDIF
.EQ
.120)TCFFTU
=.160
82 IF(NDIF
.EQ
.32)TCFFTU
=.315
83 IF(NDIF
.EQ
.48)TCFFTU
=.154
84 IF(NDIF
.EQ
.56)TCFFTU
=.07
85 IF(NDIF
.EQ
.16)TCFFTU
=.067
86 IF(NDIF
.EQ
.24)TCFFTU
=.030
87 IF(NDIF
.EQ
.8)TCFFTU
=.016
92 IF((N10
.LT
.L1
).OR
.(N20
.LT
.L2
)) GOTO 3
93 NB
=NMEM
-NDOU
-N20*
(L1
-1)
95 IF(NB
.LT
.(NVC
)) GOTO 3
96 CALL VALENT
(M1
,N30
,K1
)
97 CALL VALENT
(M2
,N40
,K2
)
99 IF((2*IS
).NE
.K1
)K1
=K1
+1
101 CALL VALENT
(M2
,N40
,JOFI
)
102 IF(NB
.GE
.(K1*N20*N30
+2*N20*
(L1
-1))) GOTO 4
106 MAX
=(NB
-2*N20*
(L1
-1))/(N20*N30
)
108 IF(MAX
.NE
.2*IN
) MAX
=MAX
-1
113 IF(IOFI*IB1*N30
.EQ
.M1
) GOTO1234
116 IF(IBB1
.EQ
.0) GOTO 1234
117 IF(M1
.EQ
.((IOFI
-1)*IB1*N30
+IBB1*N30
)) GOTO 1233
122 IF(IBX1
.EQ
.0)IBX1
=IB1
123 AR1
=M2*
(2*(RAD
+RMI
+RMU
+REQ
)+(M1
-(IOFI
-1)*IB1*N30
)*2*(REQ
+RAD
))
124 %+M2*
(3*(REQ
+RMU
+RAD
)+4*RMI
+(M1
-(IOFI
-1)*IB1*N30
)*(2*RAD
+REQ
)
125 %+(IOFI
-1)*IB1*N30*
(2*RMI
+REQ
+RAD
))
126 AR5
=(JOFI
-1)*(N20
-L2
)*(M1
-(IOFI
-1)*IB1*N30
)*(2*(RAD
+RMU
)+REQ
)
127 %*IOFI
+(M2
-(JOFI
-1)*N40
+L2
-2)*(M1
-(IOFI
-1)*IB1*N30
)*(2*(RAD
+RMU
129 WQ
=((IOFI
-1)*IB1
+IBX1
)*JOFI*WW
132 QW
=JOFI*
(VY1
+VY2*IB1*N30
)
135 AT5
=JOFI*
((IOFI
-1)*N40*
(IB1
/IBX1
)*(VY1
+IBX1*N30*VY2
)
136 %+N40*
((IB1
/IBX1
)*(IOFI
-1)+1)*(VY1
+IBX1*N30*VY2
))
137 AT6
=JOFI*
((IOFI
-1)*N40*
(IB1
/2)*(VY1
+2*N30*VY2
)+N40*
(
138 %IB1*
(IOFI
-1)/2+IBX1
/2)*(VY1
+2*N30*VY2
))
139 T1
=JOFI*N20*
(L1
-1)*REQ
141 T3
=JOFI*N20*IBX1*N30*
(RAD
+REQ
)
142 T4
=JOFI*
((IOFI
-1)*IB1*N30*N20*
(2*RMI
+REQ
)+IBX1*N30*N20*
(2*RMI
+R
144 T5
=JOFI*
((IOFI
-1)*IB1
/2+IBX1
/2)*N20*N30*
(2*RAD
+REQ
)
145 T6
=2*JOFI*
(((IOFI
-1)*IB1
+IBX1
)*N20
)*((5*(RMI
+RMU
)+4*RAD
146 %)+(L1
-1)*(2*RAD
+REQ
)+N30*
(2*RAD
+REQ
))
147 T7
=JOFI*2*
((IOFI
-1)*IB1
+IBX1
)*(L1
-1)*(2*RAD
+REQ
)
148 T8
=JOFI*N10*N20*
((IOFI
-1)*IB1
/2+IBX1
/2)*(3*REQ
+9*RAD
+4*RMU
+RMI
)
149 T9
=N10*N20*JOFI*
((IOFI
-1)*IB1
/2+IBX1
/2)*(REQ
+RMI
)+M1*M2*
(REQ
+R
151 T10
=JOFI*
((IOFI
-1)*IB1
/2+IBX1
/2)*2*(3*RMU
+2*(RMI
+RAD
)+N40*
(3*RMI
152 %+4*RMU
+3*(RAD
+REQ
)+N30*
(2*RAD
+REQ
)))
155 TNRAN
=(N40
+(POI
-2)*N20
+(M2
-(JOFI
-1)*N40
+L2
-1))*(RMI
+RMU
+RAD
156 %+REQ
+N30*
(2*RAD
+2*REQ
)*(IB1*
(IOFI
-1)+IBX1
))
157 IF(TNRAN
.LT
.0.)TNRAN
=0.
158 TCPU
=T1
+T2
+T3
+T4
+T5
+T6
+T7
+T8
+T9
+T10
+TNRAN
163 NVA
(5)=M2
-(JOFI
-1)*N40
165 C
(1)=FLOAT
(IB1*N30
)/FLOAT
(M1
)
166 C
(2)=FLOAT
(M1
-(IOFI
-1)*IB1*N30
)/FLOAT
(M1
)
172 P1
=FLOAT
(NB
)/FLOAT
(M1
)
175 IF(IP1
.GE
.NVA
(K
)) GOTO 7
178 8 P2
=P2
-FLOAT
(IP2
)*C
(K
)
183 IF(IP1
.GE
.NVA
(K
))GOTO 7
193 TIOL
=(I
(2)+(IOFI
-1)*I
(1)+(POFI
-2)*(IOFI
-1)*I
(3)+(POFI
-
194 %2)*I
(4)+(IOFI
-1)*I
(5)+I
(6))*TACC
+(IOFI*M1*N40
+(POFI
-2)*IOFI*
195 %M1*N20
+(M2
-(JOFI
-1)*N40
+L2
-1)*M1*IOFI
)*TTRANS
196 IF(IBB1
.EQ
.0) GOTO 33
197 IF(IB1
.EQ
.IBB1
) GOTO 33
200 INL
=NMEM
/((IOFI
-1)*IB1*N30
+IBB1*N30
)
201 55 IF(INL
.GT
.N40
)INL
=N40
203 33 IF(IB1
.GT
.2) GOTO 36
204 IF((M1
-(IOFI
-1)*IB1*N30
).GE
.N30
) GOTO 36
206 INL
=NMEM
/(2*M1
-(IOFI
-1)*IB1*N30
)
209 INL
=NMEM
/(IOFI*IB1*N30
)
210 IF(INL
.GT
.N40
)INL
=N40
211 35 CALL VALENT
(N40
,INL
,KN1
)
212 CALL VALENT
(M2
-(JOFI
-1)*N40
,INL
,KN2
)
213 CALL VALENT
(INL*IBB1
,IB1
,KN3
)
214 CALL VALENT
((N40
-(KN1
-1)*INL
)*IBB1
,IB1
,KN4
)
215 IF((IP1
+IP2
+IP3
).NE
.1) CALL ERMESF
(14)
217 IF(IP3
.EQ
.1)TIO1
=N30*M2*TTRANS*
(IB1*
(IOFI
-1)+IBB1
)
218 IF(IP1
.EQ
.1)TIO1
=M1*M2*TTRANS
219 IF(IP2
.EQ
.1) TIO1
=(IB1*N30*M2*IOFI*TTRANS
)
220 TTIO
=2.*TIO1
+(KN1*IOFI*
(JOFI
-1)+KN2*IOFI
+(KN1
-1)*(
221 %JOFI
-1)+IOFI*
(JOFI
-1)+KN2
-1.+IOFI
+(KN1*
(JOFI
-1)+KN2
))*TACC
223 IF((IP1
.EQ
.1).AND
.(IRZ
.EQ
.0))TCPU
=TCPU
+AT1
+AT2
+AT3
224 IF((IP1
.EQ
.1).AND
.(IRZ
.NE
.0))TCPU
=TCPU
+AT1
+AT2
+AT4
+AR1
225 IF((IP2
.EQ
.1).AND
.(IRZ
.EQ
.0))TCPU
=TCPU
+AT1
+AT2
+AT3
226 IF((IP2
.EQ
.1).AND
.(IRZ
.NE
.0))TCPU
=TCPU
+AT1
+AT2
+AT3
+AR2
228 IF((IP3
.EQ
.1).AND
.(IFOIS*IBX1
.EQ
.IB1
))TCPU
=TCPU
+AT1
+AT2
+AT5
+AR2
229 IF((IP3
.EQ
.1).AND
.(IFOIS*IBX1
.NE
.IB1
))TCPU
=TCPU
+AT1
+AT2
+AT6
+AR2
230 IF((IP1
.EQ
.1).AND
.(IRZ
.EQ
.1))TCPU
=TCPU
+AR5
231 IF((IP1
.EQ
.1).AND
.(IRZ
.EQ
.2))TCPU
=TCPU
+AR5
233 IF(TTIOG
.LE
.0.) GOTO 99
234 IF(TTIOG
.GE
.TIOOP
) GOTO 99
241 99 IF(IB1
.GE
.MAX
)GOTO17
244 4 T1
=JOFI*N20*
(L1
-1)*REQ
246 T3
=JOFI*N20*N30*
(RAD
+REQ
)*K1
247 T4
=JOFI*
(K1*N30*N20*
(2*RMI
+REQ
))
248 T5
=JOFI*N20*N30*
(2*RAD
+REQ
)*K1
/2
249 T6
=2*JOFI*
(K1*N20
)*((5*RMI
+RMU
)+4*RAD
+(L1
-1)*(2*RAD
+REQ
)+N30*2*
251 T7
=JOFI*2*K1*
(L1
-1)*(2*RAD
+REQ
)
252 T9
=JOFI*N10*N20*K1*
(REQ
+RMI
)/2+M1*M2*
(REQ
+RDI
+2*RAD
)
253 T8
=JOFI*N10*N20*K1*
(3*REQ
+9*RAD
+4*RMU
+RMI
)/2
254 T10
=JOFI*K1*
(3*RMU
+2*(RMI
+RAD
)+N40*
(3*RMI
255 %+4*RMU
+3*(RAD
+REQ
)+N30*
(2*RAD
+REQ
)))
258 TNR
=(N40
+(PIO
-2)*N20
+(M2
-(JOFI
-1)*N40
+L2
-1))*(RMU
+RMI
+RAD
+REQ
+
259 %N30*
(2*RAD
+2*REQ
)*K1
)
263 BT3
=JOFI*N40*
(VY1
+K1*N30*VY2
)
264 BR1
=M2*
(2*(RAD
+RMI
+RMU
+REQ
)+(M1*2*
(REQ
+RAD
)))+M2*
(3*(
265 $REQ
+RAD
+RMU
)+4*(RMI
)+M1*
(2*(RAD
)+REQ
))
266 BR2
=M2*
(2*(REQ
+RMI
)+3*RMU
+M1*
(2*RAD
+REQ
))
267 TCPU
=T1
+T2
+T3
+T4
+T5
+T6
+T7
+T8
+T9
+T10
268 TCPU
=TCPU
+TNR
+BT1
+BT2
271 IF(LIOF*N30
.EQ
.M1
) GOTO 2344
273 2344 IF(IRZ
.EQ
.0)TCPU
=TCPU
+BT3
274 IF(IRZ
.NE
.0)TCPU
=TCPU
+BT3
+BR2
275 TIOOP
=2.*FLOAT
(M1
)*FLOAT
(M2
)*TTRANS
+2.*FLOAT
(K2
)*TACC
+TCPU
282 IF(TTOT
.LE
.0.) GOTO 3
283 IF(TTOT
.GE
.TTOTOP
)GOTO3
307 IF(N1
.EQ
.0.OR
.N2
.EQ
.0) CALL OUTSTR
(0,'PAS DE PLACE MEMOIRE SUFFISA
308 $NTE POUR UNE MISE EN OEUVRE PAR BLOCS$')
311 IF(IHJ*
(N1
-L1
+1).NE
.M1
)IHJ
=IHJ
+1
313 IF(IHJ1*2
.NE
.IHJ
)GOTO7778