1: #include <stdio.h>
   2: #include "def.h"
   3: #include "2.def.h"
   4: 
   5: VERT *after;
   6: int *ntobef, *ntoaft;
   7: build()
   8:     {
   9:     VERT v, *dom, *head;
  10:     int type;
  11:     struct list **inarc;
  12:     dfs(START);
  13:     if (routerr) return;
  14:     for (v = 0; v < nodenum; ++v)
  15:         {
  16:         type = NTYPE(v);
  17:         if (type == LOOPVX || type == DOVX)
  18:             FATH(ARC(v,0)) = v;
  19:         }
  20: 
  21:     head = challoc(sizeof(*head) * nodenum);
  22:     if (progress) fprintf(stderr,"	gethead:\n");
  23:     gethead(head);  /* sets head[v] to ITERVX heading smallest loop containing v or UNDEFINED */
  24: 
  25:     if (routerr) return;
  26:     inarc = challoc(nodenum * sizeof(*inarc));
  27:     if (progress) fprintf(stderr,"	getinarc:\n");
  28:     getinarc(inarc,head);       /* sets inarc[v] to list of forward arcs entering v */
  29: 
  30:     dom = challoc(nodenum * sizeof(*dom));
  31:     if (progress) fprintf(stderr,"	getdom:\n");
  32:     getdom(inarc,dom);  /* sets dom[v] to immediate dominator of v or UNDEFINED */
  33:     if (routerr) return;
  34:     if (progress) fprintf(stderr,"	gettree:\n");
  35:     gettree(inarc, dom, head);
  36:     if (routerr) return;
  37: 
  38:     chfree(head, nodenum * sizeof(*head)); head = 0;
  39:     chfree(dom,nodenum * sizeof(*dom)); dom = 0;
  40:     for (v = 0; v < nodenum; ++v)
  41:         {
  42:         freelst(inarc[v]);
  43:         inarc[v] = 0;
  44:         }
  45:     chfree(inarc,sizeof(*inarc) * nodenum); inarc = 0;
  46:     chfree(ntoaft,sizeof(*ntoaft) * nodenum); ntoaft = 0;
  47:     chfree(ntobef,sizeof(*ntobef) * nodenum); ntobef = 0;
  48:     chfree(after, sizeof(*after) * accessnum); after = 0;
  49:     }

Defined functions

build defined in line 7; used 1 times

Defined variables

ntobef defined in line 6; used 14 times
Last modified: 1981-07-10
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 667
Valid CSS Valid XHTML 1.0 Strict