! File: FLOW.BEG ! ! This work was supported by the Advanced Research ! Projects Agency of the Office of the Secretary of ! Defense (F44620-73-C-0074) and is monitored by the ! Air Force Office of Scientific Research. ! ! ! THIS IS FLOW.BEG, IT IS USED AT LEAST IN FLOWAN,SYNTAX,TABLES ! ! !----------------------------------------------------------------------- !14. COMMON SUBEXPRESSION ELIMINATION AND FLOW-ANALYSIS MACRO PUSHLV(L,N)=(REGISTER ZQ14; MAP LVL L; ZQ14_GETSPACE(GT,N); (.ZQ14)<0,36>_.L[ALL]; L[CINX]_.ZQ14)$, POPLV(L,N)=(REGISTER ZQ13; MAP LVL L; ZQ13_.L[CINX]; L[ALL]_.L[NALL]; RELEASESPACE(GT,.ZQ13,N))$, INCLEVEL=LEVEL_.LEVEL+.LEVELINC$, PAB(Z)=(MAP LVL Z; LSET(LVLCOPY,.LEVEL); PUSHLV(LVLCOPY,1); PUSHLV(Z,1); INCLEVEL; LSET(Z,.LEVEL))$, PAD(Z)=(MAP LVL Z; POPLV(Z,1); POPLV(LVLCOPY,1); LEVEL_.LVLCOPY[CVAL])$, LSET(P,Q)=P[CVAL]_Q$, DOOTWICE(I)=DECR I FROM 1 TO 0 DO $, FORALLRATORS(I)=IF SLOW THEN DECR I FROM MAXOPERATOR TO 0 DO $, NUMRANDS(N)=N[NODESIZEF]-1$, FORALLRANDS(I,J)=DECR I FROM NUMRANDS(J) TO 0 DO $, INCABC=ABCOUNT_.ABCOUNT+1$, PUSHABC=(PUSHLV(ABCBASE,1); LSET(ABCBASE,.ABCOUNT); INCABC)$, POPABC=POPLV(ABCBASE,1)$, PUSHCURBOGLST=(PUSHLV(CURBOGLST,1); CURBOGLST[BASE]_MAKHDR(BOGREMOVE,BOGENTER))$, POPCURBOGLST=POPLV(CURBOGLST,1)$, PUSHCURPRLGLST=(PUSHLV(CURPRLGLST,1); CURPRLGLST[BASE]_MAKHDR(PRLGREMOVE,PRLGENTER))$, POPCURPRLGLST=POPLV(CURPRLGLST,1)$; BIND ALL=0, CVAL=1, CINX=2, NALL=3, NVAL=4, NINX=5; STRUCTURE CSPPTR[I,J,K]=(.GT[@.CSPPTR,CSPARENT]+.I)<.J,.K>; STRUCTURE INTITEM[I,J]=.INTITEM<.I,.J>; MACRO BASE =0,0, 0,18$, RLINK =1,0, 0,18$, LLINK =1,0,18,18$, CHAINF =RDATITEM(1)$, INTCF =0,17$, CHNHEAD =17,1$, INTCHAINF =1,1, 0,17$, CHAINHEAD =1,1,17, 1$, KABC =1,1,23,13$, KTYPE =1,1,18, 5$, KCAUSE =RDATITEM(1)$, ITEMSIZEF =RDATITEM(1)$, ABCVAL =LDATITEM(1)$, ITEMFPARENT =LDATITEM(1)$, INTDATITEM(I) =1,I+1,0,36$, RINTDATITEM(I) =1,I+1,0,18$, LINTDATITEM(I) =1,I+1,18,18$, DATITEM(I) =1,I, 0,36$, LDATITEM(I) =1,I, 18,18$, RDATITEM(I) =1,I, 0,18$, NXTRLINK =2,0, 0,18$, NXTLLINK =2,0,18,18$, NXTDATITEM(I) =2,I, 0,36$, PRVRLINK =3,0, 0,18$, PRVLLINK =3,0,18,18$, PRVITEMSIZEF =3,1, 0,18$, PRVDATITEM(I) =3,I, 0,36$, PRVABCVAL =3,1,18,18$, ENTER =1,1, 0,18$, REMOVE =1,1,18,18$, PRLGLSTF=0,0,18$, MULSTF =0,18,18$, PSLGLSTF=1,0,18$, EPLGLSTF=1,18,18$; EXTERNAL ! FROM LSTPKG LIFOENTER, SORTENTER; BIND ALPHAENTER=SORTENTER, RHOENTER=SORTENTER, CHIENTER=SORTENTER, OMEGAENTER=SORTENTER, PRLGENTER=SORTENTER, MUENTER=SORTENTER, PSLGENTER=SORTENTER, EPLGENTER=SORTENTER, VCHGENTER=SORTENTER, VUSEENTER=SORTENTER, KILENTER=SORTENTER, BOGENTER=LIFOENTER, FREETEMPENTER=LIFOENTER, TEMPENTER=LIFOENTER, ALPHAREMOVE=2, RHOREMOVE=3, CHIREMOVE=0, OMEGAREMOVE=2, PRLGREMOVE=0, MUREMOVE=0, PSLGREMOVE=0, EPLGREMOVE=0, VCHGREMOVE=0, VUSEREMOVE=0, KILREMOVE=0, FREETEMPREMOVE=0, TEMPREMOVE=0, BOGREMOVE=1;