. THIS SECTION CHECKS FOR EXPRESSIONS TO ELIMININATE AT A DEFINITION14020 RGS . REGISTER DEFINITION LGFIF . NESTED LOGICAL IF DEFINITIONS $(1) . LIT . DB1* LR MX,(077777,0) 14030 SX,1 B10,DBEX SAVES EXIT 14040 LA,H2 A8,DEFNO SSC A8,18 . MOVE TO COMPARE WITH CP1 140600 XMSE A8,SUBEXA,NEXA,2,DB4 . LOOK FOR=COMPUTE POINT DB4 . J *DBEX . THIS SECTION OF CODING UPDATES THE 4TH WORDS OF THE SYMBOL TABLE 14180 . CRCDP OR CREDP WHENEVER A DEFINITION POINT ITEM COMES ALONG 14190 . DP2 IS THE ENTRANCE FOR GENERAL DPS, DP3 FOR COMMON AND DP4 FOR 14200 . EQUIVALENCE 14210 DP2* LA A0,FL30 14220 AND,016 A0,077777 RETAINS 15 BITS OF SYMBOL TABLE REFERENCE14230 A,H2 A1,CRISYM AN,M A1,SYM LA A4,FL30 14240 AND A4,(07777700000) RETAINS 15 BITS OF DEFINITION POINTS 14250 SSL A5,15 14260 LA,4 A14,SYM+3,A1 TP A14 LN A14,A14 SA,1 A14,DEFNO TNZ,H1 IFDST SA,1 A14,SYM+3,A1 . DP1 GOES TO DP2 SA,2 A5,SYM+3,A1 . NEW DP1 TO SYM TABLE TZ,H1 IFDST J IFDP1 L,S1 A14,SYM+1,A1 OR,M A14,010 SHOW VARIABLE DEFINED L,S1 A14,FL30 TNE,M A14,046 J $+3 TNZ ENTDPF INHIBITED ON DPS FROM ENTRY STATEMENTS S,S1 A15,SYM+1,A1 L,H1 A14,SYM+2,A1 AND,M A14,0307 TNE,M A15,1 J DP2A ALWAYS LOOK FOR STATEMENT FUNCTION AND,M A14,7 TNE,M A15,5 SKIP TESTING BIT 17 FOR FUNCTIONS OR SUBROUTINES J $+3 BUT NOT DUMMY ARGUMENTS AND,M A14,3 JNZ A15,$+5 TEP,M A14,0100 TEST ABNORMAL BIT J DP2A ALWAYS LOOK IF THIS BIT SET TP,3 SYM+2,A1 143110 J DP2A . INDUCTION VARIABLE G3 NOT MARKED 143120 JNBL A14,SYM+1,A1,S1 4 DP2BJ AND,016 A14,073 14330 SA,015 A15,SYM+1,A1 G3 IS NOW SET TO ZERO 14340 DP2A LMJ B10,DB1 . CHECK FOR ITEMS TO KICK OUT 143500 SZ IDF . CLEAR FLAG DP2B L A0,FL30 JNBL A0,FL30 077777 GET . CHECK FOR FUNCTIONS AN,M A1,SYM A,H2 A1,CRISYM TNZ CRIFZ CHECK FOR INTERNAL FUNCTIONS J $+5 L,H1 A0,SYM+2,A1 AND,M A0,0207 CHECK FOR INTERNAL FUNCTIONS TNE,M A1,0201 SLJ LBB5 TNZ DP2F J GET SZ DP2F J ITV6J DP2BJ L,H2 A0,IFDST . TYPE OF LAST STATEMENT TE,M A0,011 . TEST ARITHMETIC IF J DP2B L A0,SYM,A1 TE A0,('$LGIF$') J DP2B J DP2A DP2BJ L,H2 A0,IFDST . TYPE OF LAST STATEMENT TE,M A0,011 . TEST ARITHMETIC IF J DP2B L A0,SYM,A1 TE A0,('$LGIF$') J DP2B J DP2A DP3* LA A4,FL30 14370 AND A4,(07777700000) RETAINS 15 BITS OF DEFINITION POINT 14380 SSL A5,15 LA,2 A14,CRCDP 144100 SA,1 A14,DEFNO SA,1 A14,CRCDP . DP1 GOES TO DP2 SA,2 A5,CRCDP TNZ FLCM 14450 J $+3 . NO EXP OF COMMON VARIABLES HAVE OCCURED 14460 SZ FLCM 14470 LMJ B10,DB1 14480 JNBL A0,FL30 077777 GET . EXIT NO FUNCTION ARGUMENT 14490 J DP2+2 14500 DP4* L A4,(07777700000) AND A4,FL30 14530 SSL A5,15 14540 LA,2 A14,CREDP 145600 SA,1 A14,DEFNO SA,1 A14,CREDP . DP1 GOES TO DP2 SA,2 A5,CREDP TNZ FLEQ . NO EXP OF EQUIVALENT VARIABLES HAVE OCCURED 14600 J GET 14610 SZ FLEQ 14620 LMJ B10,DB1 14630 J GET EXIT OF ROUTINE 14640 N3IFP* L A2,IFDST TLE,M A2,11 TLE,M A2,6 SR,H1 R4,IFDST NOT A STATEMENT THAT CHANGES CONTROL J DP2 IFDP1 SZ,H1 IFDST L B5,LGLNST GET LOGICAL IF NESTNG LEVEL TZ IFSPI J GET J DP2A . THIS SECTION OF CODE IS ENTERED WHENEVER AN END DO ITEM IS FOUND 14660 . IN F30 14670 N3END* LX B1,LOOPNU LA,016 A0,07777 MASK TO LOAD PLATEAU NUMBER 14690 AND,H1 A0,FL30 . PLATEAU NUMBER TO A1 147000 AX,M B1,1 . UP LOOP LEVEL SA,H2 A1,PLAT . PLATEAU FOR DON 147010 S,H1 A1,INDVAR,B1 . SAVE PLATEAU FOR LABEL SEARCHES LX,H2 B2,LOOP+1,A1 . LOAD SYMBOL TABLE REF 147200 L A14,LGLNST . CURRENT LOGICAL IF LEVEL S,H2 A14,IVLGQ,B1 . FOR N3SA L A14,LGLNST . CURRENT LOGICAL IF LEVEL S,H2 A14,IVLGQ,B1 . FOR N3SA END1J S,T3 A15,INDVAR,B1 . SET UNSAFE LOOP BIT SBT A14,2,B2,S4,040 . BIT IMPLIES CURRENT USE AS IND VAR S,T3 A1,2,B2 . SET CURRENT PLATEAU FOR INDUCTION VARIABLE JBL A14,2,B2,S2 020 END3 . IND VAR WAS IN COMMON END1 LA,2 A14,CRGSYM LOWER BOUNDARY OF GLOBAL SYMBOLS 14740 LA,1 A15,CRGSYM 14750 TNW,1 A14,FL30 14760 J END4 INDUCTION VARIABLE WAS GLOBAL 14770 END2 SX,1 B1,LOOPNU 14780 LA,M A14,040 147900 SA,012 A14,2,B2 . SETS BITS TO IMPLZ INDUC VAR 14800 L,M A14,1 TEP A14,INDVAR,B1 . TEST FOR UNSAFE LOOP LMJ B11,LBB1 . TREAT END AS LABEL IN UNSAFE LOOP LMJ B9,LBB3+2 J ITV7 148100 END3 SBT A14,INDVAR,B1,S6,020 . THIS BIT IMPLIES COMMON J END1 14830 END4 SBT A14,INDVAR,B1,S6,010 . THIS BIT IMPLIES GLOBAL J END2 BIT IS SET INDICATING GLOBAL 14850 . THIS SECTION OF CODE IS ENTERED WHENEVER A BEGIN DO ITEM IS FOUND 14870 . IN F30 14880 BEG* LX,1 B1,LOOPNU LOADS NUMBER IN INDVAR 14990 L B5,LGLNST SZ 2,A0,S4 . CLEAR INDUCTION VARIABLE BIT L,H2 A1,LOOPNU AN,H2 A1,N3MXRG LARGEST R REGISTER TG,M A1,1 TEST FOR NEST LEVEL OVER 12 SA,S1 A1,LP5TB,A1 FLAG TO USE TEMP FOR R REGISTER SR R4,LOOPIF FLAG FOR IMPLIED LOOP IN IF LMJ B11,TF31 149920 . THIS NEXT SECTION MOVES ALL EXPRESSIONS AT LEAST TO THE TOP OF THE 15100 . LAST LOOP AS FAR AS SENDING F31 TO F50 IS CONCERNED 15110 LR R2,(0700000) LX,H1 B2,INDVAR,B1 . CURRENT BEGIN PLATEAU L A5,CRTRAC EXTRACT BIT THAT SAYS ALWAYS MATERIALIZE SSL A5,1 FOR TRACE AND A5,N3TRF2 CONTAINS 1 IF TRACE LOOPS ON JNZ A6,BEGG LA,S5 A4,INDVAR,B1 AND,S6 A4,INDVAR,B1 AND,M A5,030 . BITS TO TELL IF INDUCTION VARIABLE SHOULD JNZ A6,BEGG BEGH OR,S3 A6,LOOP+1,B2 . BE MATERIALIZED IF CALL TO EXTERNAL SA,S3 A7,LOOP+1,B2 . AND IS COMMON OR INTERNAL AND GLOBAL LA,H2 A4,SEQNO BEGF L,H1 A3,NEXA BEJC JZ A3,BEJX L,H1 A14,3,A3 AND,M A14,077777 A,M A15,1 SZ A6 L A7,LOGFCP L A8,LOGBCP A,M A8,1 TW A7,SEQNO J BEJA TNW A7,A15 J BEJQ BEJB L,M A6,4 J BEJS BEJQ TNZ IFELSE J BEJS TLE A15,IFELSE J BEJS J BEJB . WAS LAST ON ELSE BRANCH BEJA JNBL A12,4,A3,S4 2 BEJS A,M A6,010 . BIT FOR ALTERING FIRS USE SEQUENCE J BEJB BEJS L,S4 A14,4,A3 A,M A6,010 . BIT FOR ALTERING FIRS USE SEQUENCE OR A14,A6 S,S4 A15,4,A3 MLU,H1 A4,3,A3 S,H1 A5,3,A3 L A3,SXLNK J BEJC BEJX . SR R4,MEL . TABLES MUST EMPTY AT BEGIN DO LMJ B11,SEND 151700 DFL LOOPNU 1 151710 J GET 15180 BEGG SBT A14,LOOP,B2,S4,4 . MARK FOR MATERIALIZATION J BEGH $(2) . DBEX J $-$ DP2F* +0 END