. THIS SECTION CONTAINS THE CODE CONNECTED WITH LABEL ANALYSIS AND . LINKING TOGETHER OF SUBEXPRESSIONS RGS . REGISTER DEFINITIONS LGFIF . NESTED LOGICAL IF DEFINITIONS $(1) . LIT . LBA* . THE NEXT SECTION UPDATES THE BOTTOM OF THE DUMARG TABLE . SO THAT A SEARCH FOR THE COMPUTE POINT OF A DUMMY VARIABLE . THAT IS AN ARRAY WILL SEARCH THRU PROGRAMS ABOVE BUT NOT BELOW LBA4 TZ DUMARC J LBA3B-1 L A0,EPPTR S A0,DUMARC J 0,B11 L A0,DUMARC LBA3B L,S3 A1,1,A0 . TEST IF SITTING ON EBTRY TE,M A1,2 J LBA3A IT WAS NOT L A0,0,A0 . NEXT ON CHAIN J LBA3B . LOOK FOR PROGRAM IN THIS SET LBA3A L A0,0,A0 S A0,DUMARC . SET TO FIRST ENTRY IN NEXT MODULE J 0,B11 . THIS SECTION CHECKS TO SEE IF A LABEL WAS REFERENCED 23630 . RETURNS TO GET ON COMPLETION 23640 LBB* L A3,FL30 AND A3,(077777777) L A0,CRCRFT CROSS REF. OPTION S A0,SLCRX SAVE IT SZ CRCRFT LMJ B11,SLT +CRLBHL LABEL HEAD LINK J GETCRX L A0,SLCRX RESTORE CROSS REF. OPTION S A0,CRCRFT L,S2 A4,2,A1 AND,M A4,7 TNE,M A5,2 J GET THROW LABELS FOR FORMATS AWAY SZ,S3 FL30 S,H2 A1,FL30 SYM TABLE REF OF LABEL TNZ,H2 CRCRFT J LBBNTR SLJ CRSVE S,H1 A1,SLCRX L,H2 A1,SEQNO S,H2 A1,SLCRX L,M A1,1 SHOW LABEL DEFINED SZ SLCRX+1 S,S1 A1,SLCRX+1 LMJ B11,TRCF SLJ CRRSV LBBNTR . LX B5,LGLNST . NESTING LEVEL OF LOGICAL IF S R4,LGLBFL . SHOW LABEL IN LOGICAL IF LA A0,FL30 23750 LMJ B11,TF31 TRANSERS ITEM IN FL30 TO F31 23760 LX B1,LOOPNU TNZ,1 LOOPNU 23780 J LBBC . THIS ROUTINE SEARCHES ONLY 23790 L,S6 A0,INDVAR,B1 JNB A0,LBB3 THIS LOOP IS SAFE LBBC LMJ B11,LBB1 23860 J GET 23870 GETCRX L A0,SLCRX RESTORE CROSS REF. OPTION S A0,CRCRFT J GET . THIS SECTION CHECKS TABLE SUBEXA FOR EXPRESSIONS TO ELIMINATE 23890 . WHEN A LABEL IS MET AT LEVEL ZERO 23900 . RETURNS TO GET ON COMPLETION 23910 LBB1* SR R4,LBX 23920 SZ DEFNO SX,H2 B11,LBB1X 23930 L,H1 A3,NEXA FORWARD LINK NKSBX JZ A3,LBB1X NKSBX LMJ B9,DC1 NKSBX J $-2 NKSBX . THIS SECTION CHICKS TABLES FOR EXPRESSIONS IN AN UNSAFE LOOP 24260 . LABEL WAS TRANSFERED TO WITHIN 24270 . WHEN USED AS A SUBROUTINE BY THE BEGIN DO ROUTINE THE 24280 . ENTRANCE FOR LBB3 IS (LBB3+2) 24290 . RETURNS TO GET WHEN ENTERED A LBB3 24300 . SUBROUTINE ENTRANCE LMJ B9,LBB3+2 24310 LBB3* LMJ B9,$+2 24320 J GET 24330 LBB3T* SX,H2 B9,LBB3AX SR R4,LBX 24350 SZ DEFNO LBB3S L A1,LOOPNU L,H1 A8,IVSQ,A1 . SEQUENCE AT BEGINNING OF LOOP L,H2 A9,IVSQ,A1 . SEQUENCE AT END OF LOOP AN,M A8,1 . ADJUST FOR TW SSC A8,18 SSC A9,18 LR MX,(077777,0) XMSW A8,SUBEXA,NEXA,2,LBB3A1 . SEARCH ON CP1 244200 LBB3A1 LBB3A3 LR,M MX,077777 244700 SSL A8,18 SHIFT SO COMPARISON 24480 SSL A9,18 BE MADE WITH CP2 XMSW A8,SUBEXA,NEXA,2,LBB3A4 . SEARCH ON CP2 245100 LBB3A4 J *LBB3AX REENT . THIS SECTION CHECKS FOR EXPRESSIONS TO ELEININATE WHOSE COMPTE . POINT LIE WITHIN THE NEXT LOGICAL IF LBB6R L A8,LOGFCP SEQUENCE NUMBER AT FRONT OF LOGICAL IF REENT SZ DEFNO AN,M A8,1 L A9,LOGBCP SSC A8,18 SR R4,LBX SSC A9,18 LR MX,(077777,0) XMSW A8,SUBEXA,NEXA,2,LBB6A . SEARCH ON CP1 LBB6A LBB6B LR,M MX,077777 SSL A8,18 SHIFT SO THAT COMPARISON CAN BE MADE SSL A9,18 WITH CP2 XMSW A8,SUBEXA,NEXA,2,LBB6D . SEARCH ON CP2 LBB6D LBB6E SZ LBX J LBB6 . THIS SECTION CHECKS TABLES FOR EXPRESSIONS TO KICK OUT AT THE 24580 . PREAMBLE. AT THIS POINT THERE SHOULD BE NO EXPRESSIONS LEFT 24590 . IN EITHER OF THE OTHER TABLES. 24600 . RETURNS TO GET ON COMPLETION 24610 LBB4* LA,M A6,040 . MASK FOR F 24620 SR R4,LBX 24630 SR R4,FLPR . FLAG FOR BEING AT PREAMBLE 246310 L,H1 A3,NEXA+2 HEAD LINK TO ZERO LEVEL TABLE LNKSBX JZ A3,LBB4B LNKSBX L,S1 A1,2,A3 AND,M A1,010 TEST IF PREVIOUSLZ LINKED TNE,M A2,010 J $+3 LNKSBX LMJ B9,DC1 LINK EXPRESSION LNKSBX J $-6 FOLLOW ALONG CHAIN LNKSBX L A3,SXLNK LNKSBX J $-2 LNKSBX LBB4B TZ,H2 NEXA J $+3 LMJ B11,SEND J GET XER 4 . EXPRESSIONS LEFT AT PREAMBLE . THIS SECTION CHECKS FOR EXPRESSIONS TO KICK OUT WHEN A CALL 24720 . TO AN INTERNAL FUNCTION OCCURS IE THOSE CONTAINING GLOBAL VARIABLE24730 . WHICH ARE NOT INDUCTION VARIABLES AND DO NOT HAVE A COMPUTE 24740 . POINT OF ZERO 24750 LBB5R L A6,(0200000) REENT LR R2,A6 . MASK TO LOOK FOR V=2 SR R4,LBX 24780 XMSE A6,SUBEXA,NEXA,2,LBB5A . LOOK FOR V2=1 LBB5A J *LBB5 $(2) . LBB6* J $-$ REENT J LBB6R REENT LBB5* J $-$ REENT J LBB5R REENT LBB1X J $-$ REENT LBB3AX J $-$ REENT END