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
slt
defined in line
13; used 6 times
Defined typedef's
Slotp
defined in line
24; used 66 times
- in line 26-29(2),
87
- in /usr/src/usr.bin/f77/src/f77pass1/bb.c line
61,
105,
137,
285,
339,
585,
624,
776
- in /usr/src/usr.bin/f77/src/f77pass1/exec.c line
441,
660
- in /usr/src/usr.bin/f77/src/f77pass1/optcse.c line
813,
857,
907
- in /usr/src/usr.bin/f77/src/f77pass1/optim.c line
132-133(2),
157,
175,
212,
340-342(2),
368,
392,
422,
441-449(3),
474,
495,
502
- in /usr/src/usr.bin/f77/src/f77pass1/optloop.c line
142-144(3),
153-155(3),
201,
235,
275,
701,
746
- in /usr/src/usr.bin/f77/src/f77pass1/regalloc.c line
216,
224-226(3),
549-553(2),
1491,
1927-1932(2),
1947-1952(2),
1967,
2000,
2034,
2051,
2074,
2097,
2154-2156(3),
2216,
2245,
2268
idlptr
defined in line
38; used 10 times
idptr
defined in line
36; used 12 times
valuen
defined in line
37; used 23 times
- in line 45,
56,
76,
89
- in /usr/src/usr.bin/f77/src/f77pass1/bb.c line
228
- in /usr/src/usr.bin/f77/src/f77pass1/optcse.c line
72,
133,
182,
265,
290,
319-325(3),
375,
384,
509-515(3),
535,
543,
557,
565,
735
Usage of this include