Annotation of 42BSD/usr.bin/f77/src/f77pass1/optim.h, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.