Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-04 - 43,50325/flow.beg
There are no other files named flow.beg in the archive.
! 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;