1: /*
   2:  * Copyright (c) 1980 Regents of the University of California.
   3:  * All rights reserved.  The Berkeley software License Agreement
   4:  * specifies the terms and conditions for redistribution.
   5:  *
   6:  *	@(#)optim.h	5.1 (Berkeley) 6/7/85
   7:  */
   8: 
   9: /*
  10:  * structure to hold trees for optimization
  11:  */
  12: 
  13: typedef struct slt {
  14:     field       type;
  15:     field       flags;
  16:     short       lineno;
  17:     struct slt  *next, *prev;
  18:     struct slt  *nullslot;
  19:     expptr      expr;
  20:     int     label;
  21:     int     *ctlinfo;
  22: };
  23: 
  24: typedef struct slt *Slotp;
  25: 
  26: extern Slotp    firstslot, lastslot;    /* first, last slots in buffer */
  27: extern int  numslots;       /* number of slots */
  28: 
  29: Slotp newslot(), optbuff(), optinsert();
  30: struct Ctlframe *cpframe();
  31: 
  32: /*
  33: **      Structures for cse analysis
  34: */
  35: 
  36: typedef struct IDblock *idptr;
  37: typedef struct VALUEnode *valuen;
  38: typedef struct IDlist  *idlptr;
  39: typedef struct DUPlist *duplptr;
  40: typedef struct NODElist *nodelptr;
  41: 
  42: struct IDblock
  43: {
  44:     expptr idaddr;
  45:     valuen initval, assgnval;
  46:     nodelptr headnodelist;
  47:     struct IDblock *next;
  48: };
  49: 
  50: struct VALUEnode
  51: {
  52:     expptr opp;
  53:     expptr *parent;
  54:     int n_dups;
  55:     unsigned is_dead : 1;
  56:     valuen lc,rc,rs;
  57:     idlptr headdeplist;
  58:     duplptr headduplist;
  59:     struct VALUEnode *next;
  60: };
  61: 
  62: struct IDlist
  63: {
  64:     idptr idp;
  65:     struct IDlist *next;
  66: };
  67: 
  68: struct DUPlist
  69: {
  70:     expptr *parent;
  71:     struct DUPlist *next;
  72: };
  73: 
  74: struct NODElist
  75: {
  76:     valuen nodep;
  77:     struct NODElist *next;
  78: };
  79: 
  80: /*
  81:  * structure to hold information on basic blocks
  82:  */
  83: 
  84: 
  85: 
  86: typedef struct bblock {
  87:     Slotp       first, last;
  88:     idptr       headid;
  89:     valuen      headnode, tailnode;
  90:     struct bblock   *next, *prev;
  91: };
  92: 
  93: typedef struct bblock *Bblockp;
  94: 
  95: extern Bblockp  firstblock;     /* first block in buffer */
  96: extern Bblockp  lastblock;      /* last block in buffer */
  97: 
  98: 
  99: 
 100: /* data structure for optloop and regalloc routines */
 101: 
 102: typedef
 103:   struct regnode
 104:     {
 105:       field vstg;
 106:       field vtype;
 107:       int memno;
 108:       int memoffset;
 109:       unsigned isarrayarg : 1;
 110:     } REGNODE;

Defined struct's

DUPlist defined in line 68; used 3 times
IDblock defined in line 42; used 3 times
IDlist defined in line 62; used 3 times
NODElist defined in line 74; used 3 times
VALUEnode defined in line 50; used 3 times
bblock defined in line 86; used 4 times
regnode defined in line 103; never used
slt defined in line 13; used 6 times

Defined typedef's

Bblockp defined in line 93; used 13 times
REGNODE defined in line 110; used 4 times
idlptr defined in line 38; used 10 times
idptr defined in line 36; used 12 times
valuen defined in line 37; used 23 times

Usage of this include

Last modified: 1985-06-08
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1297
Valid CSS Valid XHTML 1.0 Strict