CONTR . 1108 FORTRAN 5 LOOP ANALYSIS AND SUBSCRIPT OPTIMAZATION SECTION . THE FOLLOWING PROCEDURE DEFINES ALL THE REGISTERS AND J FIELDS RGS . REGISTER DEFINITIONS C EQU N3C PLATC EQU PLAT . FORM OPERAND FROM INPUT PARAMETERS IN A6(OPREF), 0037210 . A8(OP TYPE), AND A11(OP SIGN). 0037220 . OPERAND IN A1 ON EXIT 0037230 $(1) . LIT . FOP S,H2 B11,FP90 L A1,A8 IND 0037250 L A3,A6 OPERAND 0037260 TG,M A1,2 J FP01 NOT A SYM REF 0037280 SSC A6,34 *4 0037290 A A6,CRISYM FP01 L A1,CTAB1,A1 ID AND TYPE A A1,A6 A A1,A11 J *FP90 REENT . ANALYZE THE LOOP LIMITS TO DETERMINE IF THE 0037470 . LOOP LIMITS,(A,B, AND C), HAVE COMPUTE POINTS OUTSIDE 0037480 . THE NEXT OUTER DO. 0037490 . PLATC=PLATEAU NO., AX=INITIAL, BX=FINAL, CX=INCREMENT 0037500 ALL* S B11,AL90,0,H2 37510 SZ INVAR L B2,PLATC B2=PB 0037520 S B2,NSUBM NON-ZERO TO COLLAPSE FLAG 00375320 L A0,LOOPNU 00375340 S A0,LEVC 00375360 L,T3 B3,LOOP,B2 LOOPPE B3=PE 0037540 L,T1 B4,LOOP+1,B2 LOOP,PB(OD) B4=PB(OD) 0037550 L,H1 A1,LOOP,B2 LOOP,SB 0037560 L,H1 A2,LOOP,B3 LOOP,SE 0037570 S A1,SEQB 0037580 S A2,SEQE 0037590 L,T3 B5,LOOP,B4 LOOP,PE B5=PE(OD) 0037600 L,H2 A0,LOOP+1,B2 . SYM REF OF IND VAR L,S3 A2,2,A0 . EXTRACT TYPE SSL A2,3 TNE,M A2,1 . TEST FOR INTEGER J $+4 SBT A14,LOOP,B2,S4,4 . MARK FOR MATERIALIZATION L,S2 A0,CX RESTORE INCREMENT INFO SSC A0,34 SINCE PHASE 1 WILL NOT A,S1 A0,CX HAVE PUT CORRECT INFO AND,M A0,7 L,S3 A2,LOOP+1,B3 AND,M A2,070 A A1,A3 S,S3 A1,LOOP+1,B3 L,S3 A0,CX SSC A0,3 SSL A0,18 A,H2 A0,CX S,H2 A0,LOOP+1,B3 L,S2 A0,+AX SSC A0,34 SHIFT LEFT 2 0037620 A,S1 A0,+AX ID SSC A0,33 0037640 S,S1 A0,LOOP+1,B3 LOOP,IB 0037650 L A0,(0110100000001) 00378700 S A0,POL+1 00378800 S,T2 B2,POL+1 PLATEAU 0037890 L,S3 A0,+AX SIGN SSC A0,3 SSL A0,18 A A0,+AX S,H1 A0,LOOP,B2 LOOP,BEG 0037670 . FORM LOOP COUNT EXPRESSION 0037680 A A0,(04000000) AND A0,(0777774377777) L A0,LOOP+1,B2 . POINT TO I.V. L,S3 A2,2,A0 . GET TYPE OF I.V. SSL A2,4 . 0=> INTEGER 1=> REAL/D.P. S A1,POL+3,A2 -AX L A0,BX 0037770 S A0,POL+2,A2 BX 0037780 L A0,CX 0037790 L A1,(0101200000000) 0037800 S A1,POL+4,A2 +OP 0037810 S A0,POL+5,A2 CX 0037820 L A1,(0101300000000) /OP 0037830 L A0,(0101600000000) SUB DEF OP 00378400 S A1,POL+6,A2 0037850 JZ A2,INTIV . INTEGER I.V. S A0,POL+9 . L A0,N1FIX . S A0,POL+2 . L A0,(0102000,0) . CONVERT TO INTEGER A,H2 A0,N1FIX . S A0,POL+8 . L,M A0,9 . LONGER LENGTH J SETLEN . INTIV S A0,POL+7 . L,M A0,7 0037900 SETLEN S,H2 A0,POLG 00379100 LMJ B11,ASF ADD EXPRESSION FOR COUNT TO FILE0037920 L A0,NLCS 0037930 TNE A1,(030104000001) L A1,(030100,1) S A1,COUNT 0037940 S A1,LCS,*A0 0037950 S A0,NLCS 0037960 SZ OPTF SET OPTF TO NON-OPTIMAL 0037970 TNZ B4 0037980 J *AL90 NO OUTER DO 0037990 L,S4 A0,LOOP,B2 LOOP,C 0038000 AND,M A0,3 0038010 JNZ A1,*AL90 NOT OPTIMAL OR UNSAFE 0038020 MVW 077777,0,M TX . SET TO ZERO COMPUTE POINT L,T3 A0,LOOP,B4 . END PLATEAU OF NEXT OUTTER LOOP L,H2 A1,LOOP+1,A0 . GET ORIGINAL INCREMENT ITEM TNE A1,(0777777) J *AL90 . PREVENT LOOP COLLAPSE L A0,+AX LMJ B11,ALE ANALYZE LOOP ELEMENT COMPUTE PT 0038050 L A0,BX 0038060 LMJ B11,ALE 0038070 L A0,CX 0038080 LMJ B11,ALE 0038090 L,H1 A0,TX 0038100 AND A0,(0377777) 0038110 TG,H1 A1,LOOP,B4 LOOP,SB OUTER 0038120 J *AL90 COMPUTE POINT INSIDE LOOP 0038130 L,H2 A2,TX 0038150 TLE,H1 A2,LOOP,B5 J AL90 AL20 S B2,OPTF NON-ZERO TO OP FLAG 0038170 SZ NSUBM ZERO TO COLLAPSE FLAG 00381750 . AL90 IS ALT EXIT FROM ALE 0038180 J *AL90 REENT . EXPRESSION NO. FOR SCAN IN A0 0038210 . PROCESS SUBSCRIPT EXPRESSION 0038220 PSE* S B11,PS90,0,H2 38230 S,H1 A0,SCAN SCAN,EX 0038240 SXLOC A1 A0 LNKSBX L B1,A1 LNKSBX L B2,PLATC B2=PB 0038270 L,M A5,07777 0038280 L,T1 B4,LOOP+1,B2 LOOP,PB(OD) B4=PB(OD) 0038290 L,T3 B3,LOOP,B2 LOOP,PE B3=PE 0038300 L,T3 B5,LOOP,B4 LOOP,PE B5=PE(OD) 0038310 L,M A7,7 0038320 L A10,(04000000) SZ A9 T1 A9=T1 0038340 L,S6 A1,1,B1 SUBEX,ZZ (LEVM) 0038350 JZ A1,PS02 SUBSCRIPT NOT SCANNED BEFORE 0038360 L,H1 A2,3,B1 SUBEX,PODO PB(OD) 0038370 TE A2,PLATC 0038380 J PS80 SUBSCRIPT NOT IN CURRENT NEST 0038390 PS02 S,H1 B4,3,B1 SUBEX,PODO 0038400 TNZ OPTF 0038410 J PS12 NON-OPTIMUM LOOP 0038420 JNZ A1,PS10 0038430 L,M A9,1 T1 0038440 LMJ B11,SSE SCAN EXPRESSION 0038450 LMJ B11,DLEV DETERMINE NEST LEVEL OF COMPUTE 0038460 S,S6 A2,1,B1 SUBEX,ZZ (LEVM) 0038470 LMJ B11,ILI OUTPUT INNER INC TO F40 0038480 L,S6 A1,1,B1 SUBEX, ZZ 00384900 PS10 TE,H2 A1,LEVC 00385000 J PS20 MOVE SUBSCRIPT OUT ANOTHER LOOP 0038510 PS12 LMJ B11,FIV FORM INITIAL VALUE EXPRESSION 0038520 S B2,NSUBM NON-ZERO TO NSUBM 0038530 TNZ,S6 1,B1 SUBEX, ZZ 00385400 LMJ B11,ILI OUTPUT LOOP INC TO F40 0038550 PS16 L,M A0,0 0 TO RELF (A0) J *PS90 0038570 PS20 TE,M A9,1 0038580 LMJ B11,SSEM SCAN SUB FOR MULT ON OUTER DO 0038590 L A0,2,B1 SUBEX WORD 3, INC TERM 0038600 TNE A0,(030100000000) ZERO OP, ID=3 T=1 0038610 J PS70 IND VAR MULT IS ZERO 0038620 . ADJUST ZZ, THE MAX LEVEL, BY COMPUTE PT OF INITIAL VALUE0038630 L,S1 A6,LOOP+1,B3 LOOP,IB 0038640 SSL A6,3 0038650 L,H1 A0,LOOP,B2 LOOP,BEG 0038660 TP,XM 0,A0 AN,M A0,0,*0 PS22 TG,M A6,3 0038670 J PS70 INITIAL VALUE A CONSTANT 0038680 TE,M A6,2 0038690 J PS24 INITIAL VALUE AN IND VAR 0038700 LMJ B11,ACP ANALYZE COMPUTE PT 0038710 LMJ B11,DLEV DETERMINE LEVEL OF COMPUTE PT 0038720 L A0,A2 CSC20 J PS26 0038730 PS24 L,T3 A2,LOOP,A0 LOOP,PE 0038740 LA,M A0,1 A,S2 A0,LOOP+1,A2 . LOOP LEVEL PS26 TG,S6 A0,1,B1 . SUBEXX,ZZ S,S6 A0,1,B1 . SUBEXX,ZZ PS70 LMJ B11,DOI OUTPUT OUTER INC TO F40 0038790 PS80 L,H1 A0,LOOP,B4 SEQ OUT DO TO RELF (A0) J *PS90 REENT . DETERMINE IF LOOP HAS COLLAPSED 0038830 DLC* S B11,DC90,0,H2 38840 L B2,PLATC B2=PB 0038850 L A2,(0110100000000) ID=9,T=1 S A2,POL+0 00388700 S,T2 B2,POL+0 PLAT 00388800 L A1,LOOPNU TRACE L,S4 A0,LOOP,B2 TRACE TOP,M A0,4 TEST FOR MATERIALIZATION TRACE SZ,H2 LP5TB,A1 TRACE TZ NSUBM 0038890 J DC04 NON-ZERO INCREMENTS 0038900 L,T3 B3,LOOP,B2 LOOP,PE B3=PE 0038910 L,S3 A0,LOOP+1,B2 LOOP,F 0038920 SSL A0,2 F3 0038930 JNB A0,DC04 NO COLLAPSE 0038940 L,S4 A0,LOOP,B3 LOOP,D 0038950 SSL A0,3 D4 0038960 JNB A0,DC04 NO COLLAPSE 0038970 L,S4 A0,LOOP,B2 LOOP,C 0038980 SSL A0,2 C3 0038990 JB A0,DC04 NO COLLAPSE 0039000 L,T1 B3,LOOP+1,B2 B3 = PB(OD) NOP L,S4 A0,LOOP,B3 C(OD) SSL A0,2 C3(OD) JB A0,DC04 NO COLLAPSE L A1,(030104,1) L A0,LOOPNU S,S3 A1,LP5TB,A0 J DC50 0039020 DC04 L A1,(01000002) A1=NPOL 00390300 TNE A1,NLCS 00390350 J DC92 SINGLE COUNT 00390400 L A0,(01000002) A0=T1 00390450 L A3,(0101400,0) . *OP L A4,(030100000001) 0039060 L A5,(0101200000000) 0039070 L A2,LCS+1 0039080 S A2,POL+1 0039090 S A4,POL,*A1 CONSTANT 1 00390940 S A5,POL,*A1 + OP 00390960 L,M R1,63 00391000 DC06 TNE A0,NLCS 0039100 J DC08 0039110 L A2,LCS,*A0 0039120 S A2,POL,*A1 0039130 S A4,POL,*A1 0039140 S A5,POL,*A1 0039150 S A3,POL,*A1 0039160 JGD R1,DC06 00391700 XER 40 ERROR 00391750 DC08 L A2,(030104000001) -1 S A2,POL,*A1 0039210 L A2,(0101200000000) +OP 0039220 S A2,POL,*A1 0039230 DC40 L A2,(0101600000000) SUB DEF OP 00392400 S A2,POL,A1 0039250 LXM,M A0,1 0039260 S A0,NLCS 0039270 S,H2 A1,POLG 00392800 LMJ B11,ASF ADD LOOP COUNT TO F50 0039290 DC50 L A0,POL+0 00393000 A,H2 A0,INVAR L A2,SEQB 0039310 AN,M A2,1 00393150 LMJ B11,AILF ADD COUNT ITEM TO F40 0039320 L,T1 B11,LOOP+1,B2 LOOP,PB(OD) 00393140 S B11,PLATC 00393160 J *DC90 REENT DC92 L A1,COUNT 00393300 L,M A0,1 00393340 S,H2 A0,NLCS 00393360 J DC50 00393380 . SCAN SUBSCRIPT EXPRESSION AND DETERMINE MOST LIMITING 0039340 . COMPUTE POINT OF ELEMENTS, LOWEST INDUCTION VARIABLE PLA0039350 . MULTC, AND MULTO. 0039360 . SCAN SUBSCRIPT EXPAND 0039380 . 1. DETERMINE MOST LIMITING COMPUTE POINT OF NON-INDUCTION 0039390 . ELEMENTS AND PLACE IT IN TX 0039400 . 2. DETERMINE THE LOWEST INDUCTION VARIABLE 0039410 . PLATEAU NUMBER AND PLACE IT IN LOWP 0039420 . 3. DETERMINE THE MULTIPLIER ON THE CURRENT 0039430 . AND NEXT OUTER INDUCTION VARIABLES AND PLACE 0039440 . THEM IN MULTC AND MULTO 0039450 SSE S,H2 B11,SE90 L,M B7,07777 LOWP B7=LOWP 0039470 MVW 077777,0,M TX . SET TO ZERO COMPUTE POINT L,M B9,0 B9=T3 0039490 SZ MULTO 0039500 SE01 SXLOC A4 SCAN,B9,H1 KSBX L B6,A4 KSBX L,M A4,0 OP FLAG 0039540 L,S5 A3,0,B6 0039550 SSL A3,3 SUBEX,A-PRIME 0039560 AND,T1 A5,0,B6 SUBEX,A 0039570 L A0,1,B6 0039580 SSL A0,3 AND A10,A0 SUBEX,G3 IN A 11 0039600 J SE10 0039610 SE04 L,M A4,010000 0039630 AND,S5 A7,0,B6 0039640 L A3,A8 SUBEX,B-PRIME 0039650 AND,T2 A5,0,B6 SUBEX,B 0039660 L A0,1,B6 0039670 SSL A0,2 AND A10,A0 SUBEX,G2 IN A11 0039690 SE10 TG,M A3,8 SLJ XERV EX SESW,A3 . OP IS AN EXPRESSION 0039710 SE20 S A4,SCAN+1,B9 SCAN,X 0039720 S,H1 A6,SCAN+1,B9 SCAN,EX 0039730 A,M B9,1 0039740 SXLOC A0 SCAN,B9,H1 LNKSBX L,S4 A1,1,A0 . EXPRESSIONS INVOLED IN SUBSCRIPTS SSL A1,1 . ARE CONSIDERED TO BE PRIMATIVES JB A1,SE3DN . THESE HAVE J2 SET L,S6 A1,0,A0 TE,M A1,020 LOOK FOR LOC FUNCTION J SE01 0039750 L,S6 A1,1,A0 TE,M A1,044 J SE01 SE3DN L A2,2,A0 AND A2,(077777077777) S A3,TY LMJ B11,C TREAT COMPUTE POINT OF EXPRESSION AS IF VARIABLE JZ A4,SE04 BURRIED WITH SUBSCRIPTED EXPRESSION TZ B9 J SE01 J SE70 . OP IS AN INDUCTION VARIABLE 0039760 SE30 LMJ B11,TPL ANALYZE INDUCTION VARIABLE 0039770 J SE60 0039780 . OP IS A VARIABLE 0039790 SE40 SSC A6,34 MULT BY 4 0039800 A A6,CRISYM L A0,A6 0039820 LMJ B11,ACP ANALYZE COMPUTE POINT 0039830 SE60 JZ A4,SE04 0039840 SE61 TNZ B9 00398500 J SE70 SCAN COMPLETE 00398600 AN,M B9,1 00398700 NOP 0,0 00398750 TZ,S4 SCAN+1,B9 SCAN,X 0039880 J SE61 0039890 SXLOC A4 SCAN,B9,H1 LNKSBX L B6,A4 LNKSBX J SE04 LNKSBX SE70 L,H2 A0,LOOP+1,B7 LOOP,SYM(I) L A1,PLATC TNE A1,B7 J SE94 L A1,3,A0 COMPUTE POINT OF LOWP S A1,TY LMJ B11,C DETERMINE LIMITING COMPUTE POINT0039980 J *SE90 REENT SE94 L B11,SE90 00399920 L A2,LEVC 00399940 J 1,B11 ALTERNATE EXIT 00399960 SESW J SE60 CONSTANT IN SYM 0040000 J SE40 VAR IN SYM 0040010 J SE20 EXP 0040020 J SE30 IND VAR 0040030 J SE60 CON IN A 0040040 J SE60 LOC OF A CON 0040050 J SE60 DROP OUT 0040060 J SE60 SUB TERM 0040070 . SCAN SUBEXPRESSION, EXP, TO DETERMINE 0040090 . MULTIPLIER ON TH INDUCTION VARIABLE OF 0040100 . NEXT OUTER DO. 0040110 . MULTIPLIER IN MULTO ON EXIT 0040120 SSEM S,H2 B11,SM90 L,M A2,7 0040140 L,M B9,0 B9=T3 0040150 SZ MULTO 0040160 SM01 SXLOC A4 SCAN,B9,H1 LNKSBX L B6,A4 LNKSBX L,M A4,0 OP FLAG 0040200 L,S5 A3,0,B6 0040210 SSL A3,3 SUBEX,A-PRIME IN A3 0040220 AND,T1 A5,0,B6 SUBEX,A IN A6 0040230 L A0,1,B6 . SIGN TO A11 SSL A0,3 AND A10,A0 J SM03 0040240 SM02 L,M A4,010000 OP FLAG AND,S5 A2,0,B6 SUBEX,B-PRIME IN A3 0040270 AND,T2 A5,0,B6 SUBEX,B IN A6 0040280 . ANALYZE OPERAND 0040290 L A0,1,B6 . SIGN TO A11 SSL A0,2 AND A10,A0 SM03 TE,M A3,02 0040300 J SM06 NOT AN EXPRESSION 0040310 S,H1 A6,SCAN+1,B9 SCAN,EX 0040320 S,H2 A4,SCAN+1,B9 SCAN,X 0040330 A,M B9,1 0040340 J SM01 0040350 SM06 TE,M A3,3 0040360 J SM10 NOT AN IND VAR 0040370 TE A6,B4 PB(OD) 0040380 J SM10 0040390 LMJ B11,FIM FORM INDUCT MULT 0040400 S A1,MULTO 0040410 SM07 J *SM90 EXIT 0040420 SM10 JZ A4,SM02 0040430 SM11 TNZ B9 J *SM90 REENT AN,M B9,1 NOP 0,0 TZ,S4 SCAN+1,B9 SCAN,EX 0040470 J SM11 0040480 SXLOC A4 SCAN,B9,H1 LNKSBX L B6,A4 LNKSBX J SM02 LNKSBX . FORM INITIAL VALUE EXPRESSION AND OUTPUT TO F50 OUTPUT 0040520 . INITIAL VALUE ITEM TO F40 DETERMINE MULTC 0040530 FIV S,H2 B11,FV90 L,M B9,0 B9=T5 0040550 L,H1 B6,SCAN L B7,(01000002) B7=NPOL 0040560 SXLOC A0 B6 L B11,A0 L,M A0,03616 TE,T3 A0,0,B11 J FV01 L,S3 A0,1,B11 SSL A0,5 JB A0,FV01 -I S B6,INVAR FV01 SXLOC A5 SCAN,B9,H1 LNKSBX L B6,A5 LNKSBX L,M A5,07777 LNKSBX . EXAMINE OP A 0040600 L,M A4,0 OP FLAG 0040610 L,S5 A8,0,B6 SUBEX,A-PRIME IN A8 0040620 SSL A8,3 0040630 L A0,A8 0040640 AND,T1 A5,0,B6 SUBEX,A IN A6 0040650 L A1,1,B6 0040660 SSL A1,3 AND A10,A1 SUBEX,G3 IN A11 0040680 TG,M A0,8 SLJ XERV EX FVSW,A0 . EXAMINE OP B 0040700 FV03 L,M A4,010000 OP FLAG 0040710 AND,S5 A7,0,B6 SUBEX,B-PRIME IN A8 0040720 L A0,A8 0040730 AND,T2 A5,0,B6 SUBEX,B IN A6 0040740 L A1,1,B6 0040750 SSL A1,2 AND A10,A1 SUBEX,G2 IN A11 0040770 FV08 TG,M A0,8 SLJ XERV EX FVSW,A0 . OP IS AN EXPRESSION 0040790 FV09 L,M A12,010 LNKSBX SXLOC A1 A6 LNKSBX NOP 0,0 AND,S4 A12,2,A1 SUBEX,V1 IN A11 0040840 JZ A13,FV19 NO IND VAR IN EXP 0040850 S,H1 A6,SCAN+1,B9 SCAN,EX 0040860 S,H2 A4,SCAN+1,B9 SCAN,X 0040870 A,M B9,1 0040880 J FV01 0040890 . OP IS AN INDUCTION VARIABLE 0040900 FV10 TNG A6,PLATC 0040910 J FV19 IND VAR IS FROM OUTER DO 0040920 TE A6,PLATC 0040930 J FV11 0040940 LMJ B11,FIM FORM IND VAR MULT 0040950 S A1,MULTC 0040960 . SUBSTITUTE INITIAL VALUE 0040970 FV11 L A3,A6 PB 0040980 NOP 0,0 0040990 L,T3 A1,LOOP,A3 LOOP,PE 0041000 L,H1 A2,LOOP,A3 LOOP,BEG IN A2 0041010 SSL A2,17 SSC A2,16 A,H1 A2,LOOP,A3 L,S1 A0,LOOP+1,A1 0041020 SSL A0,3 LOOP,IB IN A0 0041030 JZ A11,FV13 + SIGN 0041040 FV12 A A2,A11 0041090 FV13 AND A2,(04377777) A A3,CTAB5-1,A0 ID AND TYPE 0041110 S A3,POL,*B7 0041120 J FV20 0041130 . TEST IF DROP IS ADD OF REGISTER NON ZERO OPERAND FIELD FV19J JZ A6,FV20 . A TRUE DROP OUT . FALL THRU TO FOP AND TREAT AS CONSTANT . ADD OPERAND TO POLISH STRING 0041140 FV19 LMJ B11,FOP FORM OPERAND 0041150 S A1,POL,*B7 0041160 FV20 JZ A4,FV03 0041170 . PROCESS OPERATOR 0041180 FV21 L,S6 A1,0,B6 SUBEX,C IN A1 0041190 TNE,M A1,14 0041200 J FV70 SUBSCRIPT DEFINER 0041210 JZ A1,FV30 IGNORE OP 00412150 A,M A1,01000 ID OF 8 0041220 SSC A1,12 L A3,1,B6 0041230 SSL A3,21 SUBEX, G1 JNB A3,FV27 A A3,(04000000) FV27 S A1,POL,*B7 FV30 L,S4 A0,SCAN,B9 SCAN, X 00412800 SXLOC A1 SCAN-1,B9,H1 LNKSBX AN,M B9,1 LNKSBX L B6,A1 LNKSBX JZ A0,FV03 0041320 J FV21 0041330 FV70 TZ B9 00413350 J FV30 00413400 L A1,(0101600000000) SUB DEF OP 00413450 S A1,POL,B7 0041350 L A1,PLATC 0041360 SSC A1,24 0041370 A A1,EXPN A A1,(0110300000000) ID=9,TYPE=3 0041390 S A1,POL 0041400 S A1,POL+1 EXP NAME 0041410 S,H2 B7,POLG 00414200 LMJ B11,ASF ADD POL TO FILE 50 0041430 L A0,POL 0041440 L A2,SEQB 0041450 AN,M A2,1 0041460 LMJ B11,AILF ADD INIT LOAD TO FILE 40 0041470 J *FV90 REENT FVSW J FV19 CON IN SYM 0041490 J FV19 SYM REF 0041500 J FV09 EXP 0041510 J FV10 IND VAR 0041520 J FV19 CON 0041530 J FV19 LOC OF CON 0041540 J FV19J . DROP OUT SLJ XERV . SUBSCRIPT DEFINER ERROR . THIS SECTION ANALYSES COMPUTE POINTS 0041580 ACP S,H2 B11,AC90 L A3,3,A0 LOAD SYM COMPUTE POINTS 0041600 S A3,TY 0041610 L,S2 A6,2,A0 MODE TO TEST FOR COMMON EQU 0041620 LMJ B11,C TEST BASIC VARIABLE 0041630 SSL A6,4 0041640 JNB A6,$+4 NO COMMON 0041650 L A3,CRCDP 0041660 S A3,TY 0041670 LMJ B11,C ADD COMMON TO COMPUTE POINT 0041680 SSL A6,1 0041690 JNB A6,$+4 L A3,CREDP 0041710 S A3,TY 0041720 LMJ B11,C ADD EQUIVALENCE TO COMPUTE POINT0041730 TNZ CRIFZ J AC90 L,1 A13,CRGSYM L,2 A12,CRGSYM L,M A0,0,A0 TW A12,A0 J AC90 L A3,CRCDP ADD COMMON IV VARIABLE GLOBAL AND INT ROUTINES S A3,TY LMJ B11,C J *AC90 REENT . DETERMINE NEST LEVEL OF COMPUTE POINT 0041760 . NEST LEVEL IN A2 ON EXIT 0041770 DLEV S,H2 B11,DL90 L A0,B4 A0=PB(OD) 0041790 L,XH1 A2,TX 0041800 AND A2,(0377777) A3=UPPER HALF TX 0041810 DL01 L,H2 A4,TX A4=LOWER HALF TX 0041850 L,H2 A2,LEVC A2=LEVEL 00418600 DL02 JZ A0,DL91 L,T3 A1,LOOP,A0 A1=PE 00418800 TNE,H1 A3,LOOP,A0 J DL20 TG,H1 A3,LOOP,A0 0041890 J DL91 DL20 TNG,H1 A4,LOOP,A1 J DL91 L,T1 A0,LOOP+1,A0 PB(OD) 0041930 JGD A2,DL02 0041940 DL91 L A4,IVSQ,A2 AN A4,(1,0) S A4,LADEF J *DL90 REENT . A6=SUBEX,A OR B 0041970 . TEST PLATEAU VALUE 0041980 TPL* S,H2 B11,TP90 0041990 TNG A6,B7 0042000 L B7,A6 NEW LOWP 0042010 TE A6,B2 PLATC 42020 J TP01 NOT THIS PLAT 0042030 LMJ B11,FIM FOR MULT 0042040 S A1,MULTC 0042050 J *TP90 0042060 TP01 TE A6,B4 PLATO 0042070 J *TP90 NOT OUTER PLAT 0042080 LMJ B11,FIM 0042090 S A1,MULTO 0042100 J *TP90 REENT . B1=J,B2=PB,B3=PE 0042120 . B4=PB(OD),B5=PE(OD) 0042130 . ILI-OUTPUT INNER LOOP INCREMENT 0042140 . OUTPUT INNER LOOP INCREMENT 0042160 ILI S,H2 B11,IL90 L,T3 A0,LOOP,B2 PE 00421800 SSC A0,24 0042190 A A0,EXPN A A0,(0110200000000) ID=09,T=2 0042210 S A0,POL+1 0042220 L A0,CX INNER LOOP INCREMENT TERM 0042230 S A0,POL+2 0042240 L A0,MULTC 0042250 S A0,POL+3 0042260 L A0,(0101400000000) *OP 0042270 S A0,POL+4 0042280 L A0,(0101600000000) SUB DEF OP 00422900 S A0,POL+5 0042300 L,M A0,5 0042310 S,H2 A0,POLG 00423200 LMJ B11,ASF ADD SUBEXPRESSION TO F50 0042330 S A1,2,B1 SAVE INC IN SUBEX TAB 0042340 L A0,POL+1 0042350 L,S4 A2,3,B1 AND,M A2,067 CLEAR BIT WHICH SAYS DEFINE AT D P ONLY S,S4 A3,3,B1 L A2,SEQB 0042360 AN,M A2,1 00423650 LMJ B11,AILF OUTPUT LOAD INC ITEM TO F40 0042370 J *IL90 EENT . FORM INDUCTION VARIABLE MULTIPLIER TO BE 0042400 . USED IN FORMING INCREMENTING VALUE 0042410 FIM S,H2 B11,FI90 L,S6 A1,0,B6 SUBEX,C 0042430 TE,M A1,12 0042440 J FI05 C,NOT A*OPERATOR 0042450 S A6,FI91 0042460 S A8,FI91+1 0042470 S A11,FI91+2 0042480 JZ A4,FI02 OP B IS IND VAR 00424900 L,S5 A8,0,B6 0042500 SSL A8,3 SUBEX,A-PRIM IN A8 0042510 AND,T1 A5,0,B6 SUBEX,A IN A6 0042520 L A0,1,B6 0042530 SSL A0,3 AND A10,A0 SUBEX,G3 IN A11 0042550 J FI03 0042560 FI02 AND,S5 A7,0,B6 SUBEX,B-PRIME IN A8 0042570 AND,T2 A5,0,B6 SUBEX,B IN A6 0042580 L A0,1,B6 0042590 SSL A0,2 AND A10,A0 AUBEX,G2 IN ALL 0042610 FI03 XOR A11,FI91+2 0042620 L A11,A12 0042630 LMJ B11,FOP FORM OPERAND 0042640 L A6,FI91 0042650 L A8,FI91+1 0042660 L A11,FI91+2 0042670 J *FI90 0042680 FI05 JZ A11,FI10 + SIGN ON IND VAR 0042690 L A1,(030104000001) MULT -1 J *FI90 0042710 FI10 L A1,(030100000001) MULT=+1 0042720 J *FI90 REENT . B1=J,B2=PB,B3=PE,B4=PB(OD),B5=PE(OD) 0042760 DOI S,H2 B11,DI90 L A0,B5 PE(OD) 0042780 SSC A0,24 0042790 A A0,EXPN A A0,(0110000000000) ID=9, T=0 0042810 S A0,POL+1 0042820 L A0,MULTO 0042830 JNZ A0,DI20 L A0,(030100000000) DI20 S A0,POL+2 L,S3 A0,LOOP+1,B5 LOOP,G2-G1-G3 0042850 AND,M A0,7 0042860 L,H2 A0,LOOP+1,B5 LOOP,INC 0042870 A A0,(03400000) A A0,CTAB5-1,A1 ID AND TY-E AND A0,(0777774377777) S A1,POL+3 L A0,(0101400000000) *OP S A0,POL+4 0042910 L A0,(0101600,0) . SUB DEF ITEM S A0,POL+5 00 9 0 L,M A0,5 0042940 S,H2 A0,POLG 00429500 LMJ B11,ASF ADD SUBEXPRESION TO FILE S A1,POL+2 0042970 L,M A0,5 TYPE=5 0042980 S,S2 A0,POL+1 0042990 L A0,COUNT LOOP COUNT OPERAND 0043000 S A0,POL+3 0043010 L A0,(030100000001) CONSTANT 1 0043020 S A0,POL+4 0043030 L A0,(0101200000000) +OP 0043040 S A0,POL+5 0043050 L A0,2,B1 SUBEX,INNER INC 0043060 S A0,POL+6 0043070 L A0,(0101404000000) * OP WITH - S A0,POL+7 0043090 L A0,(0101200000000) + OP AN,M A2,1 S A0,POL+8 0043110 L A0,(0101600000000) SUB DEF OP 00431200 S A0,POL+9 0043130 S A1,2,B1 SAVE OUTER INC IN SUBEX TAB W3 0043140 L,M A0,9 0043150 S,H2 A0,POLG 00431600 LMJ B11,ASF ADD SUBEXPRESSION TO FILE 50 0043170 TE A1,(030100000000) +0 TNE A1,(030104000000) -0 J *DI90 0043190 S A1,NSUBM NON-ZERO INC 0043200 L A0,POL+1 0043210 L A2,SEQB 0043220 AN,M A2,1 LMJ B11,AILF J *DI90 REENT . ANALYZE COMPUTE POINT OF THE LOOP ELEMNET 0043260 . CONTAINED IN A0. 0043270 ALE S,H2 B11,AE90 TG A0,(0017777777777) 0043290 J AE04 NOT AN IND VAR 0043300 AND,M A0,07777 0043310 TNE A1,B4 B4=PB(OD) 0043320 J *AL90 NON-OP RETURN 0043330 J *AE90 0043340 AE04 TG A0,(0027777777777) 0043350 J AE04J TN,3 2,A0 J AE70 L,T3 A2,2,A0 PLATEAU SBT A4,LOOP,A2,S4,4 MARK INDUCTION VARIABLE FOR MATERIALIZATION AE70 . AE06 LMJ B11,ACP ANALYZE COMPUTE POINT 0043430 J *AE90 REENT AE04J L A1,A0 SSL A1,30 TE,M A1,5 J *AE90 SXLOC A3 A0 L A4,2,A3 AND A4,(077777077777) S A5,TY LMJ B11,C J *AE90 CTAB5 + 010000,0 IND VAR + 020000000000 VAR IN SYM 0043460 + 030000000000 CON IN SYM 0043470 + 0 0043480 + 050000000000 EXP 0043490 + 0 0043500 + 030100000000 CON 0043510 CTAB1 + 030000,0 CON IN SYM + 020000000000 SYM 0043530 + 050000000000 EXP 0043540 + 010000000000 IND VAR 0043550 + 030100000000 CON 0043560 + 030100000000 CON 0043570 + 070000000000 DROP OUT 0043580 + 0110000000000 SUB TERM 0043590 $(2) . LEVC +0 CURRENT LEVEL FP90 J $-$ REENT AL90 J $-$ REENT PS90 J $-$ REENT DC90 J $-$ REENT SE90 J $-$ REENT SM90 J $-$ REENT FV90 J $-$ REENT AC90 J $-$ REENT DL90 J $-$ REENT TP90 J $-$ REENT IL90 J $-$ REENT FI90 J $-$ REENT FI91 RES 3 REENT DI90 J $-$ REENT AE90 J $-$ REENT END