add $(EXEEXT) to executable targets during installation for MinGW
[suif.git] / docs / suif1.ps
blob9a20810fce1b86ffe459080d3f938516732b622b
1 %!PS-Adobe-2.0
2 %%Creator: dvips(k) 5.78 Copyright 1998 Radical Eye Software (www.radicaleye.com)
3 %%Title: suif1.dvi
4 %%Pages: 111
5 %%PageOrder: Ascend
6 %%BoundingBox: 0 0 596 842
7 %%EndComments
8 %DVIPSCommandLine: dvips -o suif1.ps suif1.dvi
9 %DVIPSParameters: dpi=600, compressed
10 %DVIPSSource:  TeX output 1999.04.28:1343
11 %%BeginProcSet: texc.pro
13 /TeXDict 300 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
14 /X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
15 mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
16 ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
17 isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
18 hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
19 TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
20 forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
21 /@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
22 /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
23 /nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
24 string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
25 end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
26 /sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
27 N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
28 length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
29 128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
30 get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
31 dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
32 /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
33 /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
34 0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
35 setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
36 .1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N
37 /cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id
38 gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp
39 add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add
40 /gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{
41 dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1
42 adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2
43 idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string
44 putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval
45 adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}
46 {adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{
47 adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2
48 chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]
49 }if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
50 length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
51 cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
52 0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
53 add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict
54 /eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook
55 known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
56 /IE 256 array N 2 string 0 1 255{IE S dup 360 add 36 4 index cvrs cvn
57 put}for pop 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N
58 /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley
59 X /rulex X V}B /V{}B /RV statusdict begin /product where{pop false[
60 (Display)(NeXT)(LaserWriter 16/600)]{dup length product length le{dup
61 length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}
62 forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
63 RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
64 false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
65 round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
66 rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
67 {dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
68 B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{
69 4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{
70 p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
71 a}B /bos{/SS save N}B /eos{SS restore}B end
73 %%EndProcSet
74 %%BeginProcSet: special.pro
76 TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N
77 /vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen
78 false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B
79 /@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit
80 div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{
81 /CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{
82 10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B
83 /@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale
84 true def end /@MacSetUp{userdict /md known{userdict /md get type
85 /dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup
86 length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{}
87 N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath
88 clippath mark{transform{itransform moveto}}{transform{itransform lineto}
89 }{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{
90 itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{
91 closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39
92 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N
93 /txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1
94 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get
95 ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip
96 not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0
97 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR
98 pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1
99 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg
100 TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg
101 sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr
102 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add
103 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp
104 {pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72
105 div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray}
106 N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict
107 maxlength dict begin /magscale true def normalscale currentpoint TR
108 /psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts
109 /psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx
110 psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy
111 scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR
112 /showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{
113 psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
114 roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
115 moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict
116 begin /SpecialSave save N gsave normalscale currentpoint TR
117 @SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial
118 {CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
119 closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
120 sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
121 }{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
122 CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
123 lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath
124 }N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{
125 end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin}
126 N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{
127 /SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX
128 SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X
129 /startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad
130 yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end
132 %%EndProcSet
133 TeXDict begin 39158280 55380996 1000 600 600 (suif1.dvi)
134 @start
135 %DVIPSBitmapFont: Fa cmti10 10.95 1
136 /Fa 1 47 df<120FEA3FC0127FA212FFA31380EA7F00123C0A0A77891C>46
137 D E
138 %EndDVIPSBitmapFont
139 %DVIPSBitmapFont: Fb cmbxti10 14.4 1
140 /Fb 1 47 df<13FCEA03FF000F13804813C05AA25AA2B5FCA31480A214006C5A6C5A6C5A
141 EA0FE0121271912B>46 D E
142 %EndDVIPSBitmapFont
143 %DVIPSBitmapFont: Fc cmtt9 9 54
144 /Fc 54 123 df<120FEA3FC013E0EA7FF0A213F8A2123FA2120F120113F01203EA07E012
145 1FEA7FC0EAFF8013005A12700D14738927>44 D<EB07E0EB3FFC497E90B5FC4814803903
146 FC3FC03907F00FE0390FE007F0EBC003391F8001F8A248C712FCA2003E147C007E147EA3
147 007C143E00FC143FAC007E147EA46C14FCA2EB8001001F14F8EBC003000F14F0EBE00739
148 07F00FE03903FC3FC06CB512806C14006D5A6D5AEB07E020307DAE27>48
149 D<130E131FA25B5BA25B5A5A127FB5FCA213BFEA7E3F1200B3AA003FB512805A15C01580
150 A21A2F79AE27>I<EB3FE03801FFF84813FE000FEBFF804814C0393FE07FE0EB800F397F
151 0007F0007EEB03F800FE13015A6C14FC1400A3127CC8FCA2140115F8A2140315F01407EC
152 0FE0EC1FC0143FEC7F80ECFF00495A495A495A495A495A495A495A01FEC7FC485AD807F8
153 1378484813FC485A485A48B5FCB6FCA36C14F81E2F7CAE27>I<EB1FF8EBFFFE0003EBFF
154 80000F14C015E0391FF01FF0393FC007F8EB800115FC1400A26CC7FC1204C8FC140115F8
155 1403EC07F0140FEC3FE090381FFFC0491380A215E06D13F09038001FF8EC03FC1401EC00
156 FE157E157F153FA21238127C12FEA2157F48147E6C14FE007FEB01FCEB8003393FF01FF8
157 6CB512F06C14E000031480C6EBFE00EB1FF820307DAE27>I<EC3F804A7EA214FF5BA2EB
158 03F7EB07E7A2EB0FC71487131FEB3F07A2137E13FCA2EA01F813F01203EA07E0A2EA0FC0
159 EA1F80A2EA3F00123E127E5AB7128016C0A36C1580C73807C000A849B5FC491480A36D14
160 00222F7EAE27>I<14FF010713C0011F13F04913F890B5FC48EB81FC3803FE0113F8EA07
161 F0EA0FE09038C000F8001F1400485A90C8FCA25A127EEB0FF838FE3FFE48B51280B612C0
162 15E09038F80FF09038E007F890388001FC90C7FC15FE48147E157F153FA3127EA3127F6C
163 147F157E6C6C13FE9038C001FC120F9038F007F83907F81FF06CB512E06C14C06C148090
164 383FFE00EB0FF820307DAE27>54 D<EB0FF0EB7FFE48B512804814C0000F14F0EBF81F39
165 1FE007F8393F8001FC90C7FC4814FE007E147EA56C14FCEB8001391FC003F8390FE007F0
166 3907FC3FE00001B5128039007FFE006D5A90B5FC000314C0390FF00FF0391FC003F8393F
167 8001FC90C7FC007E147EA248143FA6007E147EA2007F14FE393F8001FC391FE007F8EBF8
168 1F6CB512F06C14E00001148039007FFE00EB0FF020307DAE27>56
169 D<EB03F0497EA2497EA4143CEB1F3EA5EB3F3FA3EB3E1FA2017E7FA4496C7EA548486C7E
170 A390B5FCA24880A3EBF003A248486C7EA4000F803A7FFC0FFF8000FF15C06D5A497E007F
171 1580222F7EAE27>65 D<007FB5FCB612C08115F87E3907E003FCEC00FE157E157F81A615
172 7EA25D1403EC0FF890B55A15C015F081819038E000FE157FED3F80151FA2ED0FC0A6151F
173 1680153FED7F004A5A007FB55AB65A5D15E06C1480222E7FAD27>I<903803F80E90381F
174 FE1F90383FFFBF90B6FC5A3803FE0F3807F803497E48487E485A49137FA248C7123FA25A
175 127E151E150012FE5AAA7E127EA2151E007F143F7EA26C7E157F6D137E6C6C13FE3907F0
176 01FCEBF8033903FE0FF86CB512F06C14E0013F13C06D1300EB03F820307DAE27>I<387F
177 FFFC14FFB612C06C80813907E00FF81407EC01FC6E7EA2157E157F811680151FA316C015
178 0FABED1F80A3153F1600A25D15FEA24A5A4A5A140F007FB55A5DB65A6C91C7FC14FC222E
179 7FAD27>I<007FB61280B712C0A37E3907E0000FA6ED078092C7FCA4EC07804A7EA390B5
180 FCA5EBE00FA36E5A91C8FCA4ED03C0ED07E0A7007FB6FCB7FCA36C15C0232E7FAD27>I<
181 007FB61280B712C0A37E3907E0000FA6ED078092C7FCA4EC07804A7EA390B5FCA5EBE00F
182 A36E5A91C8FCAC387FFF80B57EA36C5B222E7EAD27>I<007FB512E0B612F0A36C14E039
183 001F8000B3B2007FB512E0B612F0A36C14E01C2E7BAD27>73 D<387FFFC080B5FC7E5CD8
184 03F0C8FCB3AAED0780ED0FC0A7007FB6FCA2B7FC7E1680222E7FAD27>76
185 D<D87FE0EB7FE0486CEBFFF0A26D5A007F15E0000F150001B813DFEBBC03A3EBBE07019E
186 139FA3EB9F0FA2018F131FA2149FA2EB879EA4EB839C14FCA3EB81F8A2EB80F01400AAD8
187 7FF0EBFFE0486C4813F0A36C486C13E0242E7FAD27>I<3A7FF003FFE0486C4813F0A213
188 FC007F6D13E000079038003E0013DEA313CFA3148013C714C0A213C314E0A213C114F0A3
189 EBC0F8A31478147CA2143C143EA2141E141F140FA3EC07BEA3EC03FEEA7FFCEAFFFE1401
190 A26C486C5A242E7FAD27>I<EBFFFC0007EBFF80001F14E0A24814F0EBC00F397F8007F8
191 EB0003007E1301A348EB00FCB3A76C1301007E14F8A3007F1303EB8007393FE01FF090B5
192 FC6C14E0A200071480C6EBFC001E307CAE27>I<387FFFF0B512FE6E7E816C803907E01F
193 F014076E7E1401811400A514015D14034A5A141F90B55A5D5DA281EBE01F6E7E14076E7E
194 A816F0EDF1F8A4397FFE01FBB5EBFFF08016E06C48EB7FC0C8EA1F00252F7FAD27>82
195 D<90387FC0E03901FFF1F0000713FF5A5AEA3FE0EB801F387F000F007E130712FE5A1403
196 A3EC01E06C90C7FC127E127FEA3FC013F86CB47E6C13F86C13FE6CEBFF80C614C0010F13
197 E0010013F0140FEC07F81403140115FC1400127812FCA46CEB01F8A26C130390388007F0
198 9038F01FE090B5FC15C0150000F85B38701FF81E307CAE27>I<007FB61280B712C0A439
199 FC03F00FA60078EC0780000091C7FCB3AB90B512C04880A36C5C222E7EAD27>I<3A7FFE
200 01FFF8B54813FCA36C486C13F83A07E0001F80B3AB6D133F00031500A26D5B0001147E6D
201 13FE6C6C485A90387F87F814FF6D5B010F13C06D5BD901FEC7FC262F80AD27>I<393FFC
202 1FFE387FFE3F815D383FFC1F3903F00FE001F85B1201EBFC1F00005CEBFE3F017E90C7FC
203 EB7F7FEB3F7E14FE6D5AA26D5AA26D5AA21303130780130F80131F80EB3F7E147F497E01
204 7E7F141F01FC7F140FD801F87F14071203496C7E120701E07F3A7FFC0FFF8000FF15C06D
205 5A497E007F1580222E7EAD27>88 D<3A7FFC03FFE06D5A00FF15F0007F15E0497E3A07F0
206 00FE0000035CEBF80100015CA2EBFC0300005CEBFE07017E5BA26D485AA290381F9F80A3
207 010F90C7FCA2EB07FEA26D5AA26D5AAF90381FFF80497FA36D5B242E7FAD27>I<387FFF
208 F0B512F8A314F000FCC7FCB3B3ACB512F014F8A36C13F0153A71B327>91
209 D<387FFFF0B512F8A37EEA0001B3B3ACEA7FFFB5FCA36C13F0153A7EB327>93
210 D<007FB512F8B612FCA46C14F81E067C7E27>95 D<3803FFC0000F13F04813FC4813FF81
211 1380EC1FC0381F000F000480C71207A2EB0FFF137F0003B5FC120F5A383FFC07EA7FC013
212 0012FE5AA46C130F007F131FEBC0FF6CB612806C15C07E000313F1C69038807F8022207C
213 9F27>97 D<EA7FE0487EA3127F1203A914FF01F313C090B512F08181EC81FE49C67E49EB
214 3F8049131F16C049130FA216E01507A6150F16C07F151F6DEB3F80157F6DEBFF009038FF
215 83FEECFFFC5D5D01F313C02601E0FEC7FC232E7FAD27>I<EB0FFF017F13C048B512E048
216 14F05A380FF807EA1FE0393FC003E0903880008048C8FC127EA212FE5AA67E127EA2007F
217 14F0393F8001F813C0381FE003390FF80FF06CB5FC6C14E06C14C06C6C1300EB0FF81D20
218 7B9F27>I<EC3FF04A7EA3143F1401A9EB0FE1EB7FFD48B5FC5A5A380FF83F381FE00F38
219 3FC007EB8003EA7F00007E1301A212FE5AA67E007E1303A2127F6C1307EB800F381FE01F
220 380FF03F6CB612C06C15E06C13FD38007FF9D91FE013C0232E7EAD27>I<EB0FF8EB3FFE
221 90B51280000314C04814E0390FFC0FF0391FE003F8EBC001D83F8013FC48C7FC127E157E
222 12FEB612FEA415FC00FCC8FC7E127E127F6C143C6D137E6C7E01F013FE390FFC07FC6CB5
223 FC000114F86C14F0013F13C0903807FE001F207D9F27>I<EC1FF0ECFFF84913FC4913FE
224 5BEB0FF014C0011F137CEC8000A6007FB512F0B612F8A36C14F039001F8000B3A4003FB5
225 12C04814E0A36C14C01F2E7EAD27>I<153F90391FC0FF80D97FF313C048B612E05A4814
226 EF390FF07F873A1FC01FC3C0EDC000EB800F48486C7EA66C6C485AEBC01FA2390FF07F80
227 90B5C7FC5C485BEB7FF0EB1FC090C9FCA27F6CB5FC15E015F84814FE4880EB8001007EC7
228 EA3F80007C140F00FC15C0481407A46C140F007C1580007F143F6C6CEB7F009038F807FF
229 6CB55A000714F86C5CC614C0D90FFCC7FC23337EA027>I<EA7FE0487EA3127F1203A914
230 7F9038F1FFC001F713F090B5FC8114C1EC01FCEBFE005B5BA25BB03A7FFF83FFE0B500C7
231 13F0A36C018313E0242E7FAD27>I<130F497E497EA46D5A6DC7FC90C8FCA7383FFF8048
232 7FA37EEA000FB3A4007FB512F0B6FC15F815F07E1D2F7BAE27>I<143C147E14FFA4147E
233 143C1400A73801FFFE4813FFA37EC7123FB3B0147E1238007C13FE38FE01FC1303B512F8
234 14F06C13E06C13803807FE0018407CAE27>I<EA7FE07F12FF127FA21201A991383FFFC0
235 4A13E0A36E13C0913803F8004A5A4A5A4A5A4A5A02FFC7FCEBF1FEEBF3FCEBF7F8EBFFFC
236 8080143F496C7E496C7E01F87FEBF0076E7E6E7E816E7E157E3A7FFFC1FFF002C313F8B5
237 12E36C13C316F0252E80AD27>I<387FFF80B57EA37EEA000FB3B2007FB512F8B612FCA3
238 6C14F81E2E7CAD27>I<397F07C01F3AFF9FF07FC09039FFF9FFE091B57E7E3A0FFC7FF1
239 F89038F03FC001E0138001C01300A3EB803EB03A7FF0FFC3FF486C01E3138001F913E701
240 F813E36C4801C313002920819F27>I<387FE07F39FFF1FFC001F713F090B5FC6C800003
241 13C1EC01FCEBFE005B5BA25BB03A7FFF83FFE0B500C713F0A36C018313E024207F9F27>
242 I<EB1FE0EB7FF83801FFFE487F481480390FF03FC0391FC00FE0393F8007F0EB00034814
243 F8007E1301A248EB00FCA76C1301007E14F8A2007F1303393F8007F0A2391FE01FE0390F
244 F03FC06CB512806C14006C5B38007FF8EB1FE01E207C9F27>I<387FE0FFD8FFF313C090
245 B512F0816C800003EB81FE49C67E49EB3F8049131F16C049130FA216E01507A6150F16C0
246 7F151F6DEB3F80157F6DEBFF009038FF83FEECFFFC5D5D01F313C0D9F0FEC7FC91C8FCAC
247 387FFF80B57EA36C5B23317F9F27>I<90380FF03C90383FFE7E90B5FC000314FE5A380F
248 FC1F381FE007EBC003383F800148C7FC127EA200FE147E5AA67E007E14FEA2007F1301EA
249 3F80EBC003381FE007380FF81F6CB5FC7E6C147E38007FFCEB0FF090C7FCAC91381FFFF8
250 A24A13FC6E13F8A226317E9F27>I<397FFC03FC39FFFE0FFF023F13804A13C0007F90B5
251 FC39007FFE1F14F89138F00F809138E002004AC7FC5CA291C8FCA2137EAD007FB57EB67E
252 A36C5C22207E9F27>I<9038FFF3800007EBFFC0121F5A5AEB803F38FC000F5AA2EC0780
253 6C90C7FCEA7F8013FC383FFFF06C13FC000713FF00011480D8000F13C09038003FE01407
254 0078EB03F000FC1301A27E14036CEB07E0EBE01F90B512C01580150000FB13FC38707FF0
255 1C207B9F27>I<133C137EA8007FB512F0B612F8A36C14F0D8007EC7FCAE1518157EA415
256 FE6D13FC1483ECFFF86D13F06D13E0010313C0010013001F297EA827>I<397FE01FF848
257 6C487EA3007F131F00031300B21401A21403EBFC0F6CB612E016F07EEB3FFE90390FF87F
258 E024207F9F27>I<3A7FFC0FFF80486C4813C0A36C486C13803A07C000F800EBE0010003
259 5CA2EBF00300015CA2EBF80700005CA390387C0F80A36D48C7FCA3EB3F3FEB1F3EA214FE
260 6D5AA36D5AA26D5A22207E9F27>I<3A7FFE07FFE000FF15F06D5A497E007F15E03A0F80
261 001F00A36D5B0007143EA414F0EBC1F83903E3FC7CA4EBE79EA200011478A301F713F8A2
262 EBFF0F6C5CA3EBFE0790387C03E024207F9F27>I<393FFC1FFF486C5A168016006C487E
263 3901F807E06C6C485A4A5A017E90C7FC6D5AEB1F7E5C6D5A13076D5A5C80497E130F497E
264 143EEB3E3FEB7E1F90387C0F8001F87F00016D7E3803F0033A7FFE1FFF80A2B54813C06C
265 486C1380A222207E9F27>I<3A7FFC0FFF80486C4813C0A36C486C13803A07E000F80000
266 0313015D13F00001130301F85B1200A26D485A137CA290387E0F80133EA2011F90C7FC5C
267 A2130F149E14BE130714FC1303A25C1301A25CA213035CA213075C1208EA3E0F007F5B13
268 1FD87E7FC8FCEA7FFE6C5A5B6C5AEA07C022317E9F27>I<001FB512FE4814FFA4903800
269 01FEEC03FCEC07F8EC0FF0001EEB1FE0C7EA3FC0EC7F80ECFF00495A495A495AEB1FE049
270 5A495A49C7FC485A4848131E4848133F485A485A485A485AB7FCA46C14FE20207E9F27>
271 I E
272 %EndDVIPSBitmapFont
273 %DVIPSBitmapFont: Fd cmsl9 9 1
274 /Fd 1 47 df<123C127E12FFA312FEA212380808798715>46 D E
275 %EndDVIPSBitmapFont
276 %DVIPSBitmapFont: Fe cmr9 9 47
277 /Fe 47 123 df<EC1FE0ECFFFC903803F01E90390FC00780EB1F8090393F000FC0017E13
278 1F5BA2485AED0F8092C7FCA9ED0FC0B7FCA33901F8001F150FB3A6486CEB1FE0267FFFC1
279 B5FCA328357FB42B>12 D<EC1FF891B512C0903803F00F90380FC01FEB1F80EB3F00137E
280 5B150F485AACB7FCA33901F8000FB3A7486CEB1FE0267FFFE3B5FCA328357FB42B>I<12
281 3C127EB4FCA21380A2127F123D1201A412031300A25A1206120E120C121C5A5A12600917
282 7A8715>44 D<B512F0A514057F921A>I<EB0FE0EB7FFCEBF83E3903E00F803907C007C0
283 EB8003000F14E0391F0001F0A24814F8A2003E1300007E14FCA500FE14FEB2007E14FCA5
284 6CEB01F8A36C14F0A2390F8003E03907C007C0A23903E00F803900F83E00EB7FFCEB0FE0
285 1F347DB126>48 D<13075B5B137FEA07FFB5FC13BFEAF83F1200B3B3A2497E007FB51280
286 A319327AB126>I<EB3FC0EBFFF0000313FC380F80FF391E007F80001CEB3FC048EB1FE0
287 48130F15F00060130712FC6C14F87E1403A3007E1307123CC7FC15F0A2140F15E0EC1FC0
288 A2EC3F801500147E5C495A5C495A495A495A49C7FC133E133C4913185B485A4848133048
289 5A48C7FC001C1470001FB512F05A5AB612E0A31D327CB126>I<EB1FE0EBFFFC4813FF39
290 07E03F80390F001FC0001EEB0FE0001CEB07F0123F018013F8140313C01380A2381F0007
291 C7FC15F0A2EC0FE015C0141FEC3F80EC7E00EB01F8EB7FE014FCEB003FEC1FC0EC0FE0EC
292 07F015F8140315FC140115FEA3127EB4FCA415FC48130312780070EB07F86C14F0003C13
293 0F001FEB1FE0390FE03F800003B51200C613FCEB1FE01F347DB126>I<EC01C0A2140314
294 07A2140F141FA2143F147F146F14CF1301EB038F140F1307130E130C131C133813301370
295 13E013C0EA0180120313001206120E120C5A123812305A12E0B71280A3C7380FC000A94A
296 7E0107B51280A321337EB226>I<000C14C0380FC00F90B5128015005C5C14F014C0D80C
297 18C7FC90C8FCA9EB0FC0EB7FF8EBF07C380FC03F9038001F80EC0FC0120E000CEB07E0A2
298 C713F01403A215F8A41218127E12FEA315F0140712F8006014E01270EC0FC06C131F003C
299 14806CEB7F00380F80FE3807FFF8000113E038003F801D347CB126>I<14FE903807FF80
300 011F13E090383F00F0017C13703901F801F8EBF003EA03E01207EA0FC0EC01F04848C7FC
301 A248C8FCA35A127EEB07F0EB1FFC38FE381F9038700F809038E007C039FFC003E0018013
302 F0EC01F8130015FC1400A24814FEA5127EA4127F6C14FCA26C1301018013F8000F14F0EB
303 C0030007EB07E03903E00FC03901F81F806CB51200EB3FFCEB0FE01F347DB126>I<1230
304 123C003FB6FCA34814FEA215FC0070C7123800601430157015E04814C01401EC0380C7EA
305 07001406140E5C141814385CA25CA2495A1303A3495AA2130FA3131F91C7FCA25BA55BA9
306 131C20347CB126>I<EB0FE0EB7FFC90B5FC3903F01F803907C007C0390F0003E0000EEB
307 01F0001E1300001C14F8003C1478A3123EA2003F14F86D13F0EBC001D81FF013E09038F8
308 03C0390FFE07803907FF0F006C13DE6C13F87EEB3FFE8001F713C0D803E313E0D8078013
309 F0390F007FF8001E131F003EEB07FC003C1303481301EC007E12F848143EA2151EA37E15
310 3C1278007C14787E6C14F0390F8003E03907F01FC00001B5120038007FFCEB1FE01F347D
311 B126>I<EB0FE0EB7FF8EBFFFE3803F83F3907E00F80390FC007C0D81F8013E0EC03F0EA
312 3F0048EB01F8127EA200FE14FC1400A415FEA5007E1301A2127F7E1403EA1F80000F1307
313 3807C00E3803E01C3801F03838007FF090381FC0FC90C7FC1401A215F8A215F01403001F
314 14E0383F800715C0140FEC1F809038003F00001C137E381F01FC380FFFF0000313C0C690
315 C7FC1F347DB126>I<15E0A34A7EA24A7EA34A7EA3EC0DFE140CA2EC187FA34A6C7EA202
316 707FEC601FA202E07FECC00FA2D901807F1507A249486C7EA301066D7EA2010E80010FB5
317 FCA249800118C77EA24981163FA2496E7EA3496E7EA20001821607487ED81FF04A7ED8FF
318 FE49B512E0A333367DB53A>65 D<DA03FE130C91393FFF801C91B512E0903A03FE01F83C
319 903A0FF0003C7CD91FC0EB0EFCD97F80130701FEC7120348481401000315005B4848157C
320 485A173C485A171C123F5B007F160CA390C9FC481600AB7E6D150CA3123F7F001F161C17
321 186C7E17386C6C15306C6C15706D15E012016C6CEC01C0D97F80EB0380D91FC0EB0F00D9
322 0FF0131ED903FE13FC0100B512F0023F13C0DA03FEC7FC2E377CB437>67
323 D<B77E16F016FE3A01FE0001FF00009138003FC0EE0FE0707E707E707E707E177E177FEF
324 3F80A2EF1FC0A3EF0FE0A418F0AA18E0A3171F18C0A21880173F18005F17FE5F4C5AEE07
325 F04C5AEE3FC000014AB45AB748C7FC16F8168034337EB23B>I<B81280A3D803FCC7FC00
326 01151FEE07C01603A21601A21600A41760150CA31700A2151CA2153C15FC90B5FCA3EBFC
327 00153C151CA2150CA592C8FCAB487EB512FEA32B337DB232>70 D<B512FEA3000113006C
328 5AB3B3A7487EB512FEA317337EB21C>73 D<90381FE00390387FFC0748B5FC3907F01FCF
329 390F8003FF48C7FC003E80814880A200788000F880A46C80A27E92C7FC127F13C0EA3FF0
330 13FF6C13F06C13FF6C14C06C14F0C680013F7F01037F9038003FFF140302001380157F15
331 3FED1FC0150F12C0A21507A37EA26CEC0F80A26C15006C5C6C143E6C147E01C05B39F1FC
332 03F800E0B512E0011F138026C003FEC7FC22377CB42B>83 D<007FB712FEA390398007F0
333 01D87C00EC003E0078161E0070160EA20060160600E01607A3481603A6C71500B3AB4A7E
334 011FB512FCA330337DB237>I<B500FE90381FFFF8A3000190C813006C48153C1718B3AF
335 1738017F1530A217706D6C1460011F15E06E495A010F14036D6C495A6D6C49C7FCD901FC
336 131E6DB413FC91383FFFF0020F13C0020190C8FC35357EB23A>I<EB7F803803FFF0380F
337 80FC381C003E003F133F6D6C7E6E7EA26E7EEA1F00C7FCA4EB01FF131FEBFF873803FC07
338 EA0FF0EA1FC0EA3F80127F13004815C05AA3140FA26C131F6C133B3A3F8071F180391FC1
339 E1FF2607FFC013003900FE003C22237DA126>97 D<EA03F012FFA312071203AEEC3F80EC
340 FFE09038F3C0F89038F7007E01FE7F49EB1F8049EB0FC05BED07E016F0A2150316F8AA16
341 F0150716E0A2ED0FC07F6DEB1F8001ECEB3F0001CF137C90388381F8903801FFE0C76CC7
342 FC25357EB32B>I<EB07F8EB3FFF9038FC07C03901F000E03903E003F03807C007120FEA
343 1F80123F90380003E04890C7FCA2127E12FEAA127FA26C14187F001F14386D1330000F14
344 706C6C13E03903F001C03900FC0F8090383FFE00EB07F01D237EA122>I<153FEC0FFFA3
345 EC007F81AEEB07F0EB3FFCEBFC0F3901F003BF3907E001FF48487E48487F8148C7FCA25A
346 127E12FEAA127E127FA27E6C6C5BA26C6C5B6C6C4813803A03F007BFFC3900F81E3FEB3F
347 FCD90FE0130026357DB32B>I<EB0FE0EB7FFCEBF83F3903F00F80D807E013C0390FC007
348 E0381F800315F0EA3F0014014814F8127EA212FEA2B6FCA248C8FCA5127E127FA26C1418
349 A26C6C1338000F14306D13706C6C13E03901F003C03900FC0F00EB3FFEEB07F01D237EA1
350 22>I<EB01FCEB07FF90381F078090383E0FC0EB7C1F13FCEA01F8A20003EB070049C7FC
351 ACB512F0A3D803F0C7FCB3A7487E387FFFE0A31A357FB417>I<151F90391FC07F809039
352 FFF8E3C03901F07FC73907E03F033A0FC01F83809039800F8000001F80EB00074880A66C
353 5CEB800F000F5CEBC01F6C6C48C7FCEBF07C380EFFF8380C1FC0001CC9FCA3121EA2121F
354 380FFFFEECFFC06C14F06C14FC4880381F0001003EEB007F4880ED1F8048140FA56C141F
355 007C15006C143E6C5C390FC001F83903F007E0C6B51280D91FFCC7FC22337EA126>I<EA
356 03F012FFA312071203AEEC1FC0EC7FF09038F1E0FC9038F3807C9038F7007E13FE497FA2
357 5BA25BB3486CEB7F80B538C7FFFCA326347EB32B>I<EA0780EA0FC0EA1FE0A4EA0FC0EA
358 0780C7FCAAEA07E012FFA3120F1207B3A6EA0FF0B5FCA310337EB215>I<EB03C0EB07E0
359 EB0FF0A4EB07E0EB03C090C7FCAAEB03F013FFA313071303B3B01238127C00FE13E01307
360 14C0130F007C138038381F00EA1FFCEA07F0144384B217>I<EA03F012FFA312071203AF
361 913803FFE0A36E1300EC00F8EC01E05D4A5A020FC7FC141C5C5C14F0EBF3F8EBF7FC13FE
362 EBFC7EEBF87F496C7E141F6E7E8114076E7E8114016E7E81486CEBFF80B500C313F0A324
363 347EB329>I<EA07E012FFA3120F1207B3B3A7EA0FF0B5FCA310347EB315>I<2703F01FE0
364 13FF00FF90267FF80313C0903BF1E07C0F03E0903BF3803E1C01F02807F7003F387FD803
365 FE1470496D486C7EA2495CA2495CB3486C496C487EB53BC7FFFE3FFFF0A33C217EA041>
366 I<3903F01FC000FFEB7FF09038F1E0FC9038F3807C3907F7007EEA03FE497FA25BA25BB3
367 486CEB7F80B538C7FFFCA326217EA02B>I<EB07F0EB3FFE9038FC1F803901F007C03903
368 C001E000078048486C7E48C7127CA248147E003E143E007E143FA300FE1580A8007E1500
369 A36C147EA26C147C6D13FC6C6C485A00075C3903F007E03900FC1F80D93FFEC7FCEB07F0
370 21237EA126>I<3903F03F8000FFEBFFE09038F3C0F89038F7007ED807FE7F6C48EB1F80
371 4914C049130F16E0ED07F0A3ED03F8A9150716F0A216E0150F16C06D131F6DEB3F801600
372 01FF13FC9038F381F89038F1FFE0D9F07FC7FC91C8FCAA487EB512C0A325307EA02B>I<
373 3803E07C38FFE1FF9038E38F809038E71FC0EA07EEEA03ECA29038FC0F8049C7FCA35BB2
374 487EB512E0A31A217FA01E>114 D<EBFF06000713CE381F00FE003C133E48131E140E5A
375 1406A27EA200FE90C7FC6C7EEA7FFC383FFFC014F0000F7F6C7FC67FEB0FFF1300EC3F80
376 00C0131F140F6C1307A37E15006C5B6C130E6C5B38F7807838E1FFE038C07F8019237EA1
377 1E>I<1330A51370A313F0A21201A212031207381FFFFEB5FCA23803F000AF1403A81407
378 3801F806A23800FC0EEB7E1CEB1FF8EB07E0182F7FAD1E>I<D803F0133F00FFEB0FFFA3
379 0007EB007F000380B35DA35D12016D4813800000903803BFFC90387E073FEB1FFED907F8
380 130026227EA02B>I<B5EBFFF0A3D80FF0EB3F800007EC1F000003140E150C6D131C0001
381 1418A26C6C5BA26D1370017E1360137F6D5BA290381F8180A214C3010F90C7FCA2EB07E6
382 A214FE6D5AA26D5AA36D5AA2146024217E9F29>I<B53A1FFF81FFF0A33C07F801FC003F
383 8001F049EB1E0000030100141C816C6C017C1318A26D017E1338000002FE1330A290267E
384 01FF5B159F168090263F030F5BA216C0903A1F8607C180A202C613E390260FCC0390C7FC
385 A2D907FC13F6ECF80116FE6D486C5AA36D481378A36D48133034217F9F37>I<B53801FF
386 F8A32603FE0013806C48EB7C0000001478017E1370017F5B90383F81C090381F8380D90F
387 C3C7FCEB07E614FE6D5A6D5A6D7E80805B9038039F809038071FC09038060FE0EB0C0790
388 381C03F0496C7E01707FEBF000000180000FECFF8026FFFC0313FCA326207F9F29>I<3A
389 7FFF807FF8A33A07F8001FC00003EC0F800001EC070015066C6C5BA26D131C017E1318A2
390 6D5BA2EC8070011F1360ECC0E0010F5BA2903807E180A214F3010390C7FC14FBEB01FEA2
391 6D5AA31478A21430A25CA214E05CA2495A1278D8FC03C8FCA21306130EEA701CEA7838EA
392 1FF0EA0FC025307F9F29>I<003FB512F0A2EB000F003C14E00038EB1FC00030EB3F8000
393 70137F1500006013FE495A13035CC6485A495AA2495A495A49C7FC153013FE485A12035B
394 48481370485A001F14604913E0485A387F000348130F90B5FCA21C207E9F22>I
396 %EndDVIPSBitmapFont
397 %DVIPSBitmapFont: Ff cmbx12 13.14 48
398 /Ff 48 122 df<923807FFE092B512FC020714FF021F81027F9038007FC0902601FFF0EB
399 0FE04901C0497E4990C7487ED90FFC147F011F824A14FF495AA2137F5CA2715A715A715A
400 EF078094C8FCA7EF07FCB9FCA526007FF0C7123F171FB3B3A2003FB5D8E00FB512F8A53D
401 4D7ECC44>12 D<B7FCAA200A7F9D29>45 D<EA07E0EA1FF8EA3FFCEA7FFEA2B5FCA6EA7F
402 FEA2EA3FFCEA1FF8EA07E01010778F22>I<15F014011407141F147FEB03FF137FB6FCA3
403 13FC1380C7FCB3B3B2007FB712E0A52B4777C63D>49 D<ECFFF80107EBFF80013F14F090
404 B612FC4881480101EBFF802707F8003F13C0D80FE0010F13E0D81F806D13F0003F80D87F
405 F06D13F86D15FC6D7F00FF16FE6D147FA217FF82A36C5A6C5A6C5A6C5AC95A17FEA3EEFF
406 FCA24B13F817F05D17E04B13C017804B13004B5A4B5A5EED7FE04B5A4A5B4A90C7FCEC07
407 FC4A5A4A5A4B131FEC3F804AC7FC14FE4948143E495AEB07E0495A4948147E49C8FC017E
408 15FE90B7FC4816FC5A5A5A5A5A5AB8FC17F8A430477AC63D>I<EC3FFE0103B512E0010F
409 14FC013F14FF90267FE01F7F9026FF000713E0D801FC6D7FD803F07F486C6D7FD80FFE81
410 7F486D80167FA3805C16FF7E91C75B6C5A6C5AD80020495B90C75C5D5F4B5B5F031F90C7
411 FCED3FFC4AB45A49B512E0168016E016FC90C7EA3FFF030713C06F7F6F7F6F7F83707E83
412 A2701380A318C0EA07E0EA1FF8487E487EA2B5FCA31880A25E491600127F494A5A6C485D
413 01E05B001F4A5BD80FFC495B2707FFC03F13C06C90B65AC64BC7FC013F14F8010714E090
414 26007FFEC8FC32487BC63D>I<EE07E0160FA2161F163F167F16FFA25D5D5DA25D5D5DA2
415 157D15FDEC01F915F1EC03E11407EC0FC1EC1F811501143F147E14FC14F8EB01F01303EB
416 07E014C0EB0F80131FEB3F00133E5B13FC485A485A5B1207485A485A90C7FC123E127E5A
417 B912FCA5C80003EBE000AD023FB612FCA536487DC73D>I<D8038015E001E0140301FC14
418 3F9039FFE003FF91B612C017801700A25E5E16F05E5E93C7FC15FC15F001E790C8FC01E0
419 C9FCAAEC1FFC01E1B512C001E714F001EF14FC9039FFE01FFFDA0007138001FC6D13C001
420 F06D13E04915F0497F17F8C913FC167F17FEA417FFA3EA0FC0EA3FF0487EA2487EA317FE
421 A34914FF6C4815FC5B018015F86CC74813F07F6C6C4913E0D80FF04913C0D807FC011F13
422 806CB46CB512006C90B512FC6C5D013F14C0010F91C7FC010113F030487AC63D>I<ED7F
423 F8913807FFFE021F6D7E027F80903A01FFF01FE0010790388003F04948486C7E49486D7E
424 D93FF013074948130F01FF4A7E4849133F5C5A4890C7FCA25A705A48486E5A705A003F92
425 C8FCA3485AA21520913807FFE0021F13FC00FF497F4A6D7EDAFC017F9026FDF0007F4A6D
426 7ED9FFC06D7E4A6D7E8391C7FC8382491680A318C05BA3127FA6123FA27F001F1780A300
427 0F4B1300A26C6C5DA26C6D495A6C6D5C6C6D495A6D6C48485A90263FFC075B6DB65A6D4A
428 C7FC01035C010014F0020F90C8FC32487BC63D>I<121F7F7F13FE90B812E0A45A18C018
429 8018005F5FA25F485E90C8EA07E0007E4B5A5F007C151F4CC7FC167E5E485D15014B5A4B
430 5AC8485A4B5AA24BC8FC157EA25D1401A24A5A1407A24A5AA2141FA24A5AA2147FA314FF
431 A3495BA45BA55BAA6D5BA26D90C9FCEB007C334B79C93D>I<EC1FFF49B512F0010714FC
432 011F14FF90263FF00713C049C77F01FCEC3FF04848EC0FF848481407000782491403000F
433 821601A2121F7FA27F13FE6D140302C05C14F002FC495A6C6D130FDAFF805B9238E01FE0
434 6C6E485A9238FCFF806C91B5C7FC6C15FC6C5D7F6D14FE6D806D15C06D81011F81017F81
435 D9FFDF804813072603FE018048486C804848133F4848010F1480003F8049130148486D6C
436 13C0161F824848140382A282A2177FA218807F127FEFFF007F6C6C4A5AA2D81FFC4A5A6C
437 6CEC0FF86C6C6CEB3FF06C9039F003FFE06C90B612806C6C92C7FC011F14FC010714E090
438 26003FFEC8FC32487BC63D>I<EE01F8A24C7EA34C7EA24C7EA34C7FA24C7FA34C7FA293
439 B57EA34B8016F303038016E316E103078016C0030F805E83031F814C7E4B81153E83037E
440 81037C7F03FC815D830201824B7F0203825D830207824B7F020F825D84021F8392B8FC4A
441 83A34A83027CC8120F02FC835C840101844A810103845C840107844A81010F845C85011F
442 85496C82B600C091B712F0A5544D7CCC5D>65 D<B912F0F0FF8019F019FC19FFD8001F01
443 80C780061F7F727F727F727F727FA2727FA2197F86A84F5AA2626062604E5B4E5B4E1380
444 067F90C7FC943803FFFC92B712F0198019F019FC0380C7383FFF80060F7F060313F0727F
445 727F737E86851B80851BC0A21BE0A48561A41BC0A2611B80611B0096B5FC4E5B4E5B060F
446 5B067F5BBB12C097C7FC19FC19F04EC8FC4B4B7CCA57>I<93261FFF80EB01C00307B500
447 F81303033F02FE13074AB7EAC00F0207EEE03F021F903AFE007FF87F027F01E0903807FC
448 FF91B5C70001B5FC010301FC6E7E4901F0151F4901C0814949814990C97E494882494882
449 485B48197F4A173F5A4A171F5A5C48190FA2485B1A07A25AA297C7FC91CDFCA2B5FCAD7E
450 A280A2F207C07EA36C7FA26C190F6E18807E6E171F6C1A006E5F6C193E6C6D177E6D6C5F
451 6D6C4C5A6D6D15036D6D4B5A6D01F04B5A6D01FCED3FC0010001FFEDFF806E01E0D903FE
452 C7FC021F01FEEB3FFC020790B612F002015EDA003F92C8FC030714FCDB001F13804A4D79
453 CB59>I<B912F0F0FF8019F019FC19FFD8001F902680000114C0DD001F7F060713F80601
454 7F726C7E737E737F737F737F8587737F8587A2747EA38786A21C80A51CC0A586A462A51C
455 80A51C00A26263A2631AFF636163614F5B634F5B073F90C7FC4F5A4F5A06035B061F5B4D
456 B512C0BBC8FC19FC19F0198006F0C9FC524B7CCA5E>I<BBFCA41A80D8001F01C0C7FC18
457 1F18038484197F193F191F1AC0190FA31907A4171FF103E0A496C7FCA25FA25F5F5E1607
458 92B6FCA5EDC0071601828383A283A794C9FCB1B8FCA5434A7CC94D>70
459 D<93261FFF80EB01C00307B500F81303033F02FE13074AB7EAC00F0207EEE03F021F903A
460 FE007FF87F027F01E0903807FCFF91B5C70001B5FC010301FC6E7E4901F0151F4901C081
461 4949814990C97E494882494882485B48197F4A173F5A4A171F5A5C48190FA2485B1A07A2
462 5AA297C8FC91CEFCA2B5FCAD6C040FB712C0A280A36C93C7001FEBC000A2807EA27E807E
463 807E806C7F7E6D7E6D7E6D7F6D01E05D6D6D5D6D13FC010001FF4AB5FC6E01E0EB07F902
464 1F01FFEB3FF0020791B5EAE07F0201EEC01FDA003FED0007030702F81301DB001F018090
465 C8FC524D79CB61>I<B712FEA5D8000FEBE000B3B3B3ABB712FEA5274B7DCA2E>73
466 D<B8FCA5D8001F01C0C9FCB3B3A4193EA4197E197CA519FCA31801A2F003F8A21807180F
467 181F183F187FEF01FF1707173FBA12F0A53F4B7BCA4A>76 D<B600E04DB612806F5FA26F
468 5FA2D8001F09FCC7FC6FEF0F7FA2DABFFE171EA2DA9FFF173CA3028F6D1678A202876D16
469 F0A202836DED01E0A302816DED03C0A202806DED0780A26F6CED0F00A36F6C151EA26F6C
470 5DA26F6D5CA26F6D5CA36F6D495AA26F6D495AA26F6D495AA3706C49C7FCA2706C131EA2
471 706C5BA3706D5AA2706D5AA270EBE1E0A370EBF3C0A270EBFF80A27190C8FCA2715AA371
472 5AA2715A497EB600F06D480103B71280A3715A715A694B7BCA74>I<B600E092B612F881
473 81A281D8001F6D9239001FE0006F705A82A28202BF7F029F7FA2028F7F02877F02837F82
474 14810280806F7F6F7F83816F7F6F7F6F7F83816F80707F707F8482707F707F707FA2707F
475 7014807113C019E0837113F07113F87113FC19FE837113FF71148F7213CF1AEF847213FF
476 8484A284848485A2858585A285858585497EB600F8167F1A3F1A1F1A0FA2554B7BCA60>
477 I<EEFFF8031FEBFFC04AB612FC020715FF021FD9C01F13C091277FFE000313F0902601FF
478 F09038007FFC49496E7E490180EC0FFF4990C86C7F49486F7F49486F7F017F8449486F7F
479 4849707EA24849707E4885A24849701380A2481AC04A82A2481AE0A34890CA6C13F0A5B5
480 19F8AE6C1AF0A26E5EA36C1AE0A26E5E6C1AC0A26C1A806E5E6C1A006E5E6C616E16FF6C
481 616C6D4B5B6D6C4B5B6E5D6D6D4A5B6D6D4A5B01076D4A90C7FC6D01F8ECFFFE6D01FE01
482 035B9028007FFFC01F13F0021F90B612C0020793C8FC020115FCDA001F14C0030101FCC9
483 FC4D4D79CB5C>I<B912C018FCF0FF8019F085D8001F902680000713FE05007F063F1380
484 060F13C07213E01AF0841AF8A27213FCA31AFEA81AFCA34E13F8A21AF0601AE04E13C006
485 3F138095B51200050713FC92B75A19E096C7FC18F803C0CAFCB3ABB712FCA5474B7BCA54
486 >I<B9FC18F8F0FF8019E019F8D8000F9026C0000713FE9439007FFF80061F7F727F727F
487 727F84868684A286A862A24E5BA2624E5B4E5B4E5B4E5B95B5C8FC050713FC92B712F019
488 8006FCC9FC18FF9226C0003F13C0050713F0717F717F717F187F85727FA28486A786A71C
489 3E86A28474137E72157C726D13FCB700FC6D9038FE01F872EBFF8373EBFFF0071F14E007
490 031480CD383FFE00574C7CCA5C>82 D<DA7FFCEB01C00103B5EAC003011FECF00749ECFC
491 0F90B7121F48D9E00F13BF4890C713FFD807FC141F4848804848140382484880177F485A
492 173F171F12FFA2170F7FA217077F7F7F6D92C7FC6D7E6C13F014FF15F86CECFF8016F86C
493 15FF6C16C0836C826C826C826C82013F816D1680010716C01300020F15E01400030714F0
494 ED007F160F16037013F882177F127800F8163FA3171FA27E18F0A27EA26CEE3FE07F18C0
495 01E0157F6DEDFF8001FC160001FF140302E0EB0FFED97FFEEB3FFC486CB612F0D8FC0F5D
496 D8F803158048C66C49C7FC48010313F0354D79CB44>I<003FBB12C0A5DA80019038FC00
497 1FD9FC001601D87FF09438007FE001C0183F49181F90C7170FA2007E1907A3007C1903A5
498 00FC1AF0481901A5C894C7FCB3B3A749B812FCA54C4A7CC955>I<B700F8023FB512F8A5
499 D8001F01C0C9380FE000745AB3B3AD6D180F63811A1F6D96C7FC626D7F1A7E6D7F6D606E
500 6C4B5A6E6CED07F06E6C4B5A6E01C0EC3FC06E01F049B45A020101FF011F90C8FC6E91B5
501 5A033F15F8030715E0030092C9FC040713F0554C7CCA5E>I<B700F00203B6FCA5D8001F
502 01E0C93803FC00745A6D61811A036D6D5F1A076D6D5F1A0F6D616F161FA26D6D94C7FC62
503 6E6D153E1A7E6E177C7015FC6E5F8219016E6D5D19036E5F7014076E5F82190F6E6D5D19
504 1F6E6D92C8FC616F153E83197E6F6D137C19FC6F6D5B18016F5DEFF003A26F01F85B1807
505 6F01FC5B180F6F5DEFFE1F6F92C9FC17FF607013BE18FE705BA2705BA3705BA2705BA270
506 5BA3705BA27090CAFCA2177EA2584C7ECA5D>I<ECFFFC010FEBFFC0017F14F090B612FC
507 489038803FFE3B03FC0007FF80486C6D7F6D7F486D6C7F83167F83A2707E6C90C7FC6C5A
508 6C5AC9FCA5ED1FFF021FB5FC49B6FC130F013FEBC03F9038FFFE00000313F04813C04890
509 C7FC485A485AA2485AA2485AA4167FA26D14FF007F15EF6D01017F6C6C903907CFFF806C
510 6CD90F8F13FE6C9038E07F076C9038FFFE0300014A7ED8003F9038F0007F0103018090C7
511 FC37347CB23C>97 D<EB7FC0B5FCA512037EB3ED07FF037F13E002C1B512FC02C714FF91
512 26CFF80F7F9126DFC0017F02FFC77F4AEC3FF002F8814A6E7E717E4A81831980A37113C0
513 A319E0AC19C0A35F1980A219005F606E141F6E5D4D5A6E4A5A02BF4A5A91261FC0035B90
514 27FE0FF01F5B496CB548C7FCD9F80114F8496C6C13E0C8D80FFEC8FC3B4D7CCB44>I<91
515 380FFF8091B512F8010314FF010F15804948C613C0D97FF8EB1FE0D9FFE0EB3FF0484913
516 7F4849EBFFF84890C7FCA2485A121FA24848EC7FF0EE3FE0EE1FC0007F92C7FC5BA212FF
517 AC127FA27FA2123FA26C6C153EA26C6C157E177C6C6D14FC6C6D14F86C6D13036C6DEB07
518 F0D97FFCEB1FE06DB4EBFFC0010F90B5120001035C010014F0020F13802F347CB237>I<
519 EF1FF0EE3FFFA51600177FB3EC0FFF91B512E0010314F8010F14FC013FEB01FF903A7FF8
520 003FFFD9FFE0130F48497F48497F4890C77E48815B121F5B123FA2127F5BA312FFAC127F
521 A36C7EA3121F6D5C120F6C6C5C6C6D5B6C5D6C01E0013F7F6D6C49EBFFE090393FFE03FE
522 6DB512F801075C0100148091261FFC00EBC0003B4D7CCB44>I<EC0FFF91B512F0010314
523 FC010F14FF90263FFE077F90267FF0007F49486D7E4801806D7E486F7E4890C7120F4848
524 81707E121F491403003F82A2127F5B701380A212FFA390B8FCA401F8CAFCA5127FA27FA2
525 123FA26C6CED0F80A26C6C151F6C17006E5C6C6D147E6C6D5C6C6D495AD93FFCEB07F090
526 3A1FFF803FE0010790B55A010192C7FC6D6C13FC020713C031347DB238>I<ED7FF09138
527 07FFFC023F7F4A7F902601FFE0138049018113C049484813E0EB0FFCEB1FF8A2EB3FF0A2
528 017F6D13C04A6C1380EE7F00163E93C7FCACB77EA526007FF0C8FCB3B3A3003FB512F8A5
529 2B4D7DCC26>I<DA7FFCEB0FE00103B538807FF8010F9138E1FFFC013F02FB13FE903A7F
530 F01FFFF39026FFC007138348D90001130348168348486DEBC1FCEFC0F8000FEEE0004914
531 7F001F82A9000F5E6D14FF00075EA26C6C495B6C93C7FC6C9038C007FE9138F01FFC4890
532 B55A01EF14E0D803C314809026C07FFCC8FC000790CAFCA47FA27F13FC90B612FCEEFFC0
533 6C16F817FE6C8218806C17C06D16E00003B812F0120FD81FFCC7000F13F8D83FF0140049
534 153F4848ED1FFC00FF160F491507A56D150F007F17F86D151F6C6CED3FF06C6CED7FE0D8
535 0FFE913801FFC06C6C6C010713806C01F8017F1300C690B612FC013F15F001071580D900
536 3F01F0C7FC37497DB13D>I<EB7FC0B5FCA512037EB3923801FFC0030F13F8033F7F4B13
537 FFDBFE077F9138C1F0039126C3E0017FDAC78080ECCF0014DE02DC6D7F14FC5CA25CA35C
538 B3AAB6D8C07FEBFFE0A53B4C7BCB44>I<13FCEA03FF487F487FA2487FA66C5BA26C5B6C
539 90C7FCEA00FC90C8FCABEB7FC0B5FCA512037EB3B3A2B61280A5194D7BCC22>I<EB7FC0
540 B5FCA512037EB3A293383FFFFEA5040390C7FC17FC4C5AEE0FE0EE3FC04C5A4CC8FC4B5A
541 ED03F8ED0FF04B5A4B5A4B5A4BC9FC14C302C77F02CF7F02DF7F91B5FC824A7F4A6C7EEC
542 F83F9138E01FFE02C07F6F7F816F7F836F7F81707E83707E161F707E84707F84B6D8803F
543 EBFF80A5394C7CCB41>107 D<EB7FC0B5FCA512037EB3B3B3AAB61280A5194C7BCB22>I<
544 90287FC001FFC0EC7FF0B5010F01FC0103B5FC033F6D010F804B6D4980DBFE079026803F
545 817F9126C1F801903AC07E007FF00003D9C3E0DAE0F8806C9026C78000D9F1E06D7E02CF
546 C7EBF3C002DEEDF780DD7FFF6E7E02FC93C7FC4A5DA24A5DA34A5DB3AAB6D8C03FB5D8F0
547 0FB512FCA55E327BB167>I<903A7FC001FFC0B5010F13F8033F7F4B13FFDBFE077F9138
548 C1F00300039026C3E0017F6CD9C78080ECCF0014DE02DC6D7F14FC5CA25CA35CB3AAB6D8
549 C07FEBFFE0A53B327BB144>I<913807FF80027F13F80103B6FC010F15C090261FFE017F
550 903A7FF0003FF849486D7E480180EB07FE4890C76C7E4817804980000F17C048486E13E0
551 A2003F17F0A249157F007F17F8A400FF17FCAB007F17F8A46C6CEDFFF0A2001F17E0A26C
552 6C4A13C0A26C6C4A13806C6D4913006C5E6C01E0EB1FFC6D6C495A903A3FFE01FFF0010F
553 B612C0010392C7FCD9007F13F80207138036347DB23D>I<90397FC007FFB5017F13E002
554 C1B512FC02C714FF9126CFF80F7F9126DFC0037F000301FFC77F6C496E7E02F8814A6E7E
555 717E4A81831980A28319C0A37113E0AC19C05FA319805F19005F606E143F6E5D4D5A6E4A
556 5A02FF495BDBC0075B9126EFF01F5B02E7B548C7FC02E114F8DAE07F13E0DB0FFEC8FC92
557 CAFCAFB612C0A53B477CB144>I<9039FF803FE0B5EBFFF8028113FE02837FDA87E11380
558 EC8F830003D99F0713C06C139E14BCA214F8A24A6C13806F13006F5A4A90C7FCA45CB3A8
559 B612E0A52A327CB132>114 D<903907FF8070017FEBF1F048B6FC1207380FFC01391FE0
560 003F4848130F491307127F90C71203A2481401A27FA27F01F090C7FC13FCEBFFC06C13FE
561 ECFFE06C14FC6C806CECFF806C15C06C15E06C15F06C7E011F14F8010114FCEB000FEC00
562 7FED1FFE0078140F00F8140715037E1501A27E16FC7E15036D14F86D13076D14F001F8EB
563 1FE001FFEBFFC04890B51280486C1400D8F81F13FCD8E00313C027347CB230>I<14F8A5
564 1301A41303A21307A2130FA2131F133F137F13FF1203000F90B512F0B7FCA426007FF8C7
565 FCB3A7167CAA013F14F880A290391FFE01F0010F1303903907FF87E06DEBFFC06D14806D
566 6C1300EC0FFC26467EC430>I<D97FE0EC3FF0B5EC7FFFA5000315016C81B3AC5EA25EA2
567 5E7E6EEB0F7F017F021E7F6E017CEBFFE090393FFE01F86DB512F0010714E0010114C090
568 27003FFE00EBC0003B337BB144>I<007FB500C090387FFFE0A5C601F0C73803F8006E5D
569 017F5E6E1407013F5E80170F011F5E6E141F6D93C7FC6F5B6D153E6F137E6D157C6F13FC
570 A26D6D5B16016D5DEDF803027F5CEDFC07023F5CEDFE0F021F5C15FF161F6E91C8FC16BF
571 6E13BE16FE6E5BA26E5BA36E5BA26F5AA26F5AA26F5AA393C9FC5D153E157E157CD81F80
572 13FC486C5B387FE001D8FFF05B14035D14074A5A49485A007F133F4948CAFC383F81FE38
573 1FFFF86C5B6C13C0C648CBFC3B477EB041>121 D E
574 %EndDVIPSBitmapFont
575 %DVIPSBitmapFont: Fg cmr7 7 1
576 /Fg 1 50 df<13381378EA01F8121F12FE12E01200B3AB487EB512F8A215267BA521>49
577 D E
578 %EndDVIPSBitmapFont
579 %DVIPSBitmapFont: Fh cmsl10 10.95 32
580 /Fh 32 122 df<EEFF80030F13F092383FC0789238FE001CDA03F8130E4A48133FDA1FE0
581 13FF4A5A4B5AEC7F005C5CEE00FE010115784A1400A513035CA4EE01FC0007B7FC17F8A2
582 3A0007F0000F1607A2130F4A14F0A4160F131F4A14E0A4161F133F4A14C0A4163F137F91
583 C71380A4167F5B491500A31201486C903801FF80B5D8F83F13FC5DA230407EBF33>12
584 D<EEFFC0030FEBFB8092383F803F9238FE007FDA03F813FF4A5A91381FE001EC3FC00380
585 1400EC7F004A7F4A805F13014A5CA4160113034A5CA416030007B7FC5FA23A0007F00003
586 A21607130F4A5CA4160F131F4A5CA4161F133F4A5CA4163F137F91C75BA4167F5B4992C7
587 FCA300015D486C497FB5D8F87F13FCA331407EBF33>I<007FB5FCA2B512FEA418067C96
588 1E>45 D<17E016011603831607A2160FA2161F83163FA2167F167716F7EEE7FCED01E316
589 C3150316831507EE03FEED0F01150E151E151C153C03387FED7800157015F05D4A488017
590 7F4A5AA24AC7FCA2020E81173F5C021FB6FC5CA20270C7EA3FE0171F5CA2495AA2494881
591 170F49C8FCA2130EA24982013C1507A2137CD801FE4B7E2607FF80EC3FFEB500F00107B5
592 12FC19F85E3E417DC044>65 D<013FB7FC18E018FC903B007FE00007FE6E48903801FF80
593 9438007FC05DF03FE0F01FF0A3027F16F892C8FCA54A16F04A153F19E0187F19C0F0FF80
594 01014B13004A4A5A4D5AEF1FF04D5ADC03FFC7FC49B612F8EFFF8002F8C7EA3FE0EF0FF0
595 EF07FC717E010715014A81711380A319C0130F5CA5011F4B13805C19005F601707013F4B
596 5A4A4A5A4D5A4D5A017F913801FF8001FF020F90C7FCB812FC17F094C8FC3D3E7DBD40>
597 I<013FB812E0A3903A007FF000016E48EB003F180F4B14071803A31801147F4B15C0A514
598 FF92C71270A395C7FC17F0495D5C160116031607161F49B65AA39138FC003F160F160701
599 075D4A1303A5010F4AC8FC5C93C9FCA4131F5CA5133F5CA3137FEBFFF0B612F8A33B3E7D
600 BD3B>70 D<011FB512FC5BA29039003FF8006E5AA25DA5143F5DA5147F5DA514FF92C7FC
601 A55B5CA513035CA513075CA5130F5CA5131F5CA3133F497E007FB512F0A2B6FC263E7EBD
602 21>73 D<9239FF8003800207EBF007021F9038FC0F0091387F00FE02FCEB1F1FD903F0EB
603 07BF49486DB4FC49487F4A6D5A49C8FC49157E133E137E173E49153CA57F1738A26D92C7
604 FC808080EB7FFEECFFE06D13FEEDFFC06D14F06D14FC010380010080143F020380DA003F
605 7F15031500707E163F161FA2160F121CA31607160F003C5EA35F003E151F94C7FC007E5D
606 007F153E6D5C16FC01E0495AD87DF0495AD8FCFCEB0FC03AF87F803F8027F01FFFFEC8FC
607 D8E00713F839C0007FC031427BBF33>83 D<B600E090B512FC4B15F8A2000101C0C7000F
608 13006C49EC03FCEF01F091C9FC60A317015A495EA417031203495EA4170712074993C7FC
609 A45F120F49150EA4171E121F49151CA4173C123F491538A31778177017F05F001F15015F
610 16036D4A5A000F93C8FC5E6C6C141E6C6C5C000115F86C6C495A017FEB07C090393FC03F
611 8090260FFFFEC9FC010313F89038007FC03E4073BD44>85 D<EC7FC0903803FFF890380F
612 C07E90383E003F496D7E01FF6D7E82A248140782A26C5A137890C7120FA25EA2EC03FF14
613 7F903807FF1FEB1FE0D97F805B3801FE00EA03F8485A4848133F485A003F5D49EC81C048
614 C7FCA2157F48ED03804814FFA2007F5B913903BF0700903880073F3A3FC00E1F8E260FE0
615 3C13FC3A03FFF00FF83A007FC003E02A2A7CA82D>97 D<EB3F80EA1FFFA3C6FC137FA291
616 C9FCA55B5BA512015BA4EC07F80003EB3FFF9039F8F80FC09039FBE003E09039FF8001F8
617 91C77E5B4848147E49147F5B821780A2120F5B17C0A3167F001F16805BA4EEFF00123F5B
618 4B5AA24B5A5E007F4A5AA24B5A6D495A4BC7FCD87CE0137E39F87001F839F03C07E039E0
619 0FFF80260003FCC8FC2A4077BE33>I<EC1FF0ECFFFE903903F01F8090390FC003C0D93F
620 0013E0017E130F49131F000115F04848EB3FE0485AA24848EB1FC0001FEC0F004990C7FC
621 123FA2485AA412FF90C9FCA96CEC0380150716006C6C5B151E001F5C6C6C5B6C6C5B6C6C
622 485A3901F80F8026007FFEC7FCEB0FF0242A7AA828>I<EE03F8ED01FFA3ED000F1607A2
623 17F0A4160FA217E0A4161FA217C0A491380FF03FECFFFC902603F81F138090390FC007BF
624 90391F8003FF90387E0001497F0001157F48481500485A120F5B001F5D485A5E5B127FA2
625 150112FF90C75BA41503A25EA37E1507A26C4A5A7F001F141F6C6C133F6C6CEBFFF83B03
626 F001EFFFC03900F80F8F90383FFE0FD90FF0EBE0002D407ABE33>I<EC3FE0903801FFF8
627 903807E07E90380F801F90393F000F80017E14C049EB07E0485A12034848EB03F0485AA2
628 121F5B123FA248481307A290B6FCA2D8FF80C8FC90C9FCA87EED01C015036C15806D1307
629 001FEC0F006D131E000F5C6C6C5B6C6C485A3900FC07C0D93FFFC7FCEB07F8242A7BA828
630 >I<ED07F0ED3FFCEDFC1E913803F03F4A48B4FC4A481380141FEC3F81DA7F0113008102
631 FE137C93C7FCA213015CA513035CA50007B512F8A3260007F0C8FCA3130F5CA5131F5CA5
632 133F5CA5137F91C9FCA55B5BA4EA03FF007F13FEB5FCA229407DBF1C>I<177C913907F8
633 03FE91393FFE0F8F9139FC0F9C3F903901F007F8903907E003E0D90FC013F0011F903801
634 F80C02801400133FD97F007FA315035B495CA3017E495A5E150F6D5C6D495A90263F803E
635 C7FCECC0FC903871FFF09038E07F8091C9FC485AA47FA27F90B512F8EDFF806C15E016F8
636 6D8048B6FC3A07E0000FFED80F801300003FC8127F003E815A00FC815AA25E163EA25E6C
637 15FC007C4A5A6C4A5A6CEC0FC0D80FC0013FC7FC3903F801FCC6B512F0010F90C8FC303D
638 7FA82D>I<147FEB3FFFA313017FA25CA513015CA513035CA4ED07F80107EB1FFF9139F0
639 781FC09138F1E00F9139F38007E0ECF70002FE14F0495A5CA25CA24A130F131F4A14E0A4
640 161F133F4A14C0A4163F137F91C71380A4167F5B491500A300015D486C491380B5D8F87F
641 13FCA32E3F7DBE33>I<1478EB01FE130314FFA25B14FE130314FCEB00F01400ACEB03F8
642 EA01FF14F0A2EA001F130FA314E0A5131F14C0A5133F1480A5137F1400A55B5BA4EA03FF
643 007F13F0A2B5FC183E7DBD1A>I<147FEB3FFFA313017FA25CA513015CA513035CA50107
644 0103B5FC02F014FEA26F13F06F1380EEFE00010F14F84A485AED03C04B5A031FC7FC153E
645 011F13784A5AECC3E0ECC7F0ECCFF814FF497F14F9ECE1FE14C04A7E4A7E4980017E133F
646 82151F82150F01FE8049130782A2000181486C49B4FCB5D8F03F13F04B13E0A2303F7EBE
647 30>107 D<143FEB1FFF5BA213017FA214FEA5130114FCA5130314F8A5130714F0A5130F
648 14E0A5131F14C0A5133F1480A5137F1400A55B5BA4EA03FF007F13F8A2B5FC183F7DBE1A
649 >I<902707F007F8EB03FCD803FFD91FFF90380FFF80913CE0781FC03C0FE09126E1E00F
650 EBF0073E001FE38007E1C003F090260FE700EBE38002EEDAF70013F802FC14FE02D85C14
651 F84A5CA24A5C011F020F14074A4A14F0A5013F021F140F4A4A14E0A5017F023F141F91C7
652 4914C0A549027F143F4992C71380A300014B147F486C496DEBFFC0B5D8F87FD9FC3F13FE
653 A347287DA74C>I<903907F007F8D803FFEB1FFF9139E0781FC09138E1E00F3B001FE380
654 07E090380FE70002EE14F014FC14D814F85CA24A130F131F4A14E0A4161F133F4A14C0A4
655 163F137F91C71380A4167F5B491500A300015D486C491380B5D8F87F13FCA32E287DA733
656 >I<EC0FF0ECFFFE903903F01F8090390FC007C049C66C7E013E6D7E01FC6D7E48488049
657 147C0003157E485A000F157F5B121FA2485AA2007F1680A2170048C85AA54B5AA25E5A6C
658 4A5A7E4B5A5E6C140F6C6C5C4B5A6C6C013EC7FC6C6C5B6C6C485A3900FC0FE090383FFF
659 80D90FF8C8FC292A7BA82D>I<91387F01FE903A7FFF0FFFC09139FE3E03F09238F801F8
660 903A01FFE000FE4B137F6D497F4990C713804A15C04A141FA218E0A20103150F5C18F0A3
661 171F010716E05CA3173F18C0130F4A147F1880A2EFFF004C5A011F5D16034C5A6E495AEE
662 1FC06E495AD93FDC017EC7FC91388F01F8913883FFE0028090C8FC92C9FC137FA291CAFC
663 A45BA25BA31201487EB512F8A3343A81A733>I<903907F01F80D803FFEB7FE09138E1E1
664 F09138E387F839001FE707EB0FE614EE02FC13F002D813E09138F801804AC7FCA25C131F
665 A25CA4133F5CA5137F91C8FCA55B5BA31201487EB512FEA325287EA724>114
666 D<9138FF81C0010713E390381F807F90397C003F8049131F4848130F5B00031407A24848
667 1400A27FA27F6D90C7FCEBFF8014FC6C13FF6C14C015F06C6C7F011F7F13079038007FFE
668 1403140100381300157EA2123C153E157E007C147CA2007E147815F8007F495A4A5A486C
669 485A26F9E01FC7FC38E0FFFC38C01FE0222A7DA824>I<EB0380A4130791C7FCA25BA25B
670 A2133EA2137E13FE12011207001FB512C0B6FCA2D801FCC7FCA312035BA512075BA5120F
671 5BA41407001F130E13C0A4141E141C1380A26D5AA2000F5B14F03807E1E03801FF80D800
672 7EC7FC1A3978B723>I<01FE147F00FFEC7FFF4914FEA20007140300031401A34914FCA4
673 150312074914F8A41507120F4914F0A4150F121F4914E0A2151FA3153F4914C0157F15FF
674 EC01DF3A0FC003BFE09138073FFF3803F01E3801FFF826003FE01380282977A733>I<B5
675 39E007FFF05D17E02707FE000313006C48EB01FC6F5A5E00014A5A5EA24B5A6D13070000
676 92C7FC5D150E6D5B7F5DA25D1480013F5B14815D14C3011F5B02C7C8FCA214CE14EEEB0F
677 FCA25CA26D5A5CA25CA26D5A2C2878A630>I<B500C3B53803FFFCA204FE14F8290FFE00
678 3FE00013C0D807F86D48EB7F000003173E183C150F18386D5E0001141F705B153F4D5A15
679 776D4B5A0000ECE7F04DC7FCEC01C3170E9038FF0383017F5D91380703F85FEC0E01021E
680 5CD93F9C14F002BC6D5A02B813FDDAF8005B4A13FF5F6D5A94C8FC5C4A137E167C6DC7FC
681 1678010E14383E2878A642>I<48B539C07FFFC0A33C000FFE003FF8006D48EB1FE00103
682 15800101023EC7FC6E133C01005C027F5B6F5A91383F81C0EDC380DA1FC7C8FC15EFEC0F
683 FE6E5A5D140381A24A7E140FEC1E7F023C7FEC383F02707FECE01F010180903803C00F49
684 486C7ED90F007F491303017E80D801FE80D807FF497EB5D8803F13F8A332277FA630>I<
685 90B539E007FFF05E18E0902707FE000313006D48EB01FC705A5F01014A5A5F16036E5C01
686 00140794C7FC160E805E805E1678ED8070023F13F05EED81C015C191381FC38015C793C8
687 FC15EF15EEEC0FFCA25DA26E5AA25DA26E5A5DA24AC9FC5C140E141E141C5C121C003F5B
688 5A485B495A130300FE5B4848CAFCEA701EEA783CEA3FF0EA0FC0343A80A630>I
690 %EndDVIPSBitmapFont
691 %DVIPSBitmapFont: Fi cmtt10 10.95 84
692 /Fi 84 126 df<00101304007C131F00FEEB3F80A26C137FA248133FB2007E1400007C7F
693 003C131E00101304191C75B830>34 D<903907C007C0A2496C487EA8011F131FA202C05B
694 A3007FB7FCA2B81280A36C16006C5D3A007F807F80A2020090C7FCA9495BA2003F90B512
695 FE4881B81280A36C1600A22701FC01FCC7FCA300031303A201F85BA76C486C5AA229387D
696 B730>I<D803C0EB01E0D80FF01303486C497E487E150F487ED87E7E495AEAFE7F5E486C
697 133FA25E157FA24BC7FC6C5A5D387E7E01EA7FFED83FFC5B1403EA1FF86C48485AEA03C0
698 C75B140FA25D141FA24A5AA25D147FA292C8FC5CA2495AA25C1303A25C1307A290390FF0
699 01E0ED07F84A487E011F497EA24A487E133F163F90267F807F1380ED7E1F14005BA25B12
700 01A24848EB7F3F033F13004914FF12076F5A5B6F5A6C486D5A0001EC01E029477DBE30>
701 37 D<EB07E0EB1FF8497E137F497E803801FC7F497E810003131F13F0A6143F92C8FC91
702 387F0FFF9026F87E1F1380000113FEEBF9FC13FB4A6C1300D9FFF013C06C13E0151F02C0
703 5BEB7F809038FF003F4892C7FC485C48EB807E5A15FE391FDFC0FC383F8FE014E1397F07
704 F1F8EB03F300FEEBFBF0EB01FF5D7FEDC006027F130F91393F801F8015C06C137F6CEBFF
705 E049EBF83F018701FC1300263FFFFBB5FC6C01F15B14E06C9038C03FFC00039038001FF8
706 D801FCEB07E0293A7DB830>I<141E147F14FF5BEB03FEEB07FCEB0FF0EB1FE0EB3FC0EB
707 7F80EBFF00485A5B12035B485A120F5BA2485AA2123F5BA2127F90C7FCA412FEAD127FA4
708 7F123FA27F121FA26C7EA27F12076C7E7F12017F6C7EEB7F80EB3FC0EB1FE0EB0FF0EB07
709 FCEB03FEEB01FF7F147F141E184771BE30>40 D<127812FE7E7F6C7E6C7EEA0FF06C7E6C
710 7E6C7E6C7EEB7F80133F14C0131FEB0FE014F01307A2EB03F8A214FC1301A214FE1300A4
711 147FAD14FEA4130114FCA2130314F8A2EB07F0A2130F14E0EB1FC0133F1480137FEBFF00
712 485A485A485A485AEA3FE0485A485A90C7FC5A1278184778BE30>I<14E0497E497EA600
713 38EC0380007EEC0FC0D8FF83EB3FE001C3137F9038F3F9FF267FFBFB13C06CB61280000F
714 ECFE00000314F86C5C6C6C13C0011F90C7FC017F13C048B512F04880000F14FE003FECFF
715 80267FFBFB13C026FFF3F913E09038C3F87F0183133FD87E03EB0FC00038EC0380000091
716 C7FCA66D5A6D5A23277AAE30>I<143EA2147FAF007FB7FCA2B81280A36C1600A2C76CC8
717 FCAF143EA229297DAF30>I<EA03E0EA0FF0EA1FF813FCEA3FFEA213FFA27EA27E1203EA
718 007FA2137E13FEEA01FC1203EA07F8EA3FF0127FEAFFE0EA7F801300123C1019708B30>
719 I<007FB612F0A2B712F8A36C15F0A225077B9E30>I<120FEA3FC0EA7FE0A2EAFFF0A4EA
720 7FE0A2EA3FC0EA0F000C0C6E8B30>I<16F01501ED03F8A21507A2ED0FF0A2ED1FE0A2ED
721 3FC0A2ED7F80A2EDFF00A24A5AA25D1403A24A5AA24A5AA24A5AA24A5AA24A5AA24AC7FC
722 A2495AA25C1303A2495AA2495AA2495AA2495AA2495AA249C8FCA2485AA25B1203A2485A
723 A2485AA2485AA2485AA2485AA248C9FCA25AA2127CA225477BBE30>I<14FE903807FFC0
724 497F013F13F8497F90B57E48EB83FF4848C6138049137F4848EB3FC04848EB1FE049130F
725 001F15F0491307A24848EB03F8A290C712014815FCA400FEEC00FEAD6C14016C15FCA36D
726 1303003F15F8A26D1307001F15F0A26D130F6C6CEB1FE0A26C6CEB3FC06C6CEB7F806D13
727 FF2601FF8313006CEBFFFE6D5B6D5B010F13E06D5BD900FEC7FC273A7CB830>I<EB03C0
728 497EA2130FA2131FA2133F137F13FF1203123FB5FCA213EF138FEA7E0F1200B3B0003FB5
729 12F84814FCB612FEA26C14FC6C14F81F3977B830>I<EB07FC90383FFFC090B512F00003
730 804814FE4880261FF80F1380263FE00113C09038C0007F4848EB3FE090C7121FED0FF048
731 14075A6C15F81503A3127E1218C8FCA2150716F0150F16E0151F16C0153FED7F8015FF4A
732 13005DEC07FC4A5A4A5A4A5A4A5A4A5A4990C7FC495A495AEB0FF0EB3FE0495A495A4890
733 C8FC4848EB01F04848EB03F8485AEA1FE048B6FCB7FCA37E6C15F025397BB830>I<EB03
734 FF013F13E090B512F84814FE4880481580260FFE0113C09038F0007F4848EB1FE0150F16
735 F01507A26C5A6C5AC8FC150F16E0A2151FED3FC0157FEDFF8002071300903807FFFE495B
736 5D8115FF6D1480D9000113C09138003FE0ED1FF0ED07F8150316FC150116FE1500A21218
737 127EB4FCA2150116FC4814036C15F86C6C13076DEB1FF0D83FF0133F3A1FFE01FFE06CB6
738 12C06C15806CECFE00C65C013F13F001031380273A7CB830>I<EC03FC4A7E140F141FA2
739 143F147F157E14FEA2EB01FCEB03F8A2EB07F0A2EB0FE0EB1FC0A2EB3F80A2EB7F0013FE
740 A2485A485AA2485AA2485A485AA2485AA248C7FC12FEB8FC1780A46C1600C8007EC7FCAA
741 91387FFFFE91B6FCA46E5B29397DB830>I<000FB612804815C05AA316800180C8FCAEEB
742 83FF019F13C090B512F015FC8181D9FE0313809039F0007FC049133F0180EB1FE06CC712
743 0F000E15F0C81207A216F81503A31218127EA2B4FC150716F048140F6C15E06C141F6DEB
744 3FC06D137F3A3FE001FF80261FFC0F13006CB55A6C5C6C5C6C14E06C6C1380D90FFCC7FC
745 25397BB730>I<EC0FF8EC7FFF49B51280010714E0131F4914F090387FF80F9039FFC007
746 F84813803803FE005B485A4848EB03F0ED01E0484890C7FC5B123F5BA2127FEB000C9038
747 03FFE0010F13F8D8FF3F13FE48B6FCB7128016C09039FE007FE001F8EB1FF001E0130F49
748 EB07F8ED03FC5B90C7120116FE1500A37EA46C7E15016D14FC121F6D1303000FEC07F86D
749 130F6C6CEB1FF06DEB3FE03A03FF81FFC06C90B512806C15006D5B011F13F8010713E001
750 011380273A7CB830>I<127CB712FC16FEA416FC48C7EA0FF816F0ED1FE0007CEC3FC0C8
751 EA7F80EDFF00A24A5A4A5A5D14075D140F5D4A5AA24A5AA24AC7FCA25C5C13015CA21303
752 5CA213075CA4495AA6131F5CA96D5A6DC8FC273A7CB830>I<49B4FC011F13F0017F13FC
753 90B57E0003ECFF804815C048010113E03A1FF8003FF049131FD83FC0EB07F8A24848EB03
754 FC90C71201A56D1303003F15F86D13076C6CEB0FF06C6CEB1FE0D807FCEB7FC03A03FF83
755 FF806C90B512006C6C13FC011F13F0497F90B512FE48802607FE0013C0D80FF8EB3FE0D8
756 1FE0EB0FF04848EB07F8491303007F15FC90C712014815FE481400A66C14016C15FC6D13
757 03003F15F86D1307D81FF0EB1FF06D133F3A0FFF01FFE06C90B512C06C1580C6ECFE006D
758 5B011F13F0010190C7FC273A7CB830>I<49B4FC010F13E0013F13F890B57E4880488048
759 010113803A0FFC007FC0D81FF0EB3FE04848131F49EB0FF048481307A290C7EA03F85A48
760 15FC1501A416FEA37E7E6D130315076C7E6C6C130F6D133FD80FFC13FF6CB6FC7E6C14FE
761 6C14F9013FEBE1FC010F138190380060011400ED03F8A2150716F0150F000F15E0486C13
762 1F486CEB3FC0157FEDFF804A1300EC07FE391FF01FFC90B55A6C5C6C5C6C1480C649C7FC
763 EB3FF0273A7CB830>I<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F00C7FCAF
764 120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C276EA630>I<EA03C0EA0FF0
765 EA1FF8A2EA3FFCA4EA1FF8A2EA0FF0EA03C0C7FCAFEA03C0EA0FF0121F13F8123F13FCA3
766 121FA2120F12031200120113F8120313F01207EA1FE0123FEA7FC0EAFF80EA7F00127E12
767 380E3470A630>I<16F01503ED07F8151F157FEDFFF014034A13C0021F138091383FFE00
768 ECFFF8495B010713C0495BD93FFEC7FC495A3801FFF0485B000F13804890C8FCEA7FFC5B
769 EAFFE05B7FEA7FF87FEA1FFF6C7F000313E06C7F38007FFC6D7E90380FFF806D7F010113
770 F06D7FEC3FFE91381FFF80020713C06E13F01400ED7FF8151F1507ED03F01500252F7BB2
771 30>I<007FB7FCA2B81280A36C16006C5DCBFCA7003FB612FE4881B81280A36C1600A229
772 157DA530>I<1278127EB4FC13C07FEA7FF813FEEA1FFF6C13C000037F6C13F86C6C7EEB
773 1FFF6D7F010313E06D7F9038007FFC6E7E91380FFF806E13C0020113F080ED3FF8151F15
774 3FEDFFF05C020713C04A138091383FFE004A5A903801FFF0495B010F13804990C7FCEB7F
775 FC48485A4813E0000F5B4890C8FCEA7FFE13F8EAFFE05B90C9FC127E1278252F7BB230>
776 I<EB1FFE90B512E0000314F8000F14FE4880481580267FF80313C09038C0007F48C7121F
777 16E0150FA3127E151F0018EC7FC0C812FF020313804A13004A5AEC1FF84A5AEC7FC04A5A
778 92C7FC495AA2495A5CA213075CA86D5A90C9FCA8EB01C0EB07F0A2497EA36D5AA2EB01C0
779 23397AB830>I<147F4A7EA2497FA4497F14F7A401077F14E3A3010F7FA314C1A2011F7F
780 A490383F80FEA590387F007FA4498049133F90B6FCA34881A39038FC001F00038149130F
781 A4000781491307A2D87FFFEB7FFFB56CB51280A46C496C130029397DB830>65
782 D<007FB512F0B612FE6F7E82826C813A03F8001FF815076F7E1501A26F7EA615015EA24B
783 5A1507ED1FF0ED7FE090B65A5E4BC7FC6F7E16E0829039F8000FF8ED03FC6F7E1500167F
784 A3EE3F80A6167F1700A25E4B5A1503ED1FFC007FB6FCB75A5E16C05E6C02FCC7FC29387E
785 B730>I<91387F803C903903FFF03E49EBFC7E011F13FE49EBFFFE5B9038FFE07F48EB80
786 1F3903FE000F484813075B48481303A2484813015B123F491300A2127F90C8FC167C1600
787 5A5AAC7E7EA2167C6D14FE123FA27F121F6D13016C6C14FCA26C6CEB03F86D13076C6CEB
788 0FF03901FF801F6C9038E07FE06DB512C06D14806D1400010713FC6D13F09038007FC027
789 3A7CB830>I<003FB512E04814FCB67E6F7E6C816C813A03F8007FF0ED1FF8150F6F7E6F
790 7E15016F7EA2EE7F80A2163F17C0161FA4EE0FE0AC161F17C0A3163F1780A2167F17005E
791 4B5A15034B5A150F4B5AED7FF0003FB65A485DB75A93C7FC6C14FC6C14E02B387FB730>
792 I<007FB7FCB81280A47ED803F8C7123FA8EE1F0093C7FCA4157C15FEA490B5FCA6EBF800
793 A4157C92C8FCA5EE07C0EE0FE0A9007FB7FCB8FCA46C16C02B387EB730>I<003FB71280
794 4816C0B8FCA27E7ED801FCC7121FA8EE0F8093C7FCA5153E157FA490B6FCA69038FC007F
795 A4153E92C8FCAE383FFFF8487FB5FCA27E6C5B2A387EB730>I<02FF13F00103EBC0F801
796 0F13F1013F13FD4913FF90B6FC4813C1EC007F4848133F4848131F49130F485A49130712
797 1F5B123F491303A2127F90C7FC6F5A92C8FC5A5AA892B5FC4A14805CA26C7F6C6D1400ED
798 03F8A27F003F1407A27F121F6D130F120F7F6C6C131FA2D803FE133F6C6C137FECC1FF6C
799 90B5FC7F6D13FB010F13F30103EBC1F0010090C8FC293A7DB830>I<3B3FFF800FFFE048
800 6D4813F0B56C4813F8A26C496C13F06C496C13E0D803F8C7EAFE00B290B6FCA601F8C7FC
801 B3A23B3FFF800FFFE0486D4813F0B56C4813F8A26C496C13F06C496C13E02D387FB730>
802 I<007FB6FCB71280A46C1500260007F0C7FCB3B3A8007FB6FCB71280A46C1500213879B7
803 30>I<49B512F04914F85BA27F6D14F090C7EAFE00B3B3123C127EB4FCA24A5A1403EB80
804 07397FF01FF86CB55A5D6C5C00075C000149C7FC38003FF025397AB730>I<383FFFF848
805 7FB57EA26C5B6C5BD801FCC9FCB3B0EE0F80EE1FC0A9003FB7FC5AB8FCA27E6C16802A38
806 7EB730>76 D<D83FF8ECFFE0486C4913F0486C4913F8A2007F16F06C6C4913E000071600
807 01EF14BFEC800FA39039E7C01F3FA4ECE03F01E3133EA2ECF07EA201E1137CA2ECF8FCA2
808 01E013F8A214FDEC7DF0A3147FEC3FE0A3EC1FC0A2EC070091C7FCADD83FFC903801FFE0
809 486C4913F0B54913F8A26C486D13F06C486D13E02D387FB730>I<D83FFC90381FFF8048
810 6C4913C0B54913E0A26C6D6C13C06C6E13800003913801F800EBF7C0A3EBF3E0A314F013
811 F1A214F8A213F014FCA2147C147EA2143E143FA2141FA21581A2140F15C1A2140715E1A2
812 140315F1A21401A215F91400A3157DA3153FEA3FFF481380B5EAC01FA26CEB800F6C496C
813 5A2B387EB730>I<90383FFFE048B512FC000714FF4815804815C04815E0EBF80001E013
814 3FD87F80EB0FF0A290C71207A44815F8481403B3A96C1407A26C15F0A36D130FA26D131F
815 6C6CEB3FE001F813FF90B6FC6C15C06C15806C1500000114FCD8003F13E0253A7BB830>
816 I<007FB512F0B612FE6F7E16E0826C813903F8003FED0FFCED03FE15016F7EA282178016
817 3FA6167F17005EA24B5A1503ED0FFCED3FF890B6FC5E5E16804BC7FC15F001F8C9FCB038
818 7FFFC0B57EA46C5B29387EB730>I<90383FFFE048B512FC000714FF4815804815C04815
819 E0EBF80001E0133F4848EB1FF049130F90C71207A44815F8481403B3A8147E14FE6CEBFF
820 076C15F0EC7F87A2EC3FC7018013CF9038C01FFFD83FE014E0EBF80F90B6FC6C15C06C15
821 806C1500000114FCD8003F7FEB00016E7EA21680157F16C0153F16E0151F16F0150FED07
822 E025467BB830>I<003FB57E4814F0B612FC15FF6C816C812603F8017F9138003FF0151F
823 6F7E15071503821501A515035E1507150F4B5A153F4AB45A90B65A5E93C7FC5D8182D9F8
824 007FED3FE0151F150F821507A817F8EEF1FCA53A3FFF8003FB4801C0EBFFF8B56C7E17F0
825 6C496C13E06C49EB7FC0C9EA1F002E397FB730>I<90390FF803C0D97FFF13E048B512C7
826 4814F74814FF5A381FF80F383FE001497E4848137F90C7123F5A48141FA2150FA37EED07
827 C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C14E0000114F86C80011F13FF01031480
828 D9003F13C014019138007FE0151FED0FF0A2ED07F8A2007C140312FEA56C140716F07F6D
829 EB0FE06D131F01F8EB3FC001FF13FF91B51280160000FD5CD8FC7F13F8D8F81F5BD87801
830 1380253A7BB830>I<003FB712C04816E0B8FCA43AFE003F800FA8007CED07C0C791C7FC
831 B3B1011FB5FC4980A46D91C7FC2B387EB730>I<3B7FFFC007FFFCB56C4813FEA46C496C
832 13FCD803F8C7EA3F80B3B16D147F00011600A36C6C14FE6D13016D5CEC800390393FE00F
833 F890391FF83FF06DB55A6D5C6D5C6D91C7FC9038007FFCEC1FF02F3980B730>I<D87FFE
834 90380FFFC0B54913E06E5AA24A7E6C486D13C0D807F0903801FC00A26D130300035DA46C
835 6C495AA46C6C495AA46D131F6D5CA3EC803F013F5CA46D6C48C7FCA490380FE0FEA40107
836 5B14F1A301035BA314FB01015BA314FFA26D5BA46E5A6E5A2B397EB730>I<3A3FFF01FF
837 F84801837F02C77FA202835B6C01015B3A01FC007F806D91C7FC00005C6D5BEB7F01EC81
838 FCEB3F8314C3011F5B14E7010F5B14FF6D5BA26D5BA26D5BA26D90C8FCA4497FA2497FA2
839 815B81EB0FE781EB1FC381EB3F8181EB7F0081497F49800001143F49800003141F498000
840 07140FD87FFEEB7FFFB590B5128080A25C6C486D130029387DB730>88
841 D<D87FFF90381FFFC0B56C4813E0A46C496C13C0D803F8903803F8006D1307A26C6C495A
842 A26C6C5C151F6D5CEC803F013F5CECC07F011F91C7FCA290380FE0FEA214F101075BA290
843 3803FBF8A201015B14FF6D5BA26E5AA36E5AB1903803FFF8497F497FA26D5B6D5B2B387E
844 B730>I<007FB5FCB61280A4150048C8FCB3B3B3A5B6FC1580A46C140019476DBE30>91
845 D<127CA212FEA27EA26C7EA26C7EA26C7EA26C7EA26C7EA26C7EA212017FA26C7EA26D7E
846 A26D7EA26D7EA26D7EA26D7EA26D7EA2130180A26D7EA26E7EA26E7EA26E7EA26E7EA26E
847 7EA26E7EA2140181A26E7EA2ED7F80A2ED3FC0A2ED1FE0A2ED0FF0A2ED07F8A21503A2ED
848 01F0150025477BBE30>I<007FB5FCB61280A47EC7123FB3B3B3A5007FB5FCB6FCA46C14
849 0019477DBE30>I<007FB612F0A2B712F8A36C15F0A225077B7D30>95
850 D<EB3FFC48B57E4814E04880488048809038F00FFE9038E001FF806F7E6C48133F6C4880
851 C8121FA491B5FC130F137F48B6FC12075A48EBC01F383FFC00EA7FE0138048C7FC5AA46C
852 143FA26C6C137F9038C001FF263FF80FEBFFC06CB712E0A2000714F76C14C3C6020013C0
853 D93FF090C7FC2B2A7CA830>97 D<EA3FFC487E12FFA2127F123F1200AAEC03FE91381FFF
854 80027F13E091B57E90B612FC82ECFE079138F001FF4A6C13804A137F4AEB3FC091C7121F
855 4915E0160FA217F01607A8160FA217E07F161F6EEB3FC0A26EEB7F806E13FFDAF0031300
856 9138FC0FFE91B55A5E495CD97E7F13C0D93C1F90C7FC90380003FC2C3980B730>I<ECFF
857 E0010713FC011F7F017F7F90B612804815C048EB807F3907FC003F485A485A49EB1F8048
858 48EB0F004990C7FC127F90C9FCA25A5AA87E7EA27F003FEC07C06DEB0FE06C7E6D131F6C
859 6C14C0D807FE133F9039FFC0FF806C90B5FCC615006D5B011F13F801075B01011380232A
860 7AA830>I<913801FFE04A7F5CA28080EC0007AAEB03FE90381FFF874913E790B6FC5A5A
861 481303380FFC00D81FF0133F49131F485A150F4848130790C7FCA25AA25AA87E6C140FA2
862 7F003F141F6D133F6C7E6D137F390FF801FF2607FE07EBFFC06CB712E06C16F06C14F76D
863 01C713E0011F010313C0D907FCC8FC2C397DB730>I<49B4FC010713E0011F13F8017F7F
864 90B57E488048018113803A07FC007FC04848133FD81FE0EB1FE0150F484814F049130712
865 7F90C7FCED03F85A5AB7FCA516F048C9FC7E7EA27F003FEC01F06DEB03F86C7E6C7E6D13
866 07D807FEEB1FF03A03FFC07FE06C90B5FC6C15C0013F14806DEBFE00010713F8010013C0
867 252A7CA830>I<EDFF80020713E0021F13F05C4A13F891B5FC491387903803FE079138FC
868 03F0903907F800C04A1300A8003FB612C04815E0B7FCA36C15C0260007F0C7FCB3A9003F
869 B512FE4880B71280A26C15006C5C25397DB830>I<D903FC13FF90261FFF8713C04913DF
870 90B712E05A5A2607FE07138F903AF801FE07C048486C6CC7FCA2497F001F8149133FA56D
871 137F000F92C7FC6D5BA26C6C485AEBFE0790B55A5D485C15C001DF5BD9C3FCC8FC01C0C9
872 FCA37F7F6CB512F015FF6C15C04815F0488148813A3FE0001FFE0180130148C8127F007E
873 8100FE168048151FA56C153F007FED7F006D5C6C6C495A01F013076CB4EB7FFC6C90B55A
874 6C5D000115C06C6C91C7FC011F13FC010113C02B3E7DA730>I<EA3FFC487E12FFA2127F
875 123F1200AAEC01FE91380FFF80023F13E091B57E90B67EA29138FE07FCECF8039138E001
876 FE14C0EC8000A291C7FCA25BB3A23B3FFFF81FFFF8486D4813FCB500FE14FEA26C01FC14
877 FC6C496C13F82F3880B730>I<14E0EB03F8A2497EA36D5AA2EB00E091C8FCA9381FFFF8
878 487F5AA27E7EEA0001B3A9003FB612C04815E0B7FCA27E6C15C023397AB830>I<EC01C0
879 EC07F0A2EC0FF8A3EC07F0A2EC01C091C7FCA990B512F04814F8A47EEB0003B3B3A5EC07
880 F0A2123C007EEB0FE0B4131FEC3FC0147F90B512806C14005C6C5B000F13F0000313C01D
881 4E7CB830>I<EA7FF8487EA4127F1200AB0203B512804A14C017E0A217C06E1480913900
882 1FE0004B5A4B5A4BC7FC4A5A4A5AEC0FF84A5A4A5A4A5A4A5A01FD7F90B57E8114F7ECE3
883 F8ECC1FCEC81FEEC00FF497F496D7E6F7E826F7E15076F7E6F7E3B7FFFF81FFFE0B56C48
884 13F017F8A217F06C496C13E02D387FB730>I<387FFFF8B57EA47EEA0001B3B3A8007FB6
885 12F0B712F8A46C15F025387BB730>I<02FC137E3B7FC3FF01FF80D8FFEF01877F90B500
886 CF7F15DF92B57E6C010F13872607FE07EB03F801FC13FE9039F803FC01A201F013F8A301
887 E013F0B3A23C7FFE0FFF07FF80B548018F13C0A46C486C01071380322881A730>I<EC01
888 FE3A3FFC0FFF80267FFE3F13E000FF90B57E90B67E7E6C9038FE07FCC6EBF8039138E001
889 FE14C0EC8000A291C7FCA25BB3A23B3FFFF81FFFF8486D4813FCB500FE14FEA26C01FC14
890 FC6C496C13F82F2880A730>I<49B4FC010F13E0013F13F8497F90B57E0003ECFF801401
891 3A07FC007FC04848EB3FE0D81FE0EB0FF0A24848EB07F8491303007F15FC90C71201A300
892 FEEC00FEA86C14016C15FCA26D1303003F15F86D13076D130F6C6CEB1FF06C6CEB3FE06D
893 137F3A07FF01FFC06C90B512806C15006C6C13FC6D5B010F13E0010190C7FC272A7CA830
894 >I<EC03FE3A3FFC1FFF80267FFE7F13E000FF90B57E90B612FC6C816CEBFE07C69038F0
895 01FF4A6C13804A137F4AEB3FC091C7121F4915E0160FA217F01607A8160FA217E07F161F
896 6EEB3FC0A26EEB7F806E13FFDAF00313009138FC0FFE91B55A5E495C6E13C0021F90C7FC
897 EC03FC91C9FCAD383FFFF8487FB57EA26C5B6C5B2C3C80A730>I<49B413F8010FEBC1FC
898 013F13F14913FD48B6FC5A481381390FFC007F49131F4848130F491307485A491303127F
899 90C7FC15015A5AA77E7E15037FA26C6C1307150F6C6C131F6C6C133F01FC137F3907FF01
900 FF6C90B5FC6C14FD6C14F9013F13F1010F13C1903803FE0190C7FCAD92B512F84A14FCA4
901 6E14F82E3C7DA730>I<ED07F83A3FFF803FFF486DB51280B512C302CF14C06C13DF6C90
902 38FFFC3FD8001F13E09238801F809238000F004A90C7FC5C5C5CA25CA45CAF003FB512FC
903 4880B7FCA26C5C6C5C2A287EA730>I<90381FFC1E48B5129F000714FF5A5A5A387FF007
904 EB800100FEC7FC4880A46C143E007F91C7FC13E06CB4FC6C13FC6CEBFF806C14E0000114
905 F86C6C7F01037F9038000FFF02001380007C147F00FEEC1FC0A2150F7EA27F151F6DEB3F
906 806D137F9039FC03FF0090B6FC5D5D00FC14F0D8F83F13C026780FFEC7FC222A79A830>
907 I<EB0780497E131FA9003FB612E04815F0B7FCA36C15E026001FC0C7FCB216F8ED01FCA5
908 ECE003010FEB07F814F09138FC1FF06DB512E06D14C016806D14009038007FFCEC1FF026
909 337EB130>I<D83FFCEB3FFC486C497E00FF14FFA2007F147F003F143F00001400B3A415
910 01A2150315076D130F903A7FC07FFFF891B612FC6D15FE7F6D4913FC6D9038F87FF80100
911 01C0C7FC2F2880A630>I<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C496C13803B
912 01F80003F000A26D130700005DA26D130F017E5CA2017F131F6D5CA2EC803F011F91C7FC
913 A26E5A010F137EA2ECE0FE01075BA214F101035BA3903801FBF0A314FF6D5BA36E5A6E5A
914 2B277EA630>I<3B3FFFC01FFFE0486D4813F0B515F8A26C16F06C496C13E0D807E0C7EA
915 3F00A26D5C0003157EA56D14FE00015DEC0F80EC1FC0EC3FE0A33A00FC7FF1F8A2147DA2
916 ECFDF9017C5C14F8A3017E13FBA290393FF07FE0A3ECE03FA2011F5C90390F800F802D27
917 7FA630>I<3A3FFF81FFFC4801C37FB580A26C5D6C01815BC648C66CC7FC137FEC80FE90
918 383F81FC90381FC3F8EB0FE3ECE7F06DB45A6D5B7F6D5B92C8FC147E147F5C497F819038
919 03F7E0EB07E790380FE3F0ECC1F890381F81FC90383F80FE90387F007E017E137F01FE6D
920 7E48486D7E267FFF80B5FCB500C1148014E3A214C16C0180140029277DA630>I<3B3FFF
921 C07FFF80486DB512C0B515E0A26C16C06C496C13803B01FC0003F000A2000014076D5C13
922 7E150F017F5C7F151FD91F805BA214C0010F49C7FCA214E00107137EA2EB03F0157C15FC
923 EB01F85DA2EB00F9ECFDF0147D147FA26E5AA36E5AA35DA2143F92C8FCA25C147EA2000F
924 13FE486C5AEA3FC1EBC3F81387EB8FF0EBFFE06C5B5C6C90C9FC6C5AEA01F02B3C7EA630
925 >I<001FB612FC4815FE5AA316FC90C7EA0FF8ED1FF0ED3FE0ED7FC0EDFF80003E491300
926 C7485A4A5A4A5A4A5A4A5A4A5A4A5A4990C7FC495A495A495A495A495A495A4948133E48
927 90C7127F485A485A485A485A485A48B7FCB8FCA46C15FE28277DA630>I<ED3FF0913803
928 FFF8140F5C147F16F09138FFF00092C7FC495A5CB3A21303495A133F383FFFF0B55A5C91
929 C8FC14C080003F7F38003FF813076D7E1301B3A2806D7E15F091387FFFF016F8141F8014
930 039138003FF025477BBE30>I<127CA212FEB3B3B3AD127CA207476CBE30>I<EA7FE0EAFF
931 FE6D7E8014F07EC66C7E13076D7E1301B3A2806D7E15E091387FFFE06E13F8801407141F
932 5C4A13E09138FFE00092C7FC495A5CB3A21303495A137F387FFFF0B5FC14C05C49C8FCEA
933 7FE025477BBE30>I E
934 %EndDVIPSBitmapFont
935 %DVIPSBitmapFont: Fj cmbx12 17.28 47
936 /Fj 47 122 df<EA01FCEA07FF4813804813C04813E04813F014F8B5FCA214FCA314FEA2
937 7EA27E7E6C13BE6C133EEA01FCC7FCA2147E147CA314FC14F8A2130114F01303A2EB07E0
938 A2EB0FC0A2EB1F80EB3F005B13FE485A485A485A485A5B6C5A6CC7FC173174942D>44
939 D<ED0FFF4AB512F8020F14FF023F15C091B712F049D9FC037F0107D9F00013FE4901C0EB
940 3FFF4990C7000F7F49486E7F017F8349486E7F4A80488448496E7FA248844A157F4884A3
941 481980A34819C04A81A34819E0A7B518F0B3A86C19E0A76C19C0A26E5DA26C1980A36C19
942 00A36C6D4B5AA26C60A26C6D4A5B6C606E5C6D6C4A5B6D6C4A5B6D6D495B6D6D4990C7FC
943 6D01F0EBFFFE6DD9FC035B010090B612F0023F15C0020F92C8FC020114F8DA001F138044
944 607ADD51>48 D<16F04B7E1507151F153FEC01FF1407147F010FB5FCB7FCA41487EBF007
945 C7FCB3B3B3B3007FB91280A6395E74DD51>I<913801FFF8021FEBFFC091B612F8010315
946 FF010F16C0013F8290267FFC0114F89027FFE0003F7F4890C7000F7F48486E7FD807F86E
947 148048486E14C048486E14E048486F13F001FC17F8486C816D17FC6E80B56C16FE8380A2
948 19FFA283A36C5BA26C5B6C90C8FCD807FC5DEA01F0CA14FEA34D13FCA219F85F19F04D13
949 E0A294B512C019804C14004C5B604C5B4C5B604C13804C90C7FC4C5A4C5A4B13F05F4B13
950 804B90C8FC4B5AED1FF84B5A4B5A4B48143F4A5B4A48C8FC4A5A4A48157E4A5A4A5AEC7F
951 8092C9FC02FE16FE495A495A4948ED01FCD90FC0150749B8FC5B5B90B9FC5A4818F85A5A
952 5A5A5ABAFCA219F0A4405E78DD51>I<92B5FC020F14F8023F14FF49B712C04916F0010F
953 D9C01F13FC90271FFC00077FD93FE001017F49486D8049C86C7F484883486C6F7F14C048
954 6D826E806E82487FA4805CA36C5E4A5E6C5B6C5B6C495E011FC85A90C95CA294B55A614C
955 91C7FC604C5B4C5B4C5B4C5B047F138092260FFFFEC8FC020FB512F817E094C9FC17F817
956 FF91C7003F13E0040713F8040113FE707F717F7113E085717FA2717F85A285831A80A31A
957 C0EA03FCEA0FFF487F487F487FA2B57EA31A80A34D14005C7E4A5E5F6C495E49C8485BD8
958 1FF85F000F5ED807FE92B55A6C6C6C4914806C01F0010791C7FC6C9026FF803F5B6D90B6
959 5A011F16F0010716C001014BC8FCD9001F14F0020149C9FC426079DD51>I<F01F804E7E
960 187F18FFA25F5F5F5FA25F5F5FA294B5FC5E5E5EA25E5EEE3FBFEE7F3FA216FEED01FCED
961 03F8ED07F0A2ED0FE0ED1FC0ED3F8016005D15FE4A5A4A5AA24A5A4A5A4A5A4A5AA24AC7
962 FC14FE495A5C1303495A495A495A5C133F49C8FC13FE485AA2485A485A485A5B121F485A
963 48C9FC12FEBCFCA6CA6CEBC000B1037FB8FCA6485E7CDD51>I<01C0EE01C0D801F8160F
964 01FF167F02F0EC07FFDAFF8090B5FC92B7128019006060606060606095C7FC17FC5F17E0
965 178004FCC8FC16E09026FC3FFCC9FC91CBFCADED3FFE0203B512F0020F14FE023F6E7E91
966 B712E001FDD9E00F7F9027FFFE00037F02F801007F02E06EB4FC02806E138091C8FC496F
967 13C04917E07113F0EA00F090C914F8A219FC83A219FEA419FFA3EA03F0EA0FFC487E487E
968 487FA2B57EA319FEA35C4D13FC6C90C8FC5B4917F8EA3FF001804B13F06D17E0001F5E6C
969 6C17C06D4B1380D807FC92B512006C6C4A5B6C6C6C01075B6C01E0011F5BD97FFE90B55A
970 6DB712C0010F93C7FC6D15FC010115F0D9003F1480020301F0C8FC406078DD51>I<EE1F
971 FF0303B512E0031F14F892B612FE0203814AD9FC037F021F9039C0007FC04A90C7EA1FE0
972 DAFFFC6E7E494914074949EC7FF8494914FF49495B4949497F4990C7FC495D5C13FF485B
973 A25A4A6E5B5A715B48496E5B725A4894C8FCA35AA35C48913801FFE0030F13FE033F6D7E
974 4B14E092B612F89126E1FE037FB53AE3F0007FFEDAE7E06D7EDAEFC06D7F4B6D7F02FFC7
975 6C7F4A82717F4A82A24A828385A24A1780A54A17C0A37EA77EA47E6E1780A27EA21A007E
976 4D5B7E6E5E7E6E5E6C4C5B6D7E013F4B5B6D6C4A5B6D01C0495B6D6D90B5C7FC6DD9FC07
977 13FC6D90B65A6D5E023F15C0020F92C8FC020114F8DA001F1380426079DD51>I<EA07E0
978 120F7F13FCEBFFFC91B912F8A45AA21AF01AE01AC01A801A00A248606161616101E0C912
979 3F01804C5A48CA485A4D90C7FC60007E4C5A17074D5A4D5A4D5A485F4D5A17FF4C90C8FC
980 C9485A5F4C5A160F4C5A5F163F4C5A16FF5F5D94C9FC5D5D5E150FA24B5AA2153FA24B5A
981 A215FFA34A5BA25CA35CA44A5BA45CA65CAD6E5BA26E5BDA03FECAFC6E5A456377E051>
982 I<92383FFF800203B512FC021FECFF80027F15E049B712F849D9F0077F010F90C76C7ED9
983 1FFCEC1FFFD93FF06E7F494802037F494882717F484980854890C9127FA24884183FA25A
984 80A380806E157F6E5E14FE6E7E6F4A5A6C14F003FC495B03FF495B6C1580DCE0075B6CDB
985 F80F90C7FC9338FE1FFE6C9238FF7FF84D5A6D16C06D5E6D4BC8FC6D6F7E6D16E0010182
986 6D16FC023F814A8149B87E010783498390263FFE3F8190267FFC0F819026FFF003814849
987 C6FC48496D804849131F4890C7000780160148486E1580003F163F49150F007F7014C049
988 1501717E8400FF835B8484A384A21A80A27F007F1900607F003F606D160F001F606D4C5A
989 6C6D153F6C6D4B5A6C01F04B5A6C01FC02035B6C01FF021F5B6D9027F001FFFEC7FC6D90
990 B65A010F16F001035E010093C8FC020F14F8DA007F90C9FC426079DD51>I<ED3FFF0207
991 B512F0023F14FC91B7FC010316C049D9F8077F49D9C00113F8013F496C6C7E4948C76C7E
992 49486E7E4884484980717F4849825A48707F855A5C855A8583A2B583A41A80A71AC0A35F
993 7EA46C5EA27E806C5EA26C5E6C7F6C5E6C6D147D6D6C14FD6D6CEB01F96D90388003F16D
994 9038F01FE16D90B500C11480010115816D6C1401021F13FC020113E091C8FC1A00A25FA2
995 61A3D9FF805E487F486D4A5B487FA2486D5E5F61615F614A4A90C7FC4D5A6C5B4A4A5A4A
996 01035BD803FCC7485B6C6C021F13C0D9FFC0017F5B6CD9F803B5C8FC6DB612FC6D5D010F
997 15E0010392C9FC010014F8020F1380426079DD51>I<F00FE04E7EA24E7EA34E7EA24E7E
998 A34D7FA24D80A24D80A34D80A24D80A34D80A2DD7FBF7FA2181F05FF8017FE04016D7FA2
999 4D7E04038217F804076D80A24D7E040F8217E0041F6D80A24D7F043F825F047F6E7FA294
1000 C77E4C825E03016F7FA24C800303845E03076F80A24C80030F845E031F6F80A24C81033F
1001 845E037F707F93B9FCA292BA7EA24A85A203FCC912070203865D020771805D86020F864B
1002 82021F865D87023F864B83027F8692CBFC874A864A840101875C496C728090381FFFC0B7
1003 00E092B812FEA66F647BE37A>65 D<4DB5ED03C0057F02F014070407B600FE140F047FDB
1004 FFC0131F4BB800F0133F030F05FC137F033F9127F8007FFE13FF92B6C73807FF814A02F0
1005 020113C3020702C09138007FE74A91C9001FB5FC023F01FC16074A01F08291B548824902
1006 80824991CB7E49498449498449498449865D49498490B5FC484A84A2484A84A24891CD12
1007 7FA25A4A1A3F5AA348491A1FA44899C7FCA25CA3B5FCB07EA380A27EA2F50FC0A26C7FA3
1008 7E6E1A1F6C1D80A26C801D3F6C6E1A00A26C6E616D1BFE6D7F6F4E5A7F6D6D4E5A6D6D4E
1009 5A6D6D4E5A6D6E171F6D02E04D5A6E6DEFFF806E01FC4C90C7FC020F01FFEE07FE6E02C0
1010 ED1FF8020102F8ED7FF06E02FF913803FFE0033F02F8013F1380030F91B648C8FC030117
1011 F86F6C16E004071680DC007F02F8C9FC050191CAFC626677E375>67
1012 D<BB12E0F2FF801BF01BFE757E1CF0D800010280C7000780DF007F13FE080F6D7E080180
1013 7480093F7F090F13FC757F757F877580767F8A88767F8A888AA2767FA28A881F80A37614
1014 C0A41FE0A5881FF0B05214E0A51FC0A4521480A31F006466A2525BA2525BA2525B666499
1015 B55A515C5191C7FC515B515B515B097F5B50B512C008075C083F91C8FC0707B512FCBD12
1016 F01CC051C9FC1BF81B8008E0CAFC6C627AE17C>I<BD12FCA488A2D8000102C0C71201F1
1017 000F1A01F2007F1B3F1B0F1B07757EA28787A288A3F43F80A31C1FA3197EA3F40FC0A499
1018 C7FC19FEA31801A218031807181F18FF93B6FCA6EEC000181F180718031801A21800A21D
1019 7E197EA21DFCA696C812011DF8A31C03A3F407F0A31C0FA21C1F1C3F1DE01C7F1CFF6363
1020 1B0F093F13C098B5FC1A0797B6FCBEFCA31D80A35F617AE06A>I<BD12E0A41CF0A2D800
1021 0102C0C71207F1003F1A0F1A031A001B7F1B3FF31FF81B0FA21B07A21B03A21B011CFCA3
1022 1B00A419FCA21C7EA41C00A21801A31803A21807180F183FEF01FF93B6FCA6EEC001EF00
1023 3F180F18071803A21801A31800A896C9FCB3A5B912F8A657617AE065>I<4DB5ED03C005
1024 7F02F014070407B600FE140F047FDBFFC0131F4BB800F0133F030F05FC137F033F9127F8
1025 007FFE13FF92B6C73807FF814A02F0020113C3020702C09138007FE74A91C9001FB5FC02
1026 3F01FC16074A01F08291B54882490280824991CB7E49498449498449498449865D494984
1027 90B5FC484A84A2484A84A24891CD127FA25A4A1A3F5AA348491A1FA44899C8FCA25CA3B5
1028 FCB07E071FB812F880A37EA296C70001ECC000A26C7FA37E807EA26C80A26C80A26C807F
1029 6D7F816D7F7F6D7F6D6D5F6D14C06D6E5E6E7F6E01FC5E020F01FF5E6E02C0ED7FEF0201
1030 02F8EDFFC76E02FF02071383033F02FC013F1301030F91B638FC007F03014D131F6F6C04
1031 E01307040704801301DC007F02F8CAFC050191CBFC6D6677E37F>I<B912E0A6C702E0C7
1032 FCB3B3B3B3AEB912E0A633627CE13C>73 D<B912F8A6D8000102C0CBFCB3B3B1F307E0A5
1033 F30FC0A61B1FA31B3F1C80A21B7FA21BFFA262A262625013006262624FB5FC1907191F4E
1034 B6FCBDFC63A553627AE161>76 D<94381FFFE00407B67E043F15F04BB712FE030FEEFFC0
1035 033FD9FC0014F092B500C0010F13FC020349C7000113FF4A01F86E6C7F021F496F13E04A
1036 01C0030F7F4A496F7F91B5C96C7F0103497013FF494970804B834949717F49874949717F
1037 49874B8390B586484A717FA24891CB6C7FA2481D804A84481DC0A348497214E0A3481DF0
1038 A34A85481DF8A5B51CFCB06C1DF8A36E96B5FCA36C1DF0A46C6D4E14E0A36C1DC06E606C
1039 1D80A26C6E4D1400A26C6E4D5BA26C6E4D5BA26D6D4D5B6D636D6D4D5B6F94B5FC6D636D
1040 6D4C5C6D6D4C91C7FC6D6E4B5B6D02E0031F5B023F6D4B13F06E01FC92B55A6E01FF0203
1041 5C020302C0010F91C8FC020002FC90B512FC033F90B712F0030F17C0030394C9FCDB007F
1042 15F804071580DC001F01E0CAFC666677E379>79 D<BA12F8F1FFE01AFEF2FFC01BF01BFE
1043 D800010280C76C7F070714C0070014F0747F081F7F747F747F7480A2748089A37480A389
1044 A865A3505CA265A2505C9AC9FC505B505B505B087F5B4FB55A0707148096B548CAFC93B8
1045 12F81BC050CBFC621AFF932680000314C0DE007F7F071F13F8737F737F737F7380888588
1046 8688A2747FA688A688A676140FF71F80A374801F3F86771400745E746E5BB96E6E5B746E
1047 485A75EBFE07091F90B55A090715E009015DCF003F91C7FC0A0013FC71647AE178>82
1048 D<DBFFFCEC01E0020FD9FFE01303027F02FC130749B7130F0107EEC01F011F16F049D9C0
1049 07EBF83F4948C7383FFE7FD9FFF8020FB5FC4801E014014849804849153F91C97E484882
1050 001F834982003F83845B007F187FA2193FA200FF181FA27F190FA27FA26D17078080806C
1051 01F893C7FC80ECFF8015F86CECFFC016FC6CEDFFE017FE6CEEFFE018F86C17FE6C717E6C
1052 846C846D17F86D836D836D8313036D18806D6C17C0020F17E01401DA000F16F015000407
1053 15F8EE007F1703050014FC183F84060713FE84A2007C8300FC83A2197FA3193F7EA31AFC
1054 7EA27F1AF86D177F7F1AF06D17FF6D18E06D5E01FF18C06E4B138002E04B130002F84B5A
1055 02FFED3FFC01CF01E0ECFFF8018301FF010F5B010191B65A6D6C5E48011F93C7FC480103
1056 15FC48D9003F14E048020149C8FC476677E35A>I<001FBEFCA64849C79126E0000F1480
1057 02E0180091C8171F498601F81A0349864986A2491B7FA2491B3F007F1DC090C9181FA400
1058 7E1C0FA600FE1DE0481C07A5CA95C7FCB3B3B3A3021FBAFCA663617AE070>I<B96C023F
1059 B612FEA6D8000102C0CA0007EBF000E2007FC7FCB3B3B3AA656D63A2821C018065701703
1060 80525A6E7F6E4F5A70171F6E626E6D4D5A6E6D177F525A6E6E030390C8FC033F01E04B5A
1061 6F6DED1FFC6F01FCED7FF80303D9FF80903803FFE06F02F8017F5B6F6C90B7C9FC041F5E
1062 040716F8040016C0050F4ACAFCDD003F13C06F647AE17C>I<B800FC047FB612E0A6D800
1063 070280CB6CEB80006D6EDE07FCC7FC666D6E611D0F6D6E611D1FA26E6D611D3F6E6D611D
1064 7F6E6D96C8FC65A26E6D4D5AA26E6E5F1C036E6E5F1C076E6E5F1C0FA26E6E5F1C1F6F6D
1065 5F1C3F6F6D5F1C7FA26F6D4CC9FCA26F6D5E1B016F6E5D1B03A26F6E4A5AA26F6E5D1B0F
1066 6F6E5D1B1F706D5D1B3FA2706D5D1B7F706D92CAFC63706D5C1A01A2706E485AA27002C0
1067 5B1A077002E05B1A0F7002F05B1A1FA27101F85B1A3F7101FC5B1A7F7101FE90CBFC62A2
1068 716D5AA2715CA2715CA3715CA2715CA2725BA2725BA37290CCFCA2725AA2725AA2725A73
1069 637DE17A>I<913803FFFE027FEBFFF00103B612FE010F6F7E4916E090273FFE001F7FD9
1070 7FE001077FD9FFF801017F486D6D7F717E486D6E7F85717FA2717FA36C496E7FA26C5B6D
1071 5AEB1FC090C9FCA74BB6FC157F0207B7FC147F49B61207010F14C0013FEBFE004913F048
1072 B512C04891C7FC485B4813F85A5C485B5A5CA2B55AA45FA25F806C5E806C047D7F6EEB01
1073 F96C6DD903F1EBFF806C01FED90FE114FF6C9027FFC07FC01580000191B5487E6C6C4B7E
1074 011F02FC130F010302F001011400D9001F90CBFC49437CC14E>97
1075 D<903807FF80B6FCA6C6FC7F7FB3A8EFFFF8040FEBFF80047F14F00381B612FC038715FF
1076 038F010014C0DBBFF0011F7FDBFFC001077F93C76C7F4B02007F03F8824B6F7E4B6F1380
1077 4B17C0851BE0A27313F0A21BF8A37313FCA41BFEAE1BFCA44F13F8A31BF0A24F13E0A24F
1078 13C06F17804F1300816F4B5A6F4A5B4AB402075B4A6C6C495B9126F83FE0013F13C09127
1079 F00FFC03B55A4A6CB648C7FCDAC00115F84A6C15E091C7001F91C8FC90C8000313E04F65
1080 7BE35A>I<92380FFFF04AB67E020F15F0023F15FC91B77E01039039FE001FFF4901F801
1081 0113804901E0010713C04901804913E0017F90C7FC49484A13F0A2485B485B5A5C5A7113
1082 E0485B7113C048701380943800FE0095C7FC485BA4B5FCAE7EA280A27EA2806C18FCA26C
1083 6D150119F87E6C6D15036EED07F06C18E06C6D150F6D6DEC1FC06D01E0EC7F806D6DECFF
1084 00010701FCEB03FE6D9039FFC03FFC010091B512F0023F5D020F1580020102FCC7FCDA00
1085 0F13C03E437BC148>I<F17FF8050FB5FCA6EF000F8484B3A892380FFF804AB512F8020F
1086 14FE023FECFF8391B712E301039138807FF3499039F8000FFB011F01E00103B5FC494913
1087 004990C87E49488148498148834A815A485BA2485BA25AA3485BA4B5FCAE7EA46C7FA37E
1088 A26C7FA26C5F806C5F6C6D5D6C6D5D017F93B5FC6D6C6C0103806D6D49806D01F0D91FF7
1089 EBFFFE6D9039FE01FFE7010190B612876D6CECFE07021F14F8020314E09127003FFE00EC
1090 C0004F657BE35A>I<92380FFFC04AB512FC020FECFF80023F15E091B712F80103D9FE03
1091 7F499039F0007FFF011F01C0011F7F49496D7F4990C76C7F49486E7F48498048844A8048
1092 84485B727E5A5C48717EA35A5C721380A2B5FCA391B9FCA41A0002C0CBFCA67EA380A27E
1093 A27E6E160FF11F806C183F6C7FF17F006C7F6C6D16FE6C17016D6C4B5A6D6D4A5A6D01E0
1094 4A5A6D6DEC3FE0010301FC49B45A6D9026FFC01F90C7FC6D6C90B55A021F15F8020715E0
1095 020092C8FC030713F041437CC14A>I<EE3FFC0307B51280033F14C04AB612F0020715F8
1096 4A9038F03FFC4AEB807F913A7FFE00FFFE4A5A4B4813FF4913F05B4913E0A24913C0A270
1097 13FE4949EB7FFCEF3FF8EF1FF0EF07C094C7FCB0B812C0A6D8001F01C0C8FCB3B3B0007F
1098 B612FCA638657CE431>I<F107F8DB7FFEEC3FFE020FB5D8F001B5FC027FDAFE03148049
1099 B7128F49DCDFFD13C0010FD9F00FEBFFC149D9800114014990C7EBFC0349486E6C7E4948
1100 EC3FFF48496E018113800780130048F0C03E97C7FC48496E7FA34884A96C60A36C6D4A5B
1101 A26C60A26C6D4A90C8FC6D6C4A5A6D6C4A5A6D6D485BDBF00F5B4990B612C060D97C7F4A
1102 C9FCD9FC0F14F09126007FFECAFC92CCFC1201A47FA27F8014F091B77E18FE6CEFFFC019
1103 F06D17FC19FF6D846D846D846D84013F8490BAFC0003854801E0C712014890C9000F7F48
1104 4816014848EE007F4848717E8512FF5B85A56D5F007F616D173F003F616D177F6C6C4D5A
1105 6C01C003035B6C6D4B5B6C01F8031F5BC601FF92B5C7FC6D01F8011F5B011F90B712F801
1106 0717E0010094C8FC020F15F0DA003F01FCC9FC4A607CC151>I<903807FF80B6FCA6C6FC
1107 7F7FB3A8EF1FFF94B512F0040714FC041F14FF4C8193267FE07F7F922781FE001F7FDB83
1108 F86D7FDB87F07FDB8FC0814C7F039FC78015BE03BC8003FC825DA25DA25DA45DB3B2B7D8
1109 F007B71280A651647BE35A>I<EB0FE0EB3FF8497E48B5FCA24880A24880A76C5CA26C91
1110 C7FCA238007FFC6D5AEB0FE090C9FCAF903807FF80007FB5FCA6C6FC7F7FB3B3AEB712C0
1111 A622657BE42C>I<903807FF80B6FCA6C6FC7F7FB3B3B3B3ADB712E0A623647BE32C>108
1112 D<902607FF80D91FFFEEFFF8B691B500F00207EBFF80040702FC023F14E0041F02FF91B6
1113 12F84C6F488193267FE07F6D4801037F922781FE001F9027E00FF0007FC6DA83F86D9026
1114 F01FC06D7F6DD987F06D4A487F6DD98FC0DBF87EC7804C6D027C80039FC76E488203BEEE
1115 FDF003BC6E4A8003FC04FF834B5FA24B5FA24B94C8FCA44B5EB3B2B7D8F007B7D8803FB6
1116 12FCA67E417BC087>I<902607FF80EB1FFFB691B512F0040714FC041F14FF4C8193267F
1117 E07F7F922781FE001F7FC6DA83F86D7F6DD987F07F6DD98FC0814C7F039FC78015BE03BC
1118 8003FC825DA25DA25DA45DB3B2B7D8F007B71280A651417BC05A>I<923807FFE092B6FC
1119 020715E0021F15F8027F15FE494848C66C6C7E010701F0010F13E04901C001037F49496D
1120 7F4990C87F49486F7E49486F7E48496F13804819C04A814819E048496F13F0A24819F8A3
1121 48496F13FCA34819FEA4B518FFAD6C19FEA46C6D4B13FCA36C19F8A26C6D4B13F0A26C19
1122 E06C6D4B13C0A26C6D4B13806C6D4B13006D6C4B5A6D6D495B6D6D495B010701F0010F13
1123 E06D01FE017F5B010090B7C7FC023F15FC020715E0020092C8FC030713E048437CC151>
1124 I<902607FF80EBFFF8B6010FEBFF80047F14F00381B612FC038715FF038F010114C09227
1125 BFF0003F7FC6DAFFC0010F7F6D91C76C7F6D496E7F03F86E7F4B6E7F4B17804B6F13C0A2
1126 7313E0A27313F0A21BF885A21BFCA3851BFEAE4F13FCA41BF861A21BF0611BE0611BC06F
1127 92B512801B006F5C6F4A5B6F4A5B03FF4A5B70495B04E0017F13C09226CFFC03B55A03C7
1128 B648C7FC03C115F803C015E0041F91C8FC040313E093CBFCB3A3B712F0A64F5D7BC05A>
1129 I<D90FFFEB0FFCB690383FFF8093B512E04B14F04B14F8923907FC7FFC92390FE0FFFEC6
1130 EC1F806DD93F0113FF6D133E157E157C15F8A215F07013FEA24BEB7FFCEF3FF8EF0FE04B
1131 90C7FCA55DB3B0B712F8A638417BC042>114 D<913A3FFF8007800107B5EAF81F011FEC
1132 FE7F017F91B5FC48B8FC48EBE0014890C7121FD80FFC1407D81FF0801600485A007F167F
1133 49153FA212FF171FA27F7F7F6D92C7FC13FF14E014FF6C14F8EDFFC06C15FC16FF6C16C0
1134 6C16F06C826C826C826C82013F1680010F16C01303D9007F15E0020315F0EC001F150004
1135 1F13F81607007C150100FC81177F6C163FA2171F7EA26D16F0A27F173F6D16E06D157F6D
1136 16C001FEEDFF806D0203130002C0EB0FFE02FCEB7FFC01DFB65A010F5DD8FE0315C026F8
1137 007F49C7FC48010F13E035437BC140>I<EC07E0A6140FA5141FA3143FA2147FA214FF5B
1138 A25B5B5B5B137F48B5FC000F91B512FEB8FCA5D8001F01E0C8FCB3AFEF0FC0AC171F6D6D
1139 1480A2173F6D16006F5B6D6D137E6D6D5B6DEBFF836EEBFFF86E5C020F14C002035C9126
1140 003FFCC7FC325C7DDA3F>I<902607FFC0ED3FFEB60207B5FCA6C6EE00076D826D82B3B3
1141 A260A360A2607F60183E6D6D147E4E7F6D6D4948806D6DD907F0ECFF806D01FFEB3FE06D
1142 91B55A6E1500021F5C020314F8DA003F018002F0C7FC51427BC05A>I<B700C00103B512
1143 FCA6C66C01C0C8381FFE006D6DED07F0A26D6D5E190F6D6D5E191F6D606F153F6D95C7FC
1144 6F5DA26D6D157E19FE6D6E5C18016E5E7013036E5E701307A26E6D5C180F6E6D5C181F6E
1145 6D5C183F6E93C8FC705BA26E6D13FEA26E6E5A17816FEBC1F817C36F5C17E76F5C17FFA2
1146 6F5CA26F5CA26F91C9FCA26F5BA36F5BA2705AA2705AA2705AA2705A4E417DBF55>I<B7
1147 0081B600FC0103B512FCA6C66C0180C701FCC8381FFE006F6FED03F86D047F5F856F6E16
1148 076D646F70140F6D705F866F6E161F6D646F4A6D143F6D99C7FC4E7F6F616D1B7E6F4A6D
1149 14FE6D6395B57E7001FC15016E62DCC0016E13036EDBF87F5D05038004E0496C14076E62
1150 DCF007ED800F6E4B6C5D050F15C004F8496C141F6E62DCFC1FEDE03F6E4B6C92C8FC053F
1151 15F004FE496C5C6E197E7048EDF8FE6E027E6D5C05FE15FC4D6D13FD6F601BFF6F496E5B
1152 A24D806F60A26F496E5BA24D806F60A26F496E90C9FCA294C87E6F5FA26F486F5A047C6F
1153 5A6E417DBF75>I<007FB600C0017FB512F8A6D8001F01F8C70007EBF0006D040190C7FC
1154 6D6D5D6D6D4A5A6D6D4A5A70495A6D4C5A6E7F6E6D495A6E6D495A7049C8FC6E4A5A6E6D
1155 485A6E6D485A6E13FFEF8FF06EEC9FE06FEBFFC06F5C6F91C9FC5F6F5B816F7F6F7F8481
1156 707F8493B57E4B805D4B80DB0FF37FDB1FE17F04C080153F4B486C7F4B486C7F4A486D7F
1157 4A486D7F4A5A4B6D7F020F6E7F4A486D7F4A486D804A5A4AC86C7F49486F7F4A6F7F0107
1158 707FEB3FFFB600F049B7FCA650407EBF55>I<B700C00103B512FCA6D8003F01C0C8381F
1159 FE006FED07F0A26D6D5E190F6D6D5E191F6D6D5E193F6D95C7FC6F5D6D177E6F15FEA26D
1160 6E495AA26E6D5C18036E6D5C18076E5E70130F6E5E70131FA26E6D495AA26E6D91C8FC60
1161 6E6D137E18FE6E5D17816F5C17C3A26FEBE7F0A26FEBF7E017FF6F5CA26F5CA26F91C9FC
1162 A36F5BA26F5BA2705AA2705AA2705AA35FA25F163F94CAFC5E167E16FED807E05CD81FF8
1163 1301487E486C495AA2B5495AA24B5A5E151F4B5A6C4849CBFC15FEEBFC01393FF807FC39
1164 1FF03FF06CB55A6C5C6C91CCFCC613FCEB1FE04E5D7DBF55>I E
1165 %EndDVIPSBitmapFont
1166 %DVIPSBitmapFont: Fk cmsy10 10.95 2
1167 /Fk 2 16 df<EE7FFE0307B512E0033F14FC92B7FC0203D9C00313C0DA0FFCC7EA3FF0DA
1168 3FE0EC07FCDA7F80EC01FED901FEC9EA7F80D903F8EE1FC0D907E0EE07E04948707E4948
1169 707E49CB7E017E187E498449844848F00F8000031AC04918074848F003E0A24848F001F0
1170 A248CD12F8A2001E1A78003E1A7CA2003C1A3C007C1A3EA200781A1EA300F81A1FA2481A
1171 0FAB6C1A1FA200781A1EA3007C1A3EA2003C1A3C003E1A7CA2001E1A78001F1AF8A26C6C
1172 F001F0A26C6CF003E0A26C6CF007C06D180F00011A806C6CF01F006D60017E187E6D606D
1173 6C4C5A6D6C4C5A6D6C4C5AD903F8EE1FC0D901FEEE7F809026007F80DA01FEC7FCDA3FE0
1174 EC07FCDA0FFCEC3FF0913B03FFC003FFC0020090B6C8FC033F14FC030714E09226007FFE
1175 C9FC50557BC05B>13 D<EB0FFCEB3FFF90B512C0000314F04880488048804880A2481580
1176 A3B712C0AA6C1580A36C1500A26C5C6C5C6C5C6C5CC614C0013F90C7FCEB0FFC22227BA7
1177 2D>15 D E
1178 %EndDVIPSBitmapFont
1179 %DVIPSBitmapFont: Fl cmbx12 14.4 62
1180 /Fl 62 123 df<EEFFFC031FEBFF804AB612E0020781021F9038C00FF8913A7FFE0003FC
1181 DAFFF0EB00FE4949EB03FF4901805B4990C7487F49485CA2495A4D7F013F6F5B5CA37190
1182 C7FC715AEF01F894C9FCA90403B512C0BAFCA526003FFCC7120783B3B3A6003FB5D8FC03
1183 B612C0A542547DD34B>12 D<EA07F0EA1FF8487E487E7FB5FC1480A314C0A37EA27E7EEA
1184 07F3EA0003A213071480A3130F1400A25B131E133E133C137C5BA2485A485A485A485A48
1185 C7FC121E120C1228769025>44 D<B712F0AB240B7F9F2D>I<EA07F0487E487E487E487E
1186 B51280A76C13006C5A6C5A6C5A6C5A1111769025>I<913803FFC0023F13FC91B6FC0103
1187 15C0010F018113F0903A1FFC003FF849486D7E49486D7E49486D7E48496D138048496D13
1188 C0A24817E04890C813F0A34817F8A24817FC49157FA3007F17FEA600FF17FFB3A5007F17
1189 FEA6003F17FCA26D15FFA26C17F8A36C17F0A26C6D4913E0A26C6D4913C06C17806E5B6C
1190 6D4913006D6C495AD91FFCEB3FF8903A0FFF81FFF06D90B55A01011580D9003F01FCC7FC
1191 020313C0384F7BCD43>48 D<157815FC14031407141F14FF130F0007B5FCB6FCA2147F13
1192 F0EAF800C7FCB3B3B3A6007FB712FEA52F4E76CD43>I<EC3FFE0103B512E0010F14FC01
1193 3F14FF90B712C048D9C07F7F2703FE000F13F8D807F801037FD80FE06D7F48486D7F4848
1194 8001F01680486C6E13C07F486C6E13E07FA27013F0A56C5AA26C5AEA0FF0EA03C0C914E0
1195 5EA218C05E1880A24C13005F4C5A4B5B5F4B5B5F4B5B4B90C7FC4B5A5E4B5AED7FE04B5A
1196 4A5B4A48C8FC4A5A5D4A48EB01F04A5AEC3F804AC7FC02FEEC03E0495A495A495A495AD9
1197 1F80140749C8FC013E150F017FB7FC90B812C05A5A5A5A5A5A5AB9FC1880A4344E79CD43
1198 >I<91380FFFC091B512FC0107ECFF80011F15E090263FF8077F9026FF800113FC4848C7
1199 6C7ED803F86E7E491680D807FC8048B416C080486D15E0A4805CA36C17C06C5B6C90C75A
1200 D801FC1680C9FC4C13005FA24C5A4B5B4B5B4B13C04B5BDBFFFEC7FC91B512F816E016FC
1201 EEFF80DA000713E0030113F89238007FFE707E7013807013C018E07013F0A218F8A27013
1202 FCA218FEA2EA03E0EA0FF8487E487E487EB57EA318FCA25E18F891C7FC6C17F0495C6C48
1203 16E001F04A13C06C484A1380D80FF84A13006CB44A5A6CD9F0075BC690B612F06D5D011F
1204 1580010302FCC7FCD9001F1380374F7ACD43>I<177C17FEA2160116031607160FA2161F
1205 163F167FA216FF5D5DA25D5DED1FBFED3F3F153E157C15FCEC01F815F0EC03E01407EC0F
1206 C01580EC1F005C147E147C5C1301495A495A5C495A131F49C7FC133E5B13FC485A5B485A
1207 1207485A485A90C8FC123E127E5ABA12C0A5C96C48C7FCAF020FB712C0A53A4F7CCE43>
1208 I<D80380150ED807E0157E01FEEC03FED9FFF0137F91B65A5F5F5F5F5F94C7FC5E5E16F0
1209 16C093C8FC15F801E190C9FC01E0CAFCABEC0FFF027F13F001E3B512FE01E76E7E9026FF
1210 F8077FDAC0017F49C713F8496E7E49143F4981496E7E6C481680C9FC18C08218E0A418F0
1211 A3EA0FE0487E487E487E487EA418E0A35B6C484A13C05B491680003EC85A003F17006C6C
1212 4A5A6D5D6C6C4A5AD807F8495BD803FE01075B2701FFC03F5B6C90B65A013F4AC7FC6D14
1213 F8010314C09026007FF8C8FC344F79CD43>I<ED0FFF92B512E0020780021F14FC91397F
1214 FE03FE903A01FFF0007F4901C0EB3F804990C7121F4948EC7FC0494814FF49484913E049
1215 485B01FF5C485BA2485B5AA2486F13C04A6D1380486F1300177E94C7FC5AA291CAFC5AA2
1216 1508913801FFF8020713FFB54814C04A14F04AC66C7E023C6D7E4A6D7E4A6D7E7013804A
1217 15C0A24A15E07013F05C18F8A491C714FCA37EA67EA46C17F880A27E18F06C5D18E06C6D
1218 15C07E6E4913806C6D15006D6C495A6D6CEB7FFC6DB448485A6D90B55A010315C0010092
1219 C7FC023F13FC020713C0364F7ACD43>I<121F7F7FEBFF8091B81280A45A1900606060A2
1220 606060485F0180C86CC7FC007EC95A4C5A007C4B5A5F4C5A160F4C5A484B5A4C5A94C8FC
1221 16FEC812014B5A5E4B5A150F4B5AA24B5AA24B5A15FFA24A90C9FCA25C5D1407A2140FA2
1222 5D141FA2143FA4147F5DA314FFA55BAC6D5BA2EC3FC06E5A395279D043>I<913807FFC0
1223 027F13FC0103B67E010F15E090261FFC0113F8903A3FE0003FFCD97F80EB0FFE49C76C7E
1224 48488048486E1380000717C04980120F18E0177FA2121F7FA27F7F6E14FF02E015C014F8
1225 02FE4913806C7FDBC00313009238F007FE6C02F85B9238FE1FF86C9138FFBFF06CEDFFE0
1226 17806C4BC7FC6D806D81010F15E06D81010115FC010781011F81491680EBFFE748018115
1227 C048D9007F14E04848011F14F048487F48481303030014F8484880161F4848020713FC16
1228 01824848157F173FA2171FA2170FA218F8A27F007F17F06D151FA26C6CED3FE0001F17C0
1229 6D157F6C6CEDFF806C6C6C010313006C01E0EB0FFE6C01FCEBFFFC6C6CB612F06D5D010F
1230 1580010102FCC7FCD9000F13C0364F7ACD43>I<91380FFF8091B512F8010314FE010F6E
1231 7E4901037F90267FF8007F4948EB3FF048496D7E484980486F7E484980824817805A91C7
1232 14C05A7013E0A218F0B5FCA318F8A618FCA46C5DA37EA25E6C7F6C5DA26C5D6C7F6C6D13
1233 7B6C6D13F390387FF803011FB512E36D14C30103028313F89039007FFE03EC00401500A2
1234 18F05EA3D801F816E0487E486C16C0487E486D491380A218005E5F4C5A91C7FC6C484A5A
1235 494A5A49495B6C48495BD803FC010F5B9027FF807FFEC7FC6C90B55A6C6C14F06D14C001
1236 0F49C8FC010013F0364F7ACD43>I<171F4D7E4D7EA24D7EA34C7FA24C7FA34C7FA34C7F
1237 A24C7FA34C8083047F80167E8304FE804C7E03018116F8830303814C7E03078116E08303
1238 0F814C7E031F81168083033F8293C77E4B82157E8403FE824B800201835D840203834B80
1239 0207835D844AB87EA24A83A3DA3F80C88092C97E4A84A2027E8202FE844A82010185A24A
1240 820103854A82010785A24A82010F855C011F717FEBFFFCB600F8020FB712E0A55B547BD3
1241 66>65 D<BA12C019FEF1FFC01AF01AFCD8000701F0C7000313FFDE007F7F737F070F7F73
1242 7F878587858785A287A84F5BA263616361634F5B4F5B077F90C7FC4E485A060713F892B8
1243 12E097C8FC861AF003F0C7000313FE9539003FFF80070F13E0737F07017F87737F747E1C
1244 807413C0A27413E0A31CF0A386A362A31CE0A2621CC0A250138097B5FC1C004F5B19074F
1245 5B073F13F04EB55ABC128098C7FC1AF81AC007F8C8FC54527CD160>I<932601FFFCEC01
1246 C0047FD9FFC013030307B600F81307033F03FE131F92B8EA803F0203DAE003EBC07F020F
1247 01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC4901F882494982494982
1248 4949824949824990CA7E494883A2484983485B1B7F485B481A3FA24849181FA3485B1B0F
1249 A25AA298C7FC5CA2B5FCAE7EA280A2F307C07EA36C7FA21B0F6C6D1980A26C1A1F6C7F1C
1250 006C6D606C6D187EA26D6C606D6D4C5A6D6D16036D6D4C5A6D6D4C5A6D01FC4C5A6D6DEE
1251 7F806D6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1FF80203903AFFE001FFF0020091B612
1252 C0033F93C8FC030715FCDB007F14E0040101FCC9FC525479D261>I<BA7E19FCF1FF801A
1253 F01AFCD8000701F0C7000F13FF060014C0071F7F070713F807017F737F747E747F747F86
1254 747F747F8886888688A2757EA31D8087A21DC0A51DE0A387A963A31DC0A51D80A2631D00
1255 A3515AA2646264505B6264505B505B5090C7FCF2FFFE4F5B07075B071F5B96B512C0060F
1256 91C8FCBB5A1AF01AC007FCC9FC19805B527CD167>I<BC1280A5D8000701F8C7000114C0
1257 F0001F19071901851A7F1A3F1A1FA2F20FE0A21A07A31A03A318F81BF01A01A497C7FC17
1258 01A317031707170F177F92B6FCA59238F8007F170F170717031701A317001B3EA31B7CA3
1259 95C8FCA21BFCA21BF8A21A01A31A031BF01A071A0FA21A1F1A3FF27FE0F101FF1907191F
1260 0603B5FCBCFCA21BC0A34F517CD058>I<BB12FEA5D8000701F8C700077FF0007F191F19
1261 0785858586861B80A21A1FA31A0FA41BC006F81307A497C7FCA31701A317031707170F17
1262 7F92B6FCA59238F8007F170F170717031701A31700A795C9FCB3B812F8A54A517CD055>
1263 I<932601FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA803F0203
1264 DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC4901
1265 F8824949824949824949824949824990CA7E494883A2484983485B1B7F485B481A3FA248
1266 49181FA3485B1B0FA25AA298C8FC5CA2B5FCAE6C057FB712E0A280A36C94C7003FEBC000
1267 A36C7FA36C7FA27E6C7FA26C7F6C7FA26D7E6D7F6D7F6D6D5E6D7F6D01FC93B5FC6D13FF
1268 6D6C6D5C6E01F0EC07FB020F01FEEC1FF10203903AFFF001FFE0020091B6EAC07F033FEE
1269 001F030703FC1307DB007F02E01301040149CAFC5B5479D26A>I<B8D8C003B8FCA5D800
1270 0701F8C9001FEBE000B3AE92BAFCA503F8C9121FB3B1B8D8C003B8FCA560527CD169>I<
1271 B812C0A5D8000701F8C7FCB3B3B3B2B812C0A52A527CD132>I<027FB71280A591C76C90
1272 C7FCB3B3B3EA07F0EA1FFC487E487EA2B57EA44C5AA34A485B7E49495BD83FF8495BD81F
1273 E05DD80FFC011F5B2707FF807F90C8FC000190B512FC6C6C14F0011F14C0010101F8C9FC
1274 39537DD145>I<B800C091B612F8A5D8000701F8C90003EBF8009738007F8051C7FC505A
1275 F203F8F20FF0505A505A505A50C8FCF101FCF107F84F5A4F5A4F5A4F5A07FEC9FCF003FC
1276 4E5A4E5A4E5A4E5A4E5ADD01FECAFC4D5A4D5A4D5A4D7E173F4D7E4C487E4C7F5E4C804C
1277 804C80EEFF7F9226F9FE3F7FDBFBFC809226FFF81F7F4C7EDCC0077F0480804C7E4B6D80
1278 4B6D804B8284727F727F8684727F727F8784728087737F85737F87737F85737F88857380
1279 747F888697B512FCB800C0013FECFFFEA55F527CD169>I<B812F8A5D8000701F8CAFCB3
1280 B3A91A7CA41AFC1AF8A51901A31903A219071AF0190FA2191F193F197F19FF180360183F
1281 4DB5FCBB12E0A546527CD151>I<B600FC073FB512FE6F61A26F96B6FCA2D80007F5C000
1282 70EF01EFA202EF6DEF03CFA202E76DEF078FA202E36DEF0F0FA202E16D171EA302E06D17
1283 3CA26F6C1778A26F6C17F0A26F6DED01E0A26F6DED03C0A36F6DED0780A26F6DED0F00A2
1284 6F6D151EA26F6D5DA3706C5DA2706C5DA2706D495AA2706D495AA2706D495AA3706D49C7
1285 FCA2706D131EA2706D5BA2716C5BA3716C5BA271EB81E0A271EBC3C0A271EBE780A27101
1286 FFC8FCA3715BA2715BA2725AA2725AA2D93FFC6F5AB74DB712FEA2725AA2725A77527CD1
1287 80>I<B600FC93B7FC8181A282D800076E9239003FFC0070EE07E08282A28202EF7F02E7
1288 7F02E380A202E18002E0806F7F6F7F6F7FA26F7F6F7F6F806F80A26F80707F707F707F70
1289 7FA2707F7080708070808583717F717F717F717FA27114807114C07114E07213F07213F8
1290 A27213FC7213FE7213FF721487A27214C77214E77313F77313FF85A285858585A2858686
1291 8686A286868686A2D93FFC187FB7173F1B1F1B0F1B07755A60527CD169>I<93380FFFC0
1292 0303B6FC031F15E092B712FC0203D9FC0013FF020F01C0010F13C0023F90C7000313F0DA
1293 7FFC02007F494848ED7FFE4901E0ED1FFF49496F7F49496F7F4990C96C7F49854948707F
1294 4948707FA24849717E48864A83481B804A83481BC0A2481BE04A83A2481BF0A348497113
1295 F8A5B51AFCAF6C1BF86E5FA46C1BF0A26E5F6C1BE0A36C6D4D13C0A26C6D4D1380A26C1B
1296 006C6D4D5A6E5E6C626D6C4C5B6D6D4B5B6D6D4B5B6D6D4B5B6D6D4B5B6D6D4B90C7FC6D
1297 6D4B5A6D01FF02035B023F01E0011F13F0020F01FC90B512C0020390B7C8FC020016FC03
1298 1F15E0030392C9FCDB001F13E0565479D265>I<BAFC19F819FF1AE086D8000701F0C700
1299 1F13FC060113FF726C13807313C0070F13E01BF0857313F81BFCA27313FEA41BFFA81BFE
1300 A31BFC61A21BF84F13F04F13E0614F13C04F13004E485A061F5B92B812F01AC04FC7FC19
1301 E003F8CBFCB3AEB812C0A550527CD15C>I<B912F0F0FF8019F819FF1AC0D8000701F0C7
1302 14F0060F7F060113FE727F737F737F85737F87A2737FA387A863A2616363A24F5B4F5B4F
1303 90C8FC4F5A06035B060F13F095B512C092B8C9FC19F819E019F89226F0000313FE943900
1304 7FFF80727F727F727F727F727F8684A28684A787A71D1C75133EA38575137E73157C7513
1305 FC731401B86C6D9038F803F807039038FE07F07390B512E0736C14C0080F1400CEEA7FFC
1306 5F537CD164>82 D<91260FFF80130791B500F85B010702FF5B011FEDC03F49EDF07F9026
1307 FFFC006D5A4801E0EB0FFD4801800101B5FC4848C87E48488149150F001F824981123F49
1308 81007F82A28412FF84A27FA26D82A27F7F6D93C7FC14C06C13F014FF15F86CECFF8016FC
1309 6CEDFFC017F06C16FC6C16FF6C17C06C836C836D826D82010F821303010082021F168014
1310 00030F15C0ED007F040714E01600173F050F13F08383A200788200F882A3187FA27EA219
1311 E07EA26CEFFFC0A27F6D4B13806D17006D5D01FC4B5A01FF4B5A02C04A5A02F8EC7FF090
1312 3B1FFFC003FFE0486C90B65AD8FC0393C7FC48C66C14FC48010F14F048D9007F90C8FC3C
1313 5479D24B>I<003FBC1280A59126C0003F9038C0007F49C71607D87FF8060113C001E084
1314 49197F49193F90C8171FA2007E1A0FA3007C1A07A500FC1BE0481A03A6C994C7FCB3B3AC
1315 91B912F0A553517BD05E>I<B800C00103B612FCA5D8000701F8CAEBF000F31F80B3B3B1
1316 1B3FA26D97C7FC81637F1B7E6D6D17FE505A6E7E505A6E6D15076E4D5A6E6D4B5A6E6D4B
1317 5A6E01F84B5A6E6DDA03FFC8FC6E6CB46CEB0FFE6F9039F001FFF8030F90B65A030316C0
1318 DB007F92C9FC040F14F8DC007F13805E537CD167>I<B700FE031FB512FEA5D8001F01F0
1319 CA383FFE00F307F06D626F170F6D62811B1F6D6D601B3F6D97C7FC6F5F6D197E821BFE6E
1320 6D5E1A016E6D5E1A036E60701507A26E6D5E1A0F6E6D5E1A1F6E6070153FA26E6D93C8FC
1321 626E6E147E1AFE6F5E711301A26F6D5C19036F6D5C19076F5E71130FA26F6D5C191F6F6D
1322 5C193F6F93C9FC715BA26FEC807E19FE706D5A18C1705C18E3705C18F318F770EBFFE0A2
1323 705CA2705CA37091CAFCA2705BA2715AA3715AA2715AA2715A715A5F537DD166>I<B700
1324 FC017FB600FE91B612F0A5D8003F01C0C8001F01E0C9EBF8006F71EE0FC06D7161876F1C
1325 1F6D7196C7FC6F8373606D1E3E6F836D7160876F1CFC6D666F4B801F016D66704A806E52
1326 5A88704A17076E059F5F70021F80080F160F6E6570023F806EDC3E074CC8FC8870027E5F
1327 6EDC7C03163E7002FC804F6C167E6E1C7C700101814F6C16FC6E745B70010317016E4C6D
1328 5D060716C00580496D14036F63DDC00F16E04F6D14076F07F05BDDE01F170F6F92C76C5D
1329 1DF8DDF03E6E141F6F98C9FCDDF87E16FC067C6E5C6FF1FE3EDDFCFC177E6F4A6E147C1D
1330 FFDDFFF06E14FC6F62A24E816F62A270496F5BA24E817061A295C97E7061A270487090CA
1331 FCA37048705AA24D1601040360A27048705A84537DD18B>I<003FB7D88003B7FCA5D800
1332 0749C8000701F8C7FC6D6D9238007F806D6E93C8FC7015FE6D17016E6D5D704A5A6E1607
1333 6E6D4A5A6E6D5D4F5A6E6D143F6E6D4A5A7191C9FC6E16FE6EECC00171485A6F5D6F6D48
1334 5A6FEBF80F71485A6F5D6F6D485AEFFF7F6F4ACAFC6F5C6F5CA2705B705B8482707F707F
1335 A2707F7080855E4C80855E4C80DC3FCF7F058F7FEE7F074C6C7FDB01FE814C7E4B486C80
1336 03076E7F4B48814C7F4B486D7F033F824C7F4BC76C7F4B6E7F4A5A4B6E804A486E800207
1337 844A48814B6F7F4A4883023F824A486F7F92C96C7F02FE840101830103718090263FFFC0
1338 84B76C0103B712F8A55D527CD166>I<EC7FFF0107B512F0013F14FE90B77E48D9E00F7F
1339 2703FE000113F0486C6D7F6EEB3FFC48826E131F83707FA36C496D7FA26C90C7FC6C5AC9
1340 FCA6037FB5FC020FB6FC91B7FC01071487013FEBF0074913803901FFFC004813F0485B48
1341 5B485B4890C7FC5A5BA2485AA45EA26D5C007F151D163D6C6C02797F6C6D01F113F86C90
1342 26C003E1EBFFE06C9026F81FC014F06C90B5487EC6ED001F011F01FC010713E0010101E0
1343 90C8FC3C387CB641>97 D<EB3FF0B5FCA51203C6FCB3A4923801FFE0030F13FE033FEBFF
1344 C092B612F002F301017F913AF7F8003FFEDAFFE0EB0FFF03806D7F92C76C7F4A6E7F4A82
1345 4A6E7FA2727EA285A28584A31A80AC1A00A44E5AA36118FF616E4A5BA26E4A5B6E4A5B6F
1346 495BDACFC04990C7FCDA87F0EB7FFC913A03FE03FFF849C6B612E0496D148049011F01FC
1347 C8FC90C7000313C041547BD24B>I<913801FFF8021FEBFF8091B612F0010315FC010F90
1348 38C00FFE903A1FFE0001FFD97FFC491380D9FFF05B4817C048495B5C5A485BA2486F1380
1349 91C7FC486F1300705A4892C8FC5BA312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E
1350 6E140F6CEE1F806C6DEC3F006C6D147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B5
1351 5A01001580023F49C7FC020113E033387CB63C>I<4DB47E0407B5FCA5EE001F1707B3A4
1352 913801FFE0021F13FC91B6FC010315C7010F9038E03FE74990380007F7D97FFC0101B5FC
1353 49487F4849143F484980485B83485B5A91C8FC5AA3485AA412FFAC127FA36C7EA37EA26C
1354 7F5F6C6D5C7E6C6D5C6C6D49B5FC6D6C4914E0D93FFED90FEFEBFF80903A0FFFC07FCF6D
1355 90B5128F0101ECFE0FD9003F13F8020301C049C7FC41547CD24B>I<913803FFC0023F13
1356 FC49B6FC010715C04901817F903A3FFC007FF849486D7E49486D7E4849130F48496D7E48
1357 178048497F18C0488191C7FC4817E0A248815B18F0A212FFA490B8FCA318E049CAFCA612
1358 7FA27F7EA218E06CEE01F06E14037E6C6DEC07E0A26C6DEC0FC06C6D141F6C6DEC3F806D
1359 6CECFF00D91FFEEB03FE903A0FFFC03FF8010390B55A010015C0021F49C7FC020113F034
1360 387CB63D>I<ED3FFC0203B5FC020F14C0023F14E09139FFF81FF0499038C03FF849EB80
1361 7F49903800FFFC495A495AA2495AA2EE7FF8495AEE3FF0EE0FC093C7FCAEB712E0A52600
1362 7FF8C8FCB3B3A7007FB512FEA52E547CD329>I<DA3FFF14FF0103B5D8F00713C0010FDA
1363 FC1F13E0013FECFF7F90267FFC0F9038FF9FF09026FFE001EBF83F48496C13E048499038
1364 7FF01F4890C7D83FF813E0489338FC0FC0F0078048486E6CC7FCA2003F82A9001F5EA26C
1365 6C4A5AA26C5E6C6D495A6C6D495A6C6D485BDAFC0F5B4890B6C8FCD803EF14FC01C314F0
1366 2607C03F90C9FC91CBFCA2120FA37FA213F813FE90B7FC6C16F817FF18C06C836C836C83
1367 6D828448B9FC12074848C700031480D81FF8EC003F4848150748486F13C083485A83A56D
1368 5D007F18806D5D003F18006C6C4B5AD80FFEED1FFC6C6C6CEC7FF86C01E049485A6C01FE
1369 011F5B6C6CB71280010F03FCC7FC010115E0D9000F01FCC8FC3C4F7CB543>I<EB3FF0B5
1370 FCA51203C6FCB3A4EE1FFC93B512C0030314F0030F8092391FE07FFC92393F001FFE037C
1371 8003F07FDAF1E081ECF3C0DAF7807F8502FFC7FC5CA25CA45CB3ACB6D8F807B612C0A542
1372 537BD24B>I<137F497E000313E0487FA2487FA76C5BA26C5BC613806DC7FC90C8FCADEB
1373 3FF0B5FCA512017EB3B3A6B612E0A51B547BD325>I<157FEDFF80020313E04A13F0A24A
1374 13F8A76E13F0A26E13E002001380ED7F0092C7FCADED1FF891B5FCA51401EC007FB3B3B1
1375 EA0780EA1FE0487E487E486C13FF16F0A216E05C16C04A13806C4848130049485A003F49
1376 5A000FB512F06C5C0001148026001FFCC7FC256C87D329>I<EB3FF0B5FCA51203C6FCB3
1377 A54CB512F8A59339003FFE00EF1FF0EF3FC04D5A4DC7FCEE03FEEE07F84C5A4C5AEE7FC0
1378 4CC8FC4B5A4B5AED0FF8ED1FE04B7E4B7EECF1FF02F37F02F77F91B6FC83159F030F7F02
1379 FE80DAF8077F4A7E6F7F6F7F83707E82707F84707F707F82707F84707F177F717E4D13C0
1380 B6D8F003B6FCA540537CD247>I<EB3FF0B5FCA512017EB3B3B3B1B612F0A51C537BD225>
1381 I<D93FF0D91FFCEDFFE0B591B500C0010713FE030302F0011F6D7E030F6E017F8092271F
1382 E07FFCD9FF037F922A3F001FFE01F8007F0003027C9126FF03E080C602F06DD90780137F
1383 DAF1E0038FC77FDAF3C0159EDAF7806D01BC143F07FC8102FFC75C4A5EA24A5EA44A5EB3
1384 ACB6D8F807B6D8C03FB512FEA567367BB570>I<D93FF0EB1FFCB591B512C0030314F003
1385 0F8092391FE07FFC92393F001FFE0003027C80C602F07FDAF1E081ECF3C0DAF7807F8502
1386 FFC7FC5CA25CA45CB3ACB6D8F807B612C0A542367BB54B>I<913801FFE0021F13FE91B6
1387 12C0010315F0010F9038807FFC903A1FFC000FFED97FF86D6C7E49486D7F48496D7F4849
1388 6D7F4A147F48834890C86C7EA24883A248486F7EA3007F1880A400FF18C0AC007F1880A3
1389 003F18006D5DA26C5FA26C5F6E147F6C5F6C6D4A5A6C6D495B6C6D495B6D6C495BD93FFE
1390 011F90C7FC903A0FFF807FFC6D90B55A010015C0023F91C8FC020113E03A387CB643>I<
1391 903A3FF001FFE0B5010F13FE033FEBFFC092B612F002F301017F913AF7F8007FFE0003D9
1392 FFE0EB1FFFC602806D7F92C76C7F4A824A6E7F4A6E7FA2717FA285187F85A4721380AC1A
1393 0060A36118FFA2615F616E4A5BA26E4A5B6E4A5B6F495B6F4990C7FC03F0EBFFFC9126FB
1394 FE075B02F8B612E06F1480031F01FCC8FC030313C092CBFCB1B612F8A5414D7BB54B>I<
1395 90397FE003FEB590380FFF80033F13E04B13F09238FE1FF89139E1F83FFC0003D9E3E013
1396 FEC6ECC07FECE78014EF150014EE02FEEB3FFC5CEE1FF8EE0FF04A90C7FCA55CB3AAB612
1397 FCA52F367CB537>114 D<903903FFF00F013FEBFE1F90B7FC120348EB003FD80FF81307
1398 D81FE0130148487F4980127F90C87EA24881A27FA27F01F091C7FC13FCEBFFC06C13FF15
1399 F86C14FF16C06C15F06C816C816C81C681013F1580010F15C01300020714E0EC003F0307
1400 13F015010078EC007F00F8153F161F7E160FA27E17E07E6D141F17C07F6DEC3F8001F8EC
1401 7F0001FEEB01FE9039FFC00FFC6DB55AD8FC1F14E0D8F807148048C601F8C7FC2C387CB6
1402 35>I<143EA6147EA414FEA21301A313031307A2130F131F133F13FF5A000F90B6FCB8FC
1403 A426003FFEC8FCB3A9EE07C0AB011FEC0F8080A26DEC1F0015806DEBC03E6DEBF0FC6DEB
1404 FFF86D6C5B021F5B020313802A4D7ECB34>I<D93FF8913801FFC0B50207B5FCA50003ED
1405 001FC61607B3AE5FA35FA2017F5D173B177B6D6C14F3DC01E313F06D6CD907C3EBFFC090
1406 3A0FFFC03F836D90B51203010114FE6D6C13F8020701E091C7FC42377BB54B>I<B600F0
1407 0107B5FCA5000101F8C8EA7FE06C6DED3F00A2017F163E6E157E013F167C6E15FC6D5E6F
1408 13016D5E8117036D5E6F13076D5E6F130F6D5E6F131F6D93C7FC815F6E6C133E177E023F
1409 147C6F13FC6E5C16816E5C16C3A26EEBE3E016E76E5C16FF6E5CA26E91C8FCA26F5AA36F
1410 5AA26F5AA26F5AA26F5A6F5A40367DB447>I<B6D8E07FB5D8C003B512C0A5000101F0C7
1411 01F0C7381FF8006E027FED07E06C715DA26E023F150F017F705DA26E181F013F4B6C92C7
1412 FC6E606D70143E94B5FC6F177E6D4A6E137C03C001F315FC6D715B160303E001E114016D
1413 020702E05B03F013C06D71485A160F03F8D9807F13076D05F85B93381F003F03FC160F02
1414 7F4902FC5BDBFE3E011F131F023F04FE90C8FC167EDBFF7C010F5B6E01FCECFF3E4C6D13
1415 7E6E5FA24C7F6E5F4C7F6E5FA24C7F6E5F4C147FA26E5F93C8123F6F5EA2033E6FC9FC5A
1416 367DB461>I<007FB500F090387FFFFEA5C66C48C7000F90C7FC6D6CEC07F86D6D5C6D6D
1417 495A6D4B5A6F495A6D6D91C8FC6D6D137E6D6D5B91387FFE014C5A6E6C485A6EEB8FE06E
1418 EBCFC06EEBFF806E91C9FCA26E5B6E5B6F7E6F7EA26F7F834B7F4B7F92B5FCDA01FD7F03
1419 F87F4A486C7E4A486C7E020F7FDA1FC0804A486C7F4A486C7F02FE6D7F4A6D7F495A4948
1420 6D7F01076F7E49486E7E49486E7FEBFFF0B500FE49B612C0A542357EB447>I<B600F001
1421 07B5FCA5C601F8C8EA7FE06EED3F00A26D6C153E187E013F167C6E15FC6D5E6F13016D5E
1422 6F13036D5E8117076D6D5C170F6D6D5C171F6D93C7FC6F5B027F143E6F137E023F147C6F
1423 13FCA26E6D5A16816EEBC1F016C36E5C16E76E5C16FF6E5CA26E91C8FCA36F5AA26F5AA2
1424 6F5AA26F5AA26F5AA35E150F5E151F93C9FC5DD81FC0133E486C137E486C137C486C13FC
1425 5D14015D14034A5A6C48485A49485A263FC07FCAFCEB81FE6CB45A6C13F000035BC690CB
1426 FC404D7DB447>I<001FB8FC1880A3912680007F130001FCC7B5FC01F0495B495D49495B
1427 495B4B5B48C75C5D4B5B5F003E4A90C7FC92B5FC4A5B5E4A5B5CC7485B5E4A5B5C4A5B93
1428 C8FC91B5FC495B5D4949EB0F805B495B5D495B49151F4949140092C7FC495A485E485B5C
1429 485E485B4A5C48495B4815074849495A91C712FFB8FCA37E31357CB43C>I
1431 %EndDVIPSBitmapFont
1432 %DVIPSBitmapFont: Fm cmcsc10 10.95 7
1433 /Fm 7 118 df<EC01E0A24A7EA34A7EA34A7EA24A7E141CA2EC3CFFEC387FA24A6C7EA3
1434 4A6C7EA2010180ECC00FA249486C7EA349486C7EA24980010E1301010FB5FC4980A2011C
1435 C7FC49147FA20178810170143FA201F08149141F1201486C811207486CEC3FF8D8FFFE49
1436 B512C0A332317DB038>97 D<B81280A3D803FEC7FC6C48EC1FC0160F16071603A21601A3
1437 17E0ED0E00A31700A2151E153E157E90B512FEA39038FC007E153E151E150EA21738A392
1438 C71270A417F0A2EE01E0A216031607161F486C14FFB812C0A32D2F7DAE33>101
1439 D<B8FCA33903FE00016C489038003F80161F160F1607A21603A317C01601150EA293C7FC
1440 A3151E153E157E90B512FEA39038FC007E153E151E150EA592C8FCAA487EB512FCA32A2F
1441 7DAE31>I<B512F8A33803FE006C5AB3B3A3487EB512F8A3152F7DAE1B>105
1442 D<D8FFFC91387FFFC07F7F0001923807FC006E6D5A6E6D5AD9DFE06D5AA2EBCFF0EBC7F8
1443 EBC3FCA2EBC1FEEBC0FF6E7EA26E7E6E7EA26E7E6E7E6E7EA26E7E6E7EED7F80A2ED3FC0
1444 ED1FE0ED0FF0A2ED07F8ED03FCA2ED01FEED00FF167FA2163F161F160F487E486C140748
1445 6C1403B56C1301A21600322F7DAE38>110 D<90383FC00C9038FFF81C0003EBFE3C390F
1446 E03FFC381F8007EB0003003E1301481300157C5A153CA36C141CA27E6C14006C7E13E013
1447 FE383FFFE06C13FE6CEBFF806C14E0000114F06C6C13F8010F13FC1300EC07FE14011400
1448 157F153F12E0151FA37EA2151E6C143E6C143C6C147C6C14F89038C001F039FBF807E000
1449 F1B512C0D8E07F130038C007FC20317BAF2A>115 D<B500F890387FFFC0A3D803FEC738
1450 07FC006C486E5A705A705AB3AB000015016D5D1603017E5D017F14076D6C49C7FC131F6D
1451 6C133ED907F05B903903FC03F00100B55A023F1380DA07FCC8FC32307DAE38>117
1452 D E
1453 %EndDVIPSBitmapFont
1454 %DVIPSBitmapFont: Fn cmr10 10.95 80
1455 /Fn 80 125 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF03FD907
1456 F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE6D91C7
1457 FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>11
1458 D<4AB4FC021F13C091387F01F0903901FC0078D907F0131C4948133E494813FF49485A13
1459 7F1400A213FE6F5A163893C7FCAA167FB8FCA33900FE00018182B3AC486CECFF80007FD9
1460 FC3F13FEA32F407FBF33>I<4AB47E021F13F791387F00FFEB01F8903807F001EB0FE0EB
1461 1FC0EB3F80137F14008101FE80AEB8FCA3C648C77EB3AE486CECFF80007FD9FC3F13FEA3
1462 2F407FBF33>I<4AB4ECFF80021FD9C00F13E0913B7F01F03F80F8903C01F80078FE003C
1463 D907F0D93FF8130E49484948131F49484948EB7F804948484913FF137F02005CA201FE92
1464 C7FC6FED7F0070141C96C7FCAAF13F80BBFCA3C648C76CC7FC197F193FB3AC486C4A6CEB
1465 7FC0007FD9FC3FD9FE1FB5FCA348407FBF4C>I<121EEA7F80EAFFC0A9EA7F80ACEA3F00
1466 AC121EAB120CC7FCA8121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A4179C019>33
1467 D<001E130F397F803FC000FF137F01C013E0A201E013F0A3007F133F391E600F30000013
1468 00A401E01370491360A3000114E04913C00003130101001380481303000EEB070048130E
1469 0018130C0038131C003013181C1C7DBE2D>I<121EEA7F8012FF13C0A213E0A3127FEA1E
1470 601200A413E013C0A312011380120313005A120E5A1218123812300B1C79BE19>39
1471 D<1430147014E0EB01C0EB03801307EB0F00131E133E133C5B13F85B12015B1203A2485A
1472 A2120F5BA2121F90C7FCA25AA3123E127EA6127C12FCB2127C127EA6123E123FA37EA27F
1473 120FA27F1207A26C7EA212017F12007F13787F133E131E7FEB07801303EB01C0EB00E014
1474 701430145A77C323>I<12C07E12707E7E121E7E6C7E7F12036C7E7F12007F1378137CA2
1475 7FA2133F7FA21480130FA214C0A3130714E0A6130314F0B214E01307A614C0130FA31480
1476 A2131F1400A25B133EA25BA2137813F85B12015B485A12075B48C7FC121E121C5A5A5A5A
1477 145A7BC323>I<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A3120113
1478 80120313005A120E5A1218123812300B1C798919>44 D<B512FEA617067F961E>I<121E
1479 EA7F80A2EAFFC0A4EA7F80A2EA1E000A0A798919>I<ED0180ED03C01507A21680150FA2
1480 16005DA2151E153EA2153C157CA2157815F8A25D1401A25D1403A25D1407A25D140FA24A
1481 C7FCA2141E143EA2143C147CA2147814F8A25C1301A25C1303A25C1307A25C130FA291C8
1482 FC5BA2131E133EA25BA2137813F8A25B1201A25B1203A25B1207A25B120FA290C9FC5AA2
1483 121E123EA2123C127CA2127812F8A25A1260225B7BC32D>I<EB01FE90380FFFC090383F
1484 03F090387C00F849137C48487F48487F4848EB0F80A2000F15C04848EB07E0A3003F15F0
1485 A290C712034815F8A64815FCB3A26C15F8A56C6CEB07F0A3001F15E0A36C6CEB0FC0A26C
1486 6CEB1F80000315006C6C133E6C6C5B017C5B90383F03F090380FFFC0D901FEC7FC263F7D
1487 BC2D>I<EB01C013031307131F137FEA07FFB5FC139FEAF81F1200B3B3ACEB7FF0B612F8
1488 A31D3D78BC2D>I<EB07FC90383FFF8090B512E03903F01FF83907C007FC390F0001FE00
1489 1E6D7E001C1580003CEC7FC05AED3FE01270B4FC6DEB1FF07FA56C5A6CC7FC120CC813E0
1490 153FA216C0157F168015FF16004A5A5D4A5A4A5A5D4A5A4A5A4AC7FC147E147C5C495A49
1491 5A495A495A49C71270133E133C5B4914E0485A485A485A48C7120148B6FCA25A4815C0B7
1492 FCA3243D7CBC2D>I<EB07FC90383FFF809038F80FE03901E003F839078001FCD80F007F
1493 000E6D7E001E1580D81F80137F486C14C07FA27F5BA2121F6C5AC8138015FF1600A24A5A
1494 A24A5A5DEC07E04A5A023FC7FCEB1FFCECFF809038000FE0EC07F86E7E6E7E6E7E1680ED
1495 7FC0A216E0153FA216F0A2120C123F487E487EA316E0A249137F6CC713C01278EDFF807E
1496 6C4913006C495A3907C007FC3903F80FF0C6B55A013F1380D907F8C7FC243F7CBC2D>I<
1497 150E151E153EA2157EA215FE1401A21403EC077E1406140E141CA214381470A214E0EB01
1498 C0A2EB0380EB0700A2130E5BA25B5BA25B5B1201485A90C7FC5A120E120C121C5AA25A5A
1499 B8FCA3C8EAFE00AC4A7E49B6FCA3283E7EBD2D>I<00061403D80780131F01F813FE90B5
1500 FC5D5D5D15C092C7FC14FCEB3FE090C9FCACEB01FE90380FFF8090383E03E090387001F8
1501 496C7E49137E497F90C713800006141FC813C0A216E0150FA316F0A3120C127F7F12FFA4
1502 16E090C7121F12FC007015C012780038EC3F80123C6CEC7F00001F14FE6C6C485A6C6C48
1503 5A3903F80FE0C6B55A013F90C7FCEB07F8243F7CBC2D>I<EC1FE0ECFFF8903803F03E90
1504 380FC00F90391F000780133E017EEB1FC049133F4848137F12035B12074848EB3F80ED1F
1505 00001F91C7FC5BA2123FA3485AA214FE903887FF8039FF8F07E090389C01F09038B800FC
1506 01B0137E13F0497F16804914C0A2ED1FE0A34914F0A5127FA6123F6D14E0A2121FED3FC0
1507 A26C6C1480A20007EC7F006C6C137E6C6C5B6C6C485A90387E07F06DB45A010F1380D903
1508 FCC7FC243F7CBC2D>I<1238123C123F90B612FCA316F85A16F016E00078C712010070EC
1509 03C0ED078016005D48141E151C153C5DC8127015F04A5A5D14034A5A92C7FC5C141EA25C
1510 A2147C147814F8A213015C1303A31307A3130F5CA2131FA6133FAA6D5A0107C8FC26407B
1511 BD2D>I<EB03FC90381FFF8090387C07E09038F001F83901E0007C48487F48487F48C7FC
1512 ED0F80121E16C0003E1407A4123FA26DEB0F807F6C6C131F6D140001FC133E6C6C5B9038
1513 FF80786C6D5A6CEBF3E06CEBFF806C91C7FC133F6D13C06D7F013F13F801787F48486C7E
1514 3903E01FFF48486C1380260F800313C048487E489038007FE0003E143F007E141F007CEC
1515 0FF01507481403A31501A46C15E0007C1403A2007E15C06C14076CEC0F806DEB1F006C6C
1516 133ED807F05B3901FC03F86CB512E0011F1380D903FCC7FC243F7CBC2D>I<EB03FCEB1F
1517 FF90387E07C09038FC03F048486C7E48486C7E4848137C000F147E4848137F81003F1580
1518 5B007F15C0A2151F12FF16E0A516F0A5127F153FA36C7EA2001F147F120F6C6C13FF6D13
1519 DF000313013900F8039F90387E0F1FD91FFE13E0EB07F090C7FCA2ED3FC0A41680157FD8
1520 0F801400487E486C13FEA24A5A5D49485AEB8007391E000FE0001F495A260FC07FC7FC38
1521 03FFFE6C13F838003FC0243F7CBC2D>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FC
1522 B3121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A2779A619>I<121EEA7F80A2EAFFC0A4EA
1523 7F80A2EA1E00C7FCB3121E127FEAFF80A213C0A4127F121E1200A412011380A312031300
1524 5A1206120E120C121C5A1230A20A3979A619>I<15074B7EA34B7EA34B7EA34B7EA34B7E
1525 15E7A2913801C7FC15C3A291380381FEA34AC67EA3020E6D7EA34A6D7EA34A6D7EA34A6D
1526 7EA34A6D7EA349486D7E91B6FCA249819138800001A249C87EA24982010E157FA2011E82
1527 011C153FA2013C820138151FA2017882170F13FC00034C7ED80FFF4B7EB500F0010FB512
1528 F8A33D417DC044>65 D<B712FCEEFF8017F00001903980000FF86C6CC7EA03FE707E7013
1529 80EF7FC0EF3FE0A2EF1FF0A218F8A3170F171FA318F0A2EF3FE0177F18C0EFFF804C1300
1530 EE03FCEE0FF8EE7FE091B6C7FC17E091C7EA07FCEE01FE933800FF80EF7FC0EF3FE0EF1F
1531 F018F8170F18FC1707A218FEA718FC170FA2EF1FF818F0173FEF7FE0EFFFC00403138048
1532 486C90380FFE00B85A17E094C7FC373E7DBD40>I<DB3FF01306912603FFFE130E020F90
1533 38FF801E913A3FF007E03E9139FF8000F8D903FEC7EA7C7ED907F8EC1EFE4948140FD93F
1534 E0140749481403495A91C812014848150012034848167E5B000F173EA24848161EA2123F
1535 5B180E127FA349160012FFAC127F7F180EA2123FA27F001F171E181C6C7EA20007173C6D
1536 16386C6C1678000117706C6C16F06EEC01E06D6C15C06D6C1403D90FF0EC07806D6CEC1F
1537 00D903FE143E902600FF8013F891393FF007F0020FB512C0020391C7FC9138003FF03742
1538 7BBF42>I<B712FCEEFF8017E000019039C0001FF86C6C48EB03FEEE00FF717E717EEF0F
1539 E084717E717E170184717EA21980187F19C0A3F03FE0A519F0AB19E0A5F07FC0A21980A2
1540 18FF19004D5AA24D5A6017074D5A4D5AEF7FC04DC7FCEE03FE48486CEB1FF8B85A178004
1541 FCC8FC3C3E7DBD45>I<B912E0A300019038C000016C6C48EB001FEF0FF01703A2170117
1542 00A31870A41838161CA41800A2163CA2167C16FC150391B5FCA3EC80031500167C163CA2
1543 161CA21807A3180E93C7FCA4181E181CA2183CA2187CA218F8170117031707171F48486C
1544 EB01FFB912F0A3383E7DBD3E>I<B91280A300019038C000036C6C48EB007FEF1FC0170F
1545 1707A21703A31701A4EF00E0A21638A31800A31678A216F81501150791B5FCA3EC800715
1546 0115001678A21638A693C8FCAF3801FFE0B612F0A3333E7DBD3B>I<DB3FE0130C912603
1547 FFFE131C021F9038FF803C913A7FF00FC07C9139FF0001F0D903FC90380078FC4948143D
1548 D91FE0141F4948140F4948140701FF15034890C8FC491501485A000716005B000F177C5B
1549 001F173CA2485AA2181C127FA25B95C7FC12FFAB041FB512F0127FA26D9139000FFE00EF
1550 03FC123FA27F121FA26C7EA212077F12036C7E7F6C7F6D6C14076D7E6D6C140FD907F814
1551 1ED903FEEC3C7C902600FF80EBF83C913A7FF007F01C021FB5EAC00C020391C8FC913800
1552 3FF03C427BBF47>I<B6D8C01FB512F8A3000101E0C7383FFC0026007F80EC0FF0B3A691
1553 B7FCA30280C7120FB3A92601FFE0EC3FFCB6D8C01FB512F8A33D3E7DBD44>I<B612F0A3
1554 C6EBF000EB3FC0B3B3B2EBFFF0B612F0A31C3E7EBD21>I<011FB512FCA3D9000713006E
1555 5A1401B3B3A6123FEA7F80EAFFC0A44A5A1380D87F005B007C130700385C003C495A6C49
1556 5A6C495A2603E07EC7FC3800FFF8EB3FC026407CBD2F>I<B600C090387FFFFCA3000101
1557 E0C7000F138026007F80913807FE0018F818E0604D5A4DC7FC173E5F5F4C5A4C5A4C5A4C
1558 5A4CC8FC163E5E5E4B5A4B5AED07804B7E151F4B7E4B7E15FF913881EFF8913883C7FCEC
1559 878791388F03FE91389E01FF14BCDAF8007F4A6D7E5C4A6D7E4A6D7EA2707E707EA2707E
1560 707EA2707F717E84173F717E717EA2717E848419802601FFE04A13C0B600C090B6FCA340
1561 3E7DBD47>I<B612F8A3000101E0C9FC38007F80B3B0EF0380A517071800A45FA35FA25F
1562 5F5F4C5A160748486C133FB8FCA3313E7DBD39>I<B500C093383FFFF0A300016D93387F
1563 F800D8007F18E0D977F016EFA3D973F8ED01CFA2D971FCED038FA3D970FEED070FA26E15
1564 0E80A26E6C141CA36E6C1438A26E6C1470A36E6C14E0A26E6CEB01C0A36E6CEB0380A36E
1565 6CEB0700A2037F130EA36F6C5AA26F6C5AA36F6C5AA25FED07F0A2923803F9C0A36FB45A
1566 A26F90C7FCA213F8486C147ED807FFEF3FF8B500F8013C011FB512F0A34C3E7DBD53>I<
1567 B56C91B512F88080D8007F030713006EEC01FC6E6E5A1870EB77FCEB73FEA2EB71FF0170
1568 7FA26E7E6E7EA26E7E6E7EA26E7E6E7EA26E7E6E7FA26F7E6F7EA26F7E6F7EA26F7E6F7E
1569 A26F7E6F1380A2EE7FC0EE3FE0A2EE1FF0EE0FF8A2EE07FCEE03FEA2EE01FF7013F0A217
1570 7F173FA2171F170FA2170701F81503487ED807FF1501B500F81400A218703D3E7DBD44>
1571 I<ED7FE0913807FFFE91391FC03F8091397E0007E04948EB03F8D907F0EB00FE4948147F
1572 49486E7E49486E7E49C86C7E01FE6F7E00018349150300038348486F7EA248486F7EA200
1573 1F188049167F003F18C0A3007F18E049163FA300FF18F0AC007F18E06D167FA4003F18C0
1574 A26C6CEEFF80A36C6C4B1300A26C6C4B5A00035F6D150700015F6C6C4B5A6D5E6D6C4A5A
1575 6D6C4A5A6D6C4AC7FC6D6C14FED901FCEB03F8D9007FEB0FE091391FC03F80912607FFFE
1576 C8FC9138007FE03C427BBF47>I<B712F8EEFF8017E000019039C0003FF86C6C48EB07FC
1577 EE01FE707EEF7F80EF3FC018E0A2EF1FF0A218F8A818F0A2EF3FE0A218C0EF7F80EFFF00
1578 4C5AEE07FCEE3FF091B612C04CC7FC0280C9FCB3A73801FFE0B612C0A3353E7DBD3E>I<
1579 B712C016FCEEFF800001D9C00013E06C6C48EB1FF0EE07FCEE01FE707E84717EA2717EA2
1580 84A760177F606017FF95C7FCEE01FCEE07F8EE1FE0EEFF8091B500FCC8FC16F091388001
1581 FCED003FEE1FC0707E707E83160383160183A383A484A4F0C004190EA28218E0057F131E
1582 2601FFE0161CB600C0EB3FF094381FF83805071370CA3801FFE09438003F803F407DBD43
1583 >82 D<D907FC130C90391FFF801C017FEBF03C3901FC03F83A03F0007E7CD807C0EB1FFC
1584 4848130F001F140748C71203003E1401007E1400A2007C157C12FCA2163CA36C151CA27E
1585 A26C6C14007F7FEA3FF8EBFF806C13F86CEBFF806C14F06C14FC6C14FF6C15C0013F14E0
1586 010714F0EB007F020713F89138007FFC150FED07FE15031501ED00FFA200E0157FA3163F
1587 A27EA3163E7E167E6C157C6C15FC6C15F86D13016DEB03F06DEB07E0D8F9FCEB0FC03AF0
1588 7F803F8090391FFFFE00D8E00713F839C0007FC028427BBF33>I<003FB91280A3903AF0
1589 007FE001018090393FC0003F48C7ED1FC0007E1707127C00781703A300701701A548EF00
1590 E0A5C81600B3B14B7E4B7E0107B612FEA33B3D7DBC42>I<B600C090B512F8A3000101E0
1591 C70007130026007F80EC01FC715A1870B3B3A4013F16F06E5DA21701011F5E80010F1503
1592 6E4A5A010793C7FC6D6C5C6D6C141E6D6C5C027F14F86E6C485A91390FF00FE00203B512
1593 80020049C8FCED1FF03D407DBD44>I<B691380FFFFEA3000301E0020113E06C01809138
1594 007F806CEF3F00017F163E181C6E153C013F1638A26E1578011F1670A26D6C5DA26E1401
1595 01075EA26E140301035EA26D6C4AC7FCA2806D150EA26F131E027F141CA26F133C023F14
1596 38A26E6C5BA26F13F0020F5CA2EDF80102075CA26E6C485AA2EDFE07020191C8FCA26F5A
1597 6E130EA2ED7F9CA216DCED3FF8A36F5AA36F5AA26F5AA36F5A3F407EBD44>I<B500FE01
1598 7FB5D88007B5FCA3000301C0010101E0C713F86C90C849EC3FE07148EC0F807E7215006E
1599 143F017F190E84A26D6C60A24D7E6D6C60A2EFE7F86D6C60A2933801C3FC6E18F0010761
1600 04037F6E0281140101036104077F17006D6C4D5AA2040EEB7F806D6C4DC7FCA24CEB3FC0
1601 DA7F80160EA24CEB1FE003C0161E023F171C047814F0DBE070010F133C021F173804F014
1602 F84C1307DA0FF05EA2DBF1C0EB03FCDA07F95EA2DBFB80EB01FEDA03FF6F5AA293C8FCA2
1603 6E5FA24B157F020094C8FCA24B81037C153EA20378151E0338151C58407EBD5D>I<B66C
1604 0103B51280A3000101F0C8EBF8006C6C48ED3FC0725A013F041EC7FC6D7E606D6C15386D
1605 6C1578606D6C5D6E14016D5E6D6D1303606E6C49C8FC6E6C5B170E6E6C131E171C6E6C5B
1606 6E6C137817706E6C13F06F5B6E13016EEB83C05FED7FC7DB3FE7C9FC16EFED1FFE5E150F
1607 6F5AB3A4ED1FFC020FB512FCA3413E7FBD44>89 D<EAFFFCA4EAF000B3B3B3B3ABEAFFFC
1608 A40E5B77C319>91 D<486C13C00003130101001380481303000EEB070048130E0018130C
1609 0038131C003013180070133800601330A300E01370481360A400CFEB678039FFC07FE001
1610 E013F0A3007F133FA2003F131F01C013E0390F0007801C1C73BE2D>I<EAFFFCA4EA003C
1611 B3B3B3B3ABEAFFFCA40E5B7FC319>I<EA0180120313005A120E5A121812381230127012
1612 60A312E05AA412CFEAFFC013E0A3127FA2123F13C0EA0F000B1C7ABE19>96
1613 D<EB0FF8EBFFFE3903F01F8039078007E0000F6D7E9038E001F8D81FF07F6E7EA3157F6C
1614 5AEA0380C8FCA4EC1FFF0103B5FC90381FF87FEB7F803801FC00EA07F8EA0FE0485A485A
1615 A248C7FCEE038012FEA315FFA3007F5BEC03BF3B3F80071F8700261FC00E13CF3A07F03C
1616 0FFE3A01FFF807FC3A003FC001F0292A7DA82D>I<EA01FC12FFA3120712031201B1EC03
1617 FC91381FFF8091387C07E09039FDE001F09039FFC000FC4A137E91C77E49158049141F17
1618 C0EE0FE0A217F0A2160717F8AA17F0A2160FA217E0161F17C06D1580EE3F006D5C6E13FE
1619 9039F3C001F89039F1E003F09039E0780FC09026C03FFFC7FCC7EA07F82D407EBE33>I<
1620 49B4FC010F13E090383F00F8017C131E4848131F4848137F0007ECFF80485A5B121FA248
1621 48EB7F00151C007F91C7FCA290C9FC5AAB6C7EA3003FEC01C07F001F140316806C6C1307
1622 6C6C14000003140E6C6C131E6C6C137890383F01F090380FFFC0D901FEC7FC222A7DA828
1623 >I<ED01FC15FFA3150715031501B114FF010713E190381F80F990387E003D49131FD803
1624 F81307485A49130348481301121F123F5B127FA290C7FCA25AAA7E7FA2123FA26C7E000F
1625 14037F000714076C6C497E6C6C497ED8007C017913F890383F01F190380FFFC1903A01FE
1626 01FC002D407DBE33>I<EB01FE90380FFFC090383F03F09038FC01F848486C7E4848137E
1627 48487F000F158049131F001F15C04848130FA2127F16E090C7FCA25AA290B6FCA290C9FC
1628 A67EA27F123F16E06C7E1501000F15C06C6C13036DEB07806C6C1400C66C131E017E5B90
1629 381F80F8903807FFE0010090C7FC232A7EA828>I<EC1FC0EC7FF8903801F83C903807E0
1630 7E90380FC0FFEB1FC1EB3F811401137FEC00FE01FE137C1500AEB6FCA3C648C7FCB3AE48
1631 7E007F13FFA320407EBF1C>I<167C903903F801FF903A1FFF078F8090397E0FDE1F9038
1632 F803F83803F001A23B07E000FC0600000F6EC7FC49137E001F147FA8000F147E6D13FE00
1633 075C6C6C485AA23901F803E03903FE0FC026071FFFC8FCEB03F80006CAFC120EA3120FA2
1634 7F7F6CB512E015FE6C6E7E6C15E06C810003813A0FC0001FFC48C7EA01FE003E14004815
1635 7E825A82A46C5D007C153E007E157E6C5D6C6C495A6C6C495AD803F0EB0FC0D800FE017F
1636 C7FC90383FFFFC010313C0293D7EA82D>I<EA01FC12FFA3120712031201B1EC01FE9138
1637 07FFC091381E07E091387803F09138E001F8D9FDC07F148001FF6D7E91C7FCA25BA25BB3
1638 A6486C497EB5D8F87F13FCA32E3F7DBE33>I<EA01E0EA07F8A2487EA46C5AA2EA01E0C8
1639 FCACEA01FC127FA3120712031201B3AC487EB512F0A3143E7DBD1A>I<1478EB01FEA2EB
1640 03FFA4EB01FEA2EB00781400AC147FEB7FFFA313017F147FB3B3A5123E127F38FF807E14
1641 FEA214FCEB81F8EA7F01387C03F0381E07C0380FFF803801FC00185185BD1C>I<EA01FC
1642 12FFA3120712031201B292B51280A392383FFC0016E0168093C7FC153C5D5D4A5AEC07C0
1643 4A5A4AC8FC143E147F4A7E13FD9038FFDFC0EC9FE0140F496C7E01FC7F496C7E1401816E
1644 7E81826F7E151F826F7EA282486C14FEB539F07FFFE0A32B3F7EBE30>I<EA01FC12FFA3
1645 120712031201B3B3B1487EB512F8A3153F7DBE1A>I<2701F801FE14FF00FF902707FFC0
1646 0313E0913B1E07E00F03F0913B7803F03C01F80007903BE001F87000FC2603F9C06D487F
1647 000101805C01FBD900FF147F91C75B13FF4992C7FCA2495CB3A6486C496CECFF80B5D8F8
1648 7FD9FC3F13FEA347287DA74C>I<3901F801FE00FF903807FFC091381E07E091387803F0
1649 00079038E001F82603F9C07F0001138001FB6D7E91C7FC13FF5BA25BB3A6486C497EB5D8
1650 F87F13FCA32E287DA733>I<14FF010713E090381F81F890387E007E01F8131F4848EB0F
1651 804848EB07C04848EB03E0000F15F04848EB01F8A2003F15FCA248C812FEA44815FFA96C
1652 15FEA36C6CEB01FCA3001F15F86C6CEB03F0A26C6CEB07E06C6CEB0FC06C6CEB1F80D800
1653 7EEB7E0090383F81FC90380FFFF0010090C7FC282A7EA82D>I<3901FC03FC00FF90381F
1654 FF8091387C0FE09039FDE003F03A03FFC001FC6C496C7E91C7127F49EC3F805BEE1FC017
1655 E0A2EE0FF0A3EE07F8AAEE0FF0A4EE1FE0A2EE3FC06D1580EE7F007F6E13FE9138C001F8
1656 9039FDE007F09039FC780FC0DA3FFFC7FCEC07F891C9FCAD487EB512F8A32D3A7EA733>
1657 I<02FF131C0107EBC03C90381F80F090397F00387C01FC131CD803F8130E4848EB0FFC15
1658 0748481303121F485A1501485AA448C7FCAA6C7EA36C7EA2001F14036C7E15076C6C130F
1659 6C7E6C6C133DD8007E137990383F81F190380FFFC1903801FE0190C7FCAD4B7E92B512F8
1660 A32D3A7DA730>I<3901F807E000FFEB1FF8EC787CECE1FE3807F9C100031381EA01FB14
1661 01EC00FC01FF1330491300A35BB3A5487EB512FEA31F287EA724>I<90383FC0603901FF
1662 F8E03807C03F381F000F003E1307003C1303127C0078130112F81400A27E7E7E6D1300EA
1663 7FF8EBFFC06C13F86C13FE6C7F6C1480000114C0D8003F13E0010313F0EB001FEC0FF800
1664 E01303A214017E1400A27E15F07E14016C14E06CEB03C0903880078039F3E01F0038E0FF
1665 FC38C01FE01D2A7DA824>I<131CA6133CA4137CA213FCA2120112031207001FB512C0B6
1666 FCA2D801FCC7FCB3A215E0A912009038FE01C0A2EB7F03013F138090381F8700EB07FEEB
1667 01F81B397EB723>I<D801FC14FE00FF147FA3000714030003140100011400B3A51501A3
1668 1503120015076DEB06FF017E010E13806D4913FC90381FC078903807FFE00100903880FE
1669 002E297DA733>I<B539E00FFFE0A32707FE000313006C48EB00FC5E00015D7F00005DA2
1670 6D13016D5CA26D6C485AA2ECC007011F91C7FCA290380FE00EA2ECF01E0107131CA26D6C
1671 5AA2ECFC7801011370A2ECFEF001005BA2EC7FC0A36E5AA26EC8FCA3140E2B287EA630>
1672 I<B53BC3FFFE03FFF8A3290FFE003FE00013C06C486D48EB3F806C4817006D010F141E00
1673 016F131C15076D163C00004A6C1338A2017F5E4B7E151DD93F805DED3DFC1538D91FC04A
1674 5AED78FE9238707E03D90FE0017F5BEDE03F02F0140701070387C7FC9138F1C01F02F914
1675 8F010315CE9138FB800F02FF14DE6D15FCED00076D5DA24A1303027E5CA2027C1301023C
1676 5C023813003D287EA642>I<B539F01FFFE0A30003D9C00F1300C690388007F8D97F0013
1677 E002805BD93FC05B011F49C7FC90380FE00EECF01E6D6C5A01035B6D6C5A6E5AEB00FF6E
1678 5A6E5A81141F814A7E81147BECF1FC903801E1FEECC0FF01037F49486C7ED90F007F011E
1679 6D7E013E130F496D7E01FC80486C80000F4A7EB539803FFFF8A32D277FA630>I<B539E0
1680 0FFFE0A32707FE000313006C48EB01FC6F5A00015D7F00005DA2017F495AA2EC8003013F
1681 5CA26D6C48C7FCA26E5A010F130EA26D6C5AA2ECF83C01031338A26D6C5AA2ECFEF00100
1682 5BA2EC7FC0A36E5AA36EC8FCA2140EA2141E141C143C1438A2147800181370127EB45BA2
1683 495AA248485AD87E07C9FCEA780EEA3C3CEA1FF8EA07E02B3A7EA630>I<001FB61280A2
1684 EBE0000180140049485A001E495A121C4A5A003C495A141F00385C4A5A147F5D4AC7FCC6
1685 485AA2495A495A130F5C495A90393FC00380A2EB7F80EBFF005A5B484813071207491400
1686 485A48485BA248485B4848137F00FF495A90B6FCA221277EA628>I<B812F0A22C028098
1687 2D>I<BE12C0A25A0280985B>I E
1688 %EndDVIPSBitmapFont
1689 %DVIPSBitmapFont: Fo cmbx12 20.736 13
1690 /Fo 13 122 df<BF12FCA48AA4C7003F0280C8123F1B01F3003F1C07767F1C0089898989
1691 89A2891F8089A289A31E7FA21FC0A21E3FA3F20FF0A3F61FE0A49BC7FCA21A1FA31A3FA2
1692 1A7FA21AFF1903190F197F94B7FCA8943880007F190F190319001A7FA21A3FA21A1FA31A
1693 0FA997CBFCB3A9BBFCA86B757AF47A>70 D<BA12F8A8C7001F02C0C7FCB3B3B3B3B3ACBA
1694 12F8A83D767BF548>73 D<BBFCA8C7003F0280CCFCB3B3B3A9F507F8A41D0F1EF0A61D1F
1695 A31EE01D3FA31D7FA31DFFA25213C0A26464A26464646499B5FC09031480631B1F1B7F08
1696 03B6FC1A7FBFFCA31E00A565767AF574>76 D<922603FFF8150E037FD9FFC0143F0203B6
1697 00FC5C021F03FF5C027FEEC00149B8EAF00349EFFC07010FDA000F13FE4901F09039007F
1698 FF8F4901C0020F13DF4990C8000390B5FC494815004801F8163F48844A8248498248844A
1699 8248844A834885A291CB7E5A86A286B5FC8680A28680A280A26E8380806E187E6E95C7FC
1700 6C8015E015FCEDFFC06C15FCEEFFE06C16FF18F06CEFFF8019F06C18FE737E6C856C19F0
1701 6C19FC6D846D846D856D856D850101856D85023F846E841407020084031F18801500040F
1702 17C0EE007F050716E0EF003F1803DE007F14F0191F8585070114F8A28586007E85B4FC86
1703 A286A37F86A36D1AF0A37F1CE06D60A26D1AC06D607F6D1A806E5F6E4D13006E606E17FF
1704 02FC4C5B02FF4C5B03E04B5B03FC031F5B01FBD9FF80027F5B01F102FE0107B55AD9E07F
1705 90B8C7FC6E17FCD9C00F5FD9800317E090C76C168048020F4BC8FC48020015F000700303
1706 49C9FC557A75F76C>83 D<001FC012F8A7481FFC03F0C76C91C7120F92C8EF007F02F81B
1707 1F02E01B0702801B0191C984491D7F491D3F491D1FA2491D0FA2491D07007F1FFEA2491D
1708 03A4491D01A700FF1FFF90CA85A6CB1A00B3B3B3AD4ABC12C0A8787479F387>I<BA00E0
1709 030FB8FCA8C7003F0280CC003FEBC000E503FCC7FCB3B3B3B3A46E1C0768A2836E1C0F68
1710 A26E1C1F7162A26E1C3F714F5A806E525A71606F6D97C8FC6F505A7118076F6D4E5A6F6E
1711 EF3FF86F6E4D5A6F6EEE01FF6F02F84C5B6F02FE041F5B043F6D6C037F90C9FC7002F091
1712 3807FFFE0407DAFF8090B55A040192B712F07061051F188005074DCAFC050017F0061F16
1713 C0060103FCCBFCDE000391CCFC88787AF595>I<92383FFFF80207B612E0027F15FC49B8
1714 7E010717E0011F83499026F0007F13FC4948C7000F7F90B502036D7E486E6D806F6D8072
1715 7F486E6E7F8486727FA28684A26C5C72806C5C6D90C8FC6D5AEB0FF8EB03E090CAFCA705
1716 07B6FC041FB7FC0303B8FC157F0203B9FC021FECFE0391B612800103ECF800010F14C049
1717 91C7FC017F13FC90B512F04814C0485C4891C8FC485B5A485B5C5A5CA2B5FC5CA360A36E
1718 5DA26C5F6E5D187E6C6D846E4A48806C6D4A4814FC6C6ED90FF0ECFFFC6C02E090263FE0
1719 7F14FE00019139FC03FFC06C91B6487E013F4B487E010F4B1307010303F01301D9003F02
1720 80D9003F13FC020101F8CBFC57507ACE5E>97 D<903801FFFCB6FCA8C67E131F7FB3ADF0
1721 FFFC050FEBFFE0057F14FE0403B77E040F16E0043F16F84CD9007F13FE9226FDFFF00107
1722 7F92B500C001018094C86C13E004FC6F7F4C6F7F04E06F7F4C6F7F5E747F93C915804B70
1723 14C0A27414E0A21DF087A21DF8A31DFC87A41DFEAF1DFCA4631DF8A31DF098B5FC1DE0A2
1724 5014C0A26F1980501400705D705F704B5B505B704B5B04FC4B5BDBE7FE92B55A9226C3FF
1725 8001035C038101E0011F49C7FC9226807FFC90B55A4B6CB712F04A010F16C04A010393C8
1726 FC4A010015F84A023F14C090C9000301F0C9FC5F797AF76C>I<93387FFF80030FB512FC
1727 037FECFF804AB712E0020716F8021F16FE027FD9F8077F49B5D8C000804991C7003F13E0
1728 4901FC020F7F49496E7F49498049496E7F49496E7F90B55A48727E92C914804884485B1B
1729 C048841BE0485BA27313F05AA25C5AA21BF885A2B5FCA391BAFCA41BF002F8CCFCA67EA3
1730 807EA47E806CF103F0F207F86C7F1A0F6C6E17F06C191F6F17E06C6E163F6D6DEE7FC06D
1731 6D16FF6D6D4B13806D6D4B13006D6D6CEC0FFE6D02E0EC3FFC6D02F8ECFFF86D9126FFC0
1732 0F5B023F91B65A020F178002034CC7FC020016F8031F15E0030392C8FCDB000F13E04D50
1733 7BCE58>101 D<903801FFFCB6FCA8C67E131F7FB3AD95380FFFE095B512FE05036E7E05
1734 0F15E0053F15F84D81932701FFF01F7F4CD900077FDC07FC6D80DC0FF06D80DC1FC07F4C
1735 48824CC8FC047E6F7F5EEDFDF85E03FF707F5EA25EA25EA293C9FCA45DB3B3A6B8D8E003
1736 B81280A8617879F76C>104 D<EB01FCEB07FF011F13C0497F497F90B57EA24880A24880
1737 A76C5CA26C5CA26D5B6D5B6D5B010790C8FCEB01FC90CAFCB2903801FFFC007FB5FCA8C6
1738 7E131F7FB3B3B3A5B81280A8297979F835>I<902601FFF8EB07FEB691383FFFC094B512
1739 F00403804C14FE4C8093261FFC3F138093263FE07F13C0DC7F80B5FCC66C5D011FDAFE01
1740 14E06DEBF9FC16F815FB16F016E015FF16C07114C05E72138095381FFE0093C76C5AF001
1741 E095C8FCA25DA65DB3B3A2B812F8A8434E7ACD4F>114 D<B892B612F8A8D8001F49C900
1742 03EBF0006D6D04001380A26D6E94C7FC626D6E5E1A03A26D6E4B5AA26D6E4B5AA26E6D5E
1743 1A1F6E6D5E1A3F6E6070157FA26E6D4B5AA26E6E4990C8FCA26E6E5C19036E6E5C1907A2
1744 6E6E495AA26F6D495AA26F6D5C193F6F6D5C197F6F5E7113FFA26F028190C9FCA26FECC3
1745 FEA26FECE3FC18E76FECF7F818FFA2705CA2705CA2705CA2705CA37091CAFCA2705BA270
1746 5BA2705BA2715AA3715AA24D5AA26017FF95CBFC5EA24C5AEA03F8D80FFE4A5A487E486D
1747 495A487F5FB56C131F5F163F4C5AA24C5A4B90CCFC6C49485A4B5AEC800F6C9038003FF8
1748 49EBFFF0261FFC0713C06CB65A6C92CDFC6C14FCC614F0013F13C0D907FCCEFC5D6F7CCC
1749 66>121 D E
1750 %EndDVIPSBitmapFont
1752 %%EndProlog
1753 %%BeginSetup
1754 %%Feature: *Resolution 600dpi
1755 TeXDict begin
1756 %%PaperSize: A4
1758 %%EndSetup
1759 %%Page: 1 1
1760 1 0 bop 150 1318 a Fo(The)64 b(SUIF)g(Library)p 150 1418
1761 3600 34 v 1364 1515 a Fn(A)30 b(set)h(of)g(core)g(routines)e(for)h
1762 (manipulating)e Fm(suif)h Fn(data)j(structures)1350 2418
1764  9472573 4831010 0 41639854 20129218 52099153 startTexFig
1765  1350 2418 a
1766 %%BeginDocument: suif_logo.epsf
1767 %!PS-Adobe-2.0 EPSF-1.2
1768 %%BoundingBox: 0 633 306 792
1769 %%DocumentFonts: (atend)
1770 %%EndComments
1772 % FrameMaker PostScript Prolog 3.0, for use with FrameMaker 3.0
1773 % Copyright (c) 1986,87,89,90,91 by Frame Technology Corporation.
1774 % All rights reserved.
1776 % Modified to be sort of EPSF-compliant by bwilson@shasta.stanford.edu
1778 % Known Problems:
1779 %       - setscreen and settransfer are not EPSF-compliant but I think they
1780 %         will work anyway.
1781 %       - since Frame doesn't really calculate bounding boxes, you need to
1782 %         edit the output and manually determine the size of the bounding box
1784 /FMversion (3.0) def 
1785 % Set up Color vs. Black-and-White
1786         /FMPrintInColor systemdict /colorimage known
1787                 systemdict /currentcolortransfer known or def
1788 % Uncomment this line to force b&w on color printer
1789 %   /FMPrintInColor false def
1790 /FrameDict 195 dict def 
1791 systemdict /errordict known not {/errordict 10 dict def
1792                 errordict /rangecheck {stop} put} if
1793 % The readline in 23.0 doesn't recognize cr's as nl's on AppleTalk
1794 FrameDict /tmprangecheck errordict /rangecheck get put 
1795 errordict /rangecheck {FrameDict /bug true put} put 
1796 FrameDict /bug false put 
1797 mark 
1798 % Some PS machines read past the CR, so keep the following 3 lines together!
1799 currentfile 5 string readline
1801 0000000000
1802 cleartomark 
1803 errordict /rangecheck FrameDict /tmprangecheck get put 
1804 FrameDict /bug get { 
1805         /readline {
1806                 /gstring exch def
1807                 /gfile exch def
1808                 /gindex 0 def
1809                 {
1810                         gfile read pop 
1811                         dup 10 eq {exit} if 
1812                         dup 13 eq {exit} if 
1813                         gstring exch gindex exch put 
1814                         /gindex gindex 1 add def 
1815                 } loop
1816                 pop 
1817                 gstring 0 gindex getinterval true 
1818                 } def
1819         } if
1820 /FMVERSION {
1821         FMversion ne {
1822                 /Times-Roman findfont 18 scalefont setfont
1823                 100 100 moveto
1824                 (FrameMaker version does not match postscript_prolog!)
1825                 dup =
1826                 show showpage
1827                 } if
1828         } def 
1829 /FMLOCAL {
1830         FrameDict begin
1831         0 def 
1832         end 
1833         } def 
1834         /gstring FMLOCAL
1835         /gfile FMLOCAL
1836         /gindex FMLOCAL
1837         /orgxfer FMLOCAL
1838         /orgproc FMLOCAL
1839         /organgle FMLOCAL
1840         /orgfreq FMLOCAL
1841 /FMDOCUMENT { 
1842         array /FMfonts exch def 
1843         FrameDict begin
1844         pop
1845         pop
1846         pop
1847         pop
1848         /yscale exch def
1849         /xscale exch def
1850         currenttransfer cvlit /orgxfer exch def
1851         currentscreen cvlit /orgproc exch def
1852         /organgle exch def /orgfreq exch def
1853         end 
1854         } def 
1855         /pagesave FMLOCAL
1856         /orgmatrix FMLOCAL
1857         /landscape FMLOCAL
1858 /FMBEGINPAGE { 
1859         FrameDict begin 
1860         /pagesave save def
1861         3.86 setmiterlimit
1862         pop pop pop
1863         /landscape false def
1864         xscale yscale scale
1865         /orgmatrix matrix def
1866         gsave 
1867         } def 
1868 /FMENDPAGE {
1869         grestore 
1870         pagesave restore
1871         end 
1872         showpage
1873         } def 
1874 /FMFONTDEFINE { 
1875         FrameDict begin
1876         findfont 
1877         ReEncode 
1878         1 index exch 
1879         definefont 
1880         FMfonts 3 1 roll 
1881         put
1882         end 
1883         } def 
1884 /FMFILLS {
1885         FrameDict begin
1886         array /fillvals exch def
1887         end 
1888         } def 
1889 /FMFILL {
1890         FrameDict begin
1891         fillvals 3 1 roll put
1892         end 
1893         } def 
1894 /FMNORMALIZEGRAPHICS { 
1895         newpath
1896         0.0 0.0 moveto
1897         1 setlinewidth
1898         0 setlinecap
1899         0 0 0 sethsbcolor
1900         0 setgray 
1901         } bind def
1902         /fx FMLOCAL
1903         /fy FMLOCAL
1904         /fh FMLOCAL
1905         /fw FMLOCAL
1906         /llx FMLOCAL
1907         /lly FMLOCAL
1908         /urx FMLOCAL
1909         /ury FMLOCAL
1910 /FMBEGINEPSF { 
1911         end 
1912         /FMEPSF save def 
1913         /showpage {} def 
1914         FMNORMALIZEGRAPHICS 
1915         [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall 
1916         fx fy translate 
1917         rotate
1918         fw urx llx sub div fh ury lly sub div scale 
1919         llx neg lly neg translate 
1920         } bind def
1921 /FMENDEPSF {
1922         FMEPSF restore
1923         FrameDict begin 
1924         } bind def
1925 FrameDict begin 
1926 /max {2 copy lt {exch} if pop} bind def
1927 /min {2 copy gt {exch} if pop} bind def
1928 /inch {72 mul} def
1929 /savematrix {
1930         orgmatrix currentmatrix pop
1931         } bind def
1932 /restorematrix {
1933         orgmatrix setmatrix
1934         } bind def
1935 /dmatrix matrix def
1936 /dpi    72 0 dmatrix defaultmatrix dtransform
1937     dup mul exch   dup mul add   sqrt def
1938 /freq dpi 18.75 div 8 div round dup 0 eq {pop 1} if 8 mul dpi exch div def
1939 /sangle 1 0 dmatrix defaultmatrix dtransform exch atan def
1940 /DiacriticEncoding [
1941 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1942 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1943 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1944 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1945 /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl
1946 /numbersign /dollar /percent /ampersand /quotesingle /parenleft
1947 /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
1948 /two /three /four /five /six /seven /eight /nine /colon /semicolon
1949 /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K
1950 /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash
1951 /bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h
1952 /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar
1953 /braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute
1954 /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis
1955 /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis
1956 /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve
1957 /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex
1958 /udieresis /dagger /.notdef /cent /sterling /section /bullet
1959 /paragraph /germandbls /registered /copyright /trademark /acute
1960 /dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef
1961 /yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
1962 /ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown
1963 /exclamdown /logicalnot /.notdef /florin /.notdef /.notdef
1964 /guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde
1965 /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright
1966 /quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis
1967 /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl
1968 /periodcentered /quotesinglbase /quotedblbase /perthousand
1969 /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute
1970 /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve
1971 /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron
1972 /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron
1973 ] def
1974 /ReEncode { 
1975         dup 
1976         length 
1977         dict begin 
1978         {
1979         1 index /FID ne 
1980                 {def} 
1981                 {pop pop} ifelse 
1982         } forall 
1983         0 eq {/Encoding DiacriticEncoding def} if 
1984         currentdict 
1985         end 
1986         } bind def
1987 /graymode true def
1988         /bwidth FMLOCAL
1989         /bpside FMLOCAL
1990         /bstring FMLOCAL
1991         /onbits FMLOCAL
1992         /offbits FMLOCAL
1993         /xindex FMLOCAL
1994         /yindex FMLOCAL
1995         /x FMLOCAL
1996         /y FMLOCAL
1997 /setpattern {
1998          /bwidth  exch def
1999          /bpside  exch def
2000          /bstring exch def
2001          /onbits 0 def  /offbits 0 def
2002          freq sangle landscape {90 add} if 
2003                 {/y exch def
2004                  /x exch def
2005                  /xindex x 1 add 2 div bpside mul cvi def
2006                  /yindex y 1 add 2 div bpside mul cvi def
2007                  bstring yindex bwidth mul xindex 8 idiv add get
2008                  1 7 xindex 8 mod sub bitshift and 0 ne
2009                  {/onbits  onbits  1 add def 1}
2010                  {/offbits offbits 1 add def 0}
2011                  ifelse
2012                 }
2013                 setscreen
2014          {} settransfer
2015          offbits offbits onbits add div FMsetgray
2016         /graymode false def
2017         } bind def
2018 /grayness {
2019         FMsetgray
2020         graymode not {
2021                 /graymode true def
2022                 orgxfer cvx settransfer
2023                 orgfreq organgle orgproc cvx setscreen
2024                 } if
2025         } bind def
2026         /HUE FMLOCAL
2027         /SAT FMLOCAL
2028         /BRIGHT FMLOCAL
2029         /Colors FMLOCAL
2030 FMPrintInColor
2032         {
2033         /HUE 0 def
2034         /SAT 0 def
2035         /BRIGHT 0 def
2036         % array of arrays Hue and Sat values for the separations [HUE BRIGHT]
2037         /Colors   
2038         [[0    0  ]    % black
2039          [0    0  ]    % white
2040          [0.00 1.0]    % red
2041          [0.37 1.0]    % green
2042          [0.60 1.0]    % blue
2043          [0.50 1.0]    % cyan
2044          [0.83 1.0]    % magenta
2045          [0.16 1.0]    % comment / yellow
2046          ] def
2047       
2048         /BEGINBITMAPCOLOR { 
2049                 BITMAPCOLOR} def
2050         /BEGINBITMAPCOLORc { 
2051                 BITMAPCOLORc} def
2052         /BEGINBITMAPTRUECOLOR { 
2053                 BITMAPTRUECOLOR } def
2054         /BEGINBITMAPTRUECOLORc { 
2055                 BITMAPTRUECOLORc } def
2056         /K { 
2057                 Colors exch get dup
2058                 0 get /HUE exch store 
2059                 1 get /BRIGHT exch store
2060                   HUE 0 eq BRIGHT 0 eq and
2061                         {1.0 SAT sub setgray}
2062                         {HUE SAT BRIGHT sethsbcolor} 
2063                   ifelse
2064                 } def
2065         /FMsetgray { 
2066                 /SAT exch 1.0 exch sub store 
2067                   HUE 0 eq BRIGHT 0 eq and
2068                         {1.0 SAT sub setgray}
2069                         {HUE SAT BRIGHT sethsbcolor} 
2070                   ifelse
2071                 } bind def
2072         }
2073         
2074         {
2075         /BEGINBITMAPCOLOR { 
2076                 BITMAPGRAY} def
2077         /BEGINBITMAPCOLORc { 
2078                 BITMAPGRAYc} def
2079         /BEGINBITMAPTRUECOLOR { 
2080                 BITMAPTRUEGRAY } def
2081         /BEGINBITMAPTRUECOLORc { 
2082                 BITMAPTRUEGRAYc } def
2083         /FMsetgray {setgray} bind def
2084         /K { 
2085                 pop
2086                 } def
2087         }
2088 ifelse
2089 /normalize {
2090         transform round exch round exch itransform
2091         } bind def
2092 /dnormalize {
2093         dtransform round exch round exch idtransform
2094         } bind def
2095 /lnormalize { 
2096         0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop
2097         } bind def
2098 /H { 
2099         lnormalize setlinewidth
2100         } bind def
2101 /Z {
2102         setlinecap
2103         } bind def
2104         /fillvals FMLOCAL
2105 /X { 
2106         fillvals exch get
2107         dup type /stringtype eq
2108         {8 1 setpattern} 
2109         {grayness}
2110         ifelse
2111         } bind def
2112 /V { 
2113         gsave eofill grestore
2114         } bind def
2115 /N { 
2116         stroke
2117         } bind def
2118 /M {newpath moveto} bind def
2119 /E {lineto} bind def
2120 /D {curveto} bind def
2121 /O {closepath} bind def
2122         /n FMLOCAL
2123 /L { 
2124         /n exch def
2125         newpath
2126         normalize
2127         moveto 
2128         2 1 n {pop normalize lineto} for
2129         } bind def
2130 /Y { 
2131         L 
2132         closepath
2133         } bind def
2134         /x1 FMLOCAL
2135         /x2 FMLOCAL
2136         /y1 FMLOCAL
2137         /y2 FMLOCAL
2138         /rad FMLOCAL
2139 /R { 
2140         /y2 exch def
2141         /x2 exch def
2142         /y1 exch def
2143         /x1 exch def
2144         x1 y1
2145         x2 y1
2146         x2 y2
2147         x1 y2
2148         4 Y 
2149         } bind def
2150 /RR { 
2151         /rad exch def
2152         normalize
2153         /y2 exch def
2154         /x2 exch def
2155         normalize
2156         /y1 exch def
2157         /x1 exch def
2158         newpath
2159         x1 y1 rad add moveto
2160         x1 y2 x2 y2 rad arcto
2161         x2 y2 x2 y1 rad arcto
2162         x2 y1 x1 y1 rad arcto
2163         x1 y1 x1 y2 rad arcto
2164         closepath
2165         16 {pop} repeat
2166         } bind def
2167 /C { 
2168         grestore
2169         gsave
2170         R 
2171         clip
2172         } bind def
2173         /FMpointsize FMLOCAL
2174 /F { 
2175         FMfonts exch get
2176         FMpointsize scalefont
2177         setfont
2178         } bind def
2179 /Q { 
2180         /FMpointsize exch def
2181         F 
2182         } bind def
2183 /T { 
2184         moveto show
2185         } bind def
2186 /RF { 
2187         rotate
2188         0 ne {-1 1 scale} if
2189         } bind def
2190 /TF { 
2191         gsave
2192         moveto 
2193         RF
2194         show
2195         grestore
2196         } bind def
2197 /P { 
2198         moveto
2199         0 32 3 2 roll widthshow
2200         } bind def
2201 /PF { 
2202         gsave
2203         moveto 
2204         RF
2205         0 32 3 2 roll widthshow
2206         grestore
2207         } bind def
2208 /S { 
2209         moveto
2210         0 exch ashow
2211         } bind def
2212 /SF { 
2213         gsave
2214         moveto
2215         RF
2216         0 exch ashow
2217         grestore
2218         } bind def
2219 /B { 
2220         moveto
2221         0 32 4 2 roll 0 exch awidthshow
2222         } bind def
2223 /BF { 
2224         gsave
2225         moveto
2226         RF
2227         0 32 4 2 roll 0 exch awidthshow
2228         grestore
2229         } bind def
2230 /G { 
2231         gsave
2232         newpath
2233         normalize translate 0.0 0.0 moveto 
2234         dnormalize scale 
2235         0.0 0.0 1.0 5 3 roll arc 
2236         closepath fill
2237         grestore
2238         } bind def
2239 /A { 
2240         gsave
2241         savematrix
2242         newpath
2243         2 index 2 div add exch 3 index 2 div sub exch 
2244         normalize 2 index 2 div sub exch 3 index 2 div add exch 
2245         translate 
2246         scale 
2247         0.0 0.0 1.0 5 3 roll arc 
2248         restorematrix
2249         stroke
2250         grestore
2251         } bind def
2252         /x FMLOCAL
2253         /y FMLOCAL
2254         /w FMLOCAL
2255         /h FMLOCAL
2256         /xx FMLOCAL
2257         /yy FMLOCAL
2258         /ww FMLOCAL
2259         /hh FMLOCAL
2260         /FMsaveobject FMLOCAL
2261         /FMoptop FMLOCAL
2262         /FMdicttop FMLOCAL
2263 /BEGINPRINTCODE { 
2264         /FMdicttop countdictstack 1 add def 
2265         /FMoptop count 4 sub def 
2266         /FMsaveobject save def
2267         userdict begin 
2268         /showpage {} def 
2269         FMNORMALIZEGRAPHICS 
2270         3 index neg 3 index neg translate
2271         } bind def
2272 /ENDPRINTCODE {
2273         count -1 FMoptop {pop pop} for 
2274         countdictstack -1 FMdicttop {pop end} for 
2275         FMsaveobject restore 
2276         } bind def
2277 /gn { 
2278         0 
2279         {       46 mul 
2280                 cf read pop 
2281                 32 sub 
2282                 dup 46 lt {exit} if 
2283                 46 sub add 
2284                 } loop
2285         add 
2286         } bind def
2287         /str FMLOCAL
2288 /cfs { 
2289         /str sl string def 
2290         0 1 sl 1 sub {str exch val put} for 
2291         str def 
2292         } bind def
2293 /ic [ 
2294         0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
2295         0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
2296         0
2297         {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx}
2298         {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx}
2299         {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12}
2300         {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh}
2301         {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh}
2302         {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl}
2303         {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl}
2304         {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl}
2305         {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl}
2306         ] def
2307         /sl FMLOCAL
2308         /val FMLOCAL
2309         /ws FMLOCAL
2310         /im FMLOCAL
2311         /bs FMLOCAL
2312         /cs FMLOCAL
2313         /len FMLOCAL
2314         /pos FMLOCAL
2315 /ms { 
2316         /sl exch def 
2317         /val 255 def 
2318         /ws cfs 
2319         /im cfs 
2320         /val 0 def 
2321         /bs cfs 
2322         /cs cfs 
2323         } bind def
2324 400 ms 
2325 /ip { 
2326         is 
2327         0 
2328         cf cs readline pop 
2329         {       ic exch get exec 
2330                 add 
2331                 } forall 
2332         pop 
2333         
2334         } bind def
2335 /wh { 
2336         /len exch def 
2337         /pos exch def 
2338         ws 0 len getinterval im pos len getinterval copy pop
2339         pos len 
2340         } bind def
2341 /bl { 
2342         /len exch def 
2343         /pos exch def 
2344         bs 0 len getinterval im pos len getinterval copy pop
2345         pos len 
2346         } bind def
2347 /s1 1 string def
2348 /fl { 
2349         /len exch def 
2350         /pos exch def 
2351         /val cf s1 readhexstring pop 0 get def
2352         pos 1 pos len add 1 sub {im exch val put} for
2353         pos len 
2354         } bind def
2355 /hx { 
2356         3 copy getinterval 
2357         cf exch readhexstring pop pop 
2358         } bind def
2359         /h FMLOCAL
2360         /w FMLOCAL
2361         /d FMLOCAL
2362         /lb FMLOCAL
2363         /bitmapsave FMLOCAL
2364         /is FMLOCAL
2365         /cf FMLOCAL
2366 /wbytes { 
2367         dup 
2368         8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse
2369         } bind def
2370 /BEGINBITMAPBWc { 
2371         1 {} COMMONBITMAPc
2372         } bind def
2373 /BEGINBITMAPGRAYc { 
2374         8 {} COMMONBITMAPc
2375         } bind def
2376 /BEGINBITMAP2BITc { 
2377         2 {} COMMONBITMAPc
2378         } bind def
2379 /COMMONBITMAPc { 
2380         /r exch def
2381         /d exch def
2382         gsave
2383         translate rotate scale /h exch def /w exch def
2384         /lb w d wbytes def 
2385         sl lb lt {lb ms} if 
2386         /bitmapsave save def 
2387         r                    
2388         /is im 0 lb getinterval def 
2389         ws 0 lb getinterval is copy pop 
2390         /cf currentfile def 
2391         w h d [w 0 0 h neg 0 h] 
2392         {ip} image 
2393         bitmapsave restore 
2394         grestore
2395         } bind def
2396 /BEGINBITMAPBW { 
2397         1 {} COMMONBITMAP
2398         } bind def
2399 /BEGINBITMAPGRAY { 
2400         8 {} COMMONBITMAP
2401         } bind def
2402 /BEGINBITMAP2BIT { 
2403         2 {} COMMONBITMAP
2404         } bind def
2405 /COMMONBITMAP { 
2406         /r exch def
2407         /d exch def
2408         gsave
2409         translate rotate scale /h exch def /w exch def
2410         /bitmapsave save def 
2411         r                    
2412         /is w d wbytes string def
2413         /cf currentfile def 
2414         w h d [w 0 0 h neg 0 h] 
2415         {cf is readhexstring pop} image
2416         bitmapsave restore 
2417         grestore
2418         } bind def
2419         /proc1 FMLOCAL
2420         /proc2 FMLOCAL
2421         /newproc FMLOCAL
2422 /Fmcc {
2423     /proc2 exch cvlit def
2424     /proc1 exch cvlit def
2425     /newproc proc1 length proc2 length add array def
2426     newproc 0 proc1 putinterval
2427     newproc proc1 length proc2 putinterval
2428     newproc cvx
2429 } bind def
2430 /ngrayt 256 array def
2431 /nredt 256 array def
2432 /nbluet 256 array def
2433 /ngreent 256 array def
2434         /gryt FMLOCAL
2435         /blut FMLOCAL
2436         /grnt FMLOCAL
2437         /redt FMLOCAL
2438         /indx FMLOCAL
2439         /cynu FMLOCAL
2440         /magu FMLOCAL
2441         /yelu FMLOCAL
2442         /k FMLOCAL
2443         /u FMLOCAL
2444 /colorsetup {
2445         currentcolortransfer
2446         /gryt exch def
2447         /blut exch def
2448         /grnt exch def
2449         /redt exch def
2450         0 1 255 {
2451                 /indx exch def
2452                 /cynu 1 red indx get 255 div sub def
2453                 /magu 1 green indx get 255 div sub def
2454                 /yelu 1 blue indx get 255 div sub def
2455                 /k cynu magu min yelu min def
2456                 /u k currentundercolorremoval exec def
2457                 nredt indx 1 0 cynu u sub max sub redt exec put
2458                 ngreent indx 1 0 magu u sub max sub grnt exec put
2459                 nbluet indx 1 0 yelu u sub max sub blut exec put
2460                 ngrayt indx 1 k currentblackgeneration exec sub gryt exec put
2461         } for
2462         {255 mul cvi nredt exch get}
2463         {255 mul cvi ngreent exch get}
2464         {255 mul cvi nbluet exch get}
2465         {255 mul cvi ngrayt exch get}
2466         setcolortransfer
2467         {pop 0} setundercolorremoval
2468         {} setblackgeneration
2469         } bind def
2470         /tran FMLOCAL
2471 /fakecolorsetup {
2472         /tran 256 string def
2473         0 1 255 {/indx exch def 
2474                 tran indx
2475                 red indx get 77 mul
2476                 green indx get 151 mul
2477                 blue indx get 28 mul
2478                 add add 256 idiv put} for
2479         currenttransfer
2480         {255 mul cvi tran exch get 255.0 div}
2481         exch Fmcc settransfer
2482 } bind def
2483 /BITMAPCOLOR { 
2484         /d 8 def
2485         gsave
2486         translate rotate scale /h exch def /w exch def
2487         /bitmapsave save def 
2488         colorsetup
2489         /is w d wbytes string def
2490         /cf currentfile def 
2491         w h d [w 0 0 h neg 0 h] 
2492         {cf is readhexstring pop} {is} {is} true 3 colorimage 
2493         bitmapsave restore 
2494         grestore
2495         } bind def
2496 /BITMAPCOLORc { 
2497         /d 8 def
2498         gsave
2499         translate rotate scale /h exch def /w exch def
2500         /lb w d wbytes def 
2501         sl lb lt {lb ms} if 
2502         /bitmapsave save def 
2503         colorsetup
2504         /is im 0 lb getinterval def 
2505         ws 0 lb getinterval is copy pop 
2506         /cf currentfile def 
2507         w h d [w 0 0 h neg 0 h] 
2508         {ip} {is} {is} true 3 colorimage
2509         bitmapsave restore 
2510         grestore
2511         } bind def
2512 /BITMAPTRUECOLORc { 
2513         gsave
2514         translate rotate scale /h exch def /w exch def
2515         /bitmapsave save def 
2516         
2517         /is w string def
2518         
2519         ws 0 w getinterval is copy pop 
2520         /cf currentfile def 
2521         w h 8 [w 0 0 h neg 0 h] 
2522         {ip} {gip} {bip} true 3 colorimage
2523         bitmapsave restore 
2524         grestore
2525         } bind def
2526 /BITMAPTRUECOLOR { 
2527         gsave
2528         translate rotate scale /h exch def /w exch def
2529         /bitmapsave save def 
2530         /is w string def
2531         /gis w string def
2532         /bis w string def
2533         /cf currentfile def 
2534         w h 8 [w 0 0 h neg 0 h] 
2535         { cf is readhexstring pop } 
2536         { cf gis readhexstring pop } 
2537         { cf bis readhexstring pop } 
2538         true 3 colorimage 
2539         bitmapsave restore 
2540         grestore
2541         } bind def
2542 /BITMAPTRUEGRAYc { 
2543         gsave
2544         translate rotate scale /h exch def /w exch def
2545         /bitmapsave save def 
2546         
2547         /is w string def
2548         
2549         ws 0 w getinterval is copy pop 
2550         /cf currentfile def 
2551         w h 8 [w 0 0 h neg 0 h] 
2552         {ip gip bip w gray} image
2553         bitmapsave restore 
2554         grestore
2555         } bind def
2556 /ww FMLOCAL
2557 /r FMLOCAL
2558 /g FMLOCAL
2559 /b FMLOCAL
2560 /i FMLOCAL
2561 /gray { 
2562         /ww exch def
2563         /b exch def
2564         /g exch def
2565         /r exch def
2566         0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul
2567                         b i get .114 mul add add r i 3 -1 roll floor cvi put } for
2568         r
2569         } bind def
2570 /BITMAPTRUEGRAY { 
2571         gsave
2572         translate rotate scale /h exch def /w exch def
2573         /bitmapsave save def 
2574         /is w string def
2575         /gis w string def
2576         /bis w string def
2577         /cf currentfile def 
2578         w h 8 [w 0 0 h neg 0 h] 
2579         { cf is readhexstring pop 
2580           cf gis readhexstring pop 
2581           cf bis readhexstring pop w gray}  image
2582         bitmapsave restore 
2583         grestore
2584         } bind def
2585 /BITMAPGRAY { 
2586         8 {fakecolorsetup} COMMONBITMAP
2587         } bind def
2588 /BITMAPGRAYc { 
2589         8 {fakecolorsetup} COMMONBITMAPc
2590         } bind def
2591 /ENDBITMAP {
2592         } bind def
2593 end 
2594         /ALDsave FMLOCAL
2595         /ALDmatrix matrix def ALDmatrix currentmatrix pop
2596 /StartALD {
2597         /ALDsave save def
2598          savematrix
2599          ALDmatrix setmatrix
2600         } bind def
2601 /InALD {
2602          restorematrix
2603         } bind def
2604 /DoneALD {
2605          ALDsave restore
2606         } bind def
2607 %%EndProlog
2608 %%BeginSetup
2609 (3.0) FMVERSION
2610 1 1 612 792 0 2 3 FMDOCUMENT
2611 0 0 /Times-Bold FMFONTDEFINE
2612 1 0 /Helvetica-Bold FMFONTDEFINE
2613 2 0 /Times-Roman FMFONTDEFINE
2614 32 FMFILLS
2615 0 0 FMFILL
2616 1 0.1 FMFILL
2617 2 0.3 FMFILL
2618 3 0.5 FMFILL
2619 4 0.7 FMFILL
2620 5 0.9 FMFILL
2621 6 0.97 FMFILL
2622 7 1 FMFILL
2623 8 <0f1e3c78f0e1c387> FMFILL
2624 9 <0f87c3e1f0783c1e> FMFILL
2625 10 <cccccccccccccccc> FMFILL
2626 11 <ffff0000ffff0000> FMFILL
2627 12 <8142241818244281> FMFILL
2628 13 <03060c183060c081> FMFILL
2629 14 <8040201008040201> FMFILL
2630 16 1 FMFILL
2631 17 0.9 FMFILL
2632 18 0.7 FMFILL
2633 19 0.5 FMFILL
2634 20 0.3 FMFILL
2635 21 0.1 FMFILL
2636 22 0.03 FMFILL
2637 23 0 FMFILL
2638 24 <f0e1c3870f1e3c78> FMFILL
2639 25 <f0783c1e0f87c3e1> FMFILL
2640 26 <3333333333333333> FMFILL
2641 27 <0000ffff0000ffff> FMFILL
2642 28 <7ebddbe7e7dbbd7e> FMFILL
2643 29 <fcf9f3e7cf9f3f7e> FMFILL
2644 30 <7fbfdfeff7fbfdfe> FMFILL
2645 %%EndSetup
2646 612 792 0 FMBEGINPAGE
2647 2.34 36.97 546.78 787.32 C
2648 2.34 36.97 546.78 787.32 R
2649 7 X
2650 0 K
2652 105.92 771.81 295.84 784.98 R
2653 0 X
2655 0.2 H
2656 2 Z
2658 285.82 773.09 295.83 784.98 R
2659 7 X
2660 1 K
2663 77.62 648.09 290.54 687.52 R
2664 0 X
2665 0 K
2667 90 450 5.06 6.82 113.9 680.79 G
2668 90 450 9.53 9.6 281.01 657.69 G
2669 264.27 648.09 298.02 687.42 R
2670 7 X
2671 1 K
2673 0 K
2674 90 450 32.24 37.1 76.28 685.5 G
2675 0 192 Q
2676 0 X
2677 (S) 4.68 651.69 T
2678 107.45 682.2 114.59 694 R
2679 7 X
2680 1 K
2683 0 X
2684 0 K
2685 90 450 31.81 37.1 264.24 685.19 G
2686 107.69 687.42 305.96 722.97 R
2687 7 X
2688 1 K
2690 1 18 Q
2691 (Compiler System) 122.63 662.75 T
2692 0 X
2693 0 K
2694 90 450 6.01 5.11 114.37 682.31 G
2695 90 450 11.89 11.89 283.95 773.09 G
2696 90 450 11.89 11.89 283.95 773.09 A
2697 100.43 755.81 298.63 771.81 R
2698 7 X
2699 1 K
2701 2 112 Q
2702 0 X
2703 0 K
2704 (U) 104.27 692.85 T
2705 (I) 190.66 692.85 T
2706 (F) 235.18 692.85 T
2707 0 0 612 792 C
2708 FMENDPAGE
2709 %%Trailer
2710 %%DocumentFonts: Times-Bold
2711 %%+ Helvetica-Bold
2712 %%+ Times-Roman
2714 %%EndDocument
2716  endTexFig
2717  1730 3140 a Fn(V)-8 b(ersion)30 b(1.0)150 5068 y Fl(Stanford)45
2718 b(Compiler)h(Group)p 150 5141 3600 17 v eop
2719 %%Page: 2 2
2720 2 1 bop 150 4396 a Fn(This)29 b(man)m(ual)g(is)h(part)g(of)g(the)h
2721 Fm(suif)f Fn(compiler)f(do)s(cumen)m(tation)h(set.)150
2722 4749 y(Cop)m(yrigh)m(t)602 4746 y(c)577 4749 y Fk(\015)g
2723 Fn(1994)i(Stanford)e(Univ)m(ersit)m(y)-8 b(.)40 b(All)29
2724 b(righ)m(ts)h(reserv)m(ed.)150 5103 y(P)m(ermission)k(is)h(giv)m(en)h
2725 (to)h(use,)g(cop)m(y)-8 b(,)39 b(and)d(mo)s(dify)e(this)h(do)s(cumen)m
2726 (tation)g(for)h(an)m(y)g(non-commercial)150 5213 y(purp)s(ose)30
2727 b(as)j(long)f(as)g(this)f(cop)m(yrigh)m(t)i(notice)f(is)f(not)i(remo)m
2728 (v)m(ed.)47 b(All)30 b(other)j(uses,)f(including)d(redistri-)150
2729 5322 y(bution)g(in)g(whole)h(or)g(in)f(part,)h(are)h(forbidden)d
2730 (without)h(prior)g(written)h(p)s(ermission.)p eop
2731 %%Page: 1 3
2732 1 2 bop 150 -116 a Fn(Chapter)30 b(1:)41 b(An)30 b(Ov)m(erview)g(of)g
2733 (SUIF)2225 b(1)150 299 y Fj(1)80 b(An)54 b(Ov)l(erview)f(of)h(SUIF)275
2734 551 y Fn(The)30 b(SUIF)g(compiler)f(system)i(is)f(a)h(\015exible)d
2735 (framew)m(ork)j(for)f(adv)-5 b(anced)31 b(compiler)e(researc)m(h.)42
2736 b(The)150 660 y(primary)27 b(design)g(goal)j(for)e(this)g(compiler)f
2737 (is)h(that)h(it)f(b)s(e)h(easy)g(to)g(use)g(and)f(build)e(up)s(on,)h
2738 (without)h(sac-)150 770 y(ri\014cing)e(its)i(abilit)m(y)f(to)i(compile)
2739 e(real-w)m(orld)g(b)s(enc)m(hmark)g(programs.)40 b(Compared)28
2740 b(to)h(other)f(publicly-)150 880 y(a)m(v)-5 b(ailable)43
2741 b(compilers,)j(SUIF)e(ma)m(y)h(b)s(e)e(somewhat)h(ine\016cien)m(t)g
2742 (and)f(less)g(robust,)k(but)c(it)h(is)f(m)m(uc)m(h)150
2743 989 y(easier)32 b(to)i(mo)s(dify)c(and)i(extend.)48 b(This)30
2744 b(mak)m(es)k(it)e(an)g(ideal)f(platform)h(for)g(ev)-5
2745 b(aluating)32 b(new)g(compiler)150 1099 y(tec)m(hniques.)275
2746 1239 y(The)g(SUIF)h(system)h(is)e(organized)i(as)f(a)h(set)g(of)f
2747 (compiler)f(passes)h(built)e(on)j(top)f(of)h(a)f(k)m(ernel)g(that)150
2748 1349 y(de\014nes)k(the)h(in)m(termediate)g(format.)63
2749 b(The)37 b(passes)h(are)h(implemen)m(ted)d(as)i(separate)h(programs)e
2750 (that)150 1458 y(link)c(with)h(the)h(k)m(ernel)g(con)m(tained)g(in)f
2751 (the)i(SUIF)f(library)-8 b(.)53 b(Eac)m(h)35 b(pass)g(t)m(ypically)f(p)
2752 s(erforms)g(a)h(single)150 1568 y(analysis)d(or)h(transformation)g(and)
2753 g(then)g(writes)g(the)g(results)f(out)i(to)g(a)g(\014le.)49
2754 b(This)32 b(is)g(ine\016cien)m(t)h(but)150 1677 y(\015exible.)68
2755 b(SUIF)40 b(\014les)f(alw)m(a)m(ys)i(use)f(the)g(same)h(output)f
2756 (format)g(so)h(that)f(passes)g(can)h(b)s(e)f(reordered)150
2757 1787 y(simply)30 b(b)m(y)i(running)d(the)k(programs)f(in)f(a)h
2758 (di\013eren)m(t)g(order.)46 b(New)32 b(passes)g(can)h(b)s(e)f(freely)f
2759 (inserted)g(at)150 1897 y(an)m(y)g(p)s(oin)m(t)e(in)g(a)i(compilation.)
2760 275 2037 y(The)e(SUIF)g(library)e(pro)m(vides)h(an)i(ob)5
2761 b(ject-orien)m(ted)30 b(implemen)m(tation)f(of)g(the)h(SUIF)f(in)m
2762 (termediate)150 2147 y(format.)39 b(It)25 b(is)e(written)g(in)g(C)p
2763 Fi(++)p Fn(.)38 b(The)24 b(library)e(de\014nes)h(classes)i(to)g
2764 (represen)m(t)f(all)g(the)g(v)-5 b(arious)24 b(elemen)m(ts)150
2765 2256 y(of)44 b(the)h(in)m(termediate)e(format)i(and)e(to)i(p)s(erform)e
2766 (some)h(common)h(op)s(erations)e(on)h(them.)82 b(It)44
2767 b(also)150 2366 y(con)m(tains)26 b(the)g(co)s(de)g(to)h(read)f(and)f
2768 (write)g(the)h(binary)f(\014les)f(that)j(hold)e(the)h(SUIF)f(co)s(de)i
2769 (b)s(et)m(w)m(een)f(passes)150 2475 y(of)31 b(the)f(compiler.)275
2770 2616 y(This)24 b(do)s(cumen)m(t)i(is)f(a)h(reference)g(man)m(ual)g(for)
2771 g(the)g(SUIF)g(library)-8 b(.)37 b(This)24 b(\014rst)h(c)m(hapter)i
2772 (pro)m(vides)e(an)150 2725 y(o)m(v)m(erview)c(of)g(the)g(SUIF)f(in)m
2773 (termediate)h(represen)m(tation.)37 b(Lik)m(e)21 b(man)m(y)g(other)g
2774 (complex)f(data)h(structures,)150 2835 y(this)h(represen)m(tation)i(is)
2775 e(roughly)g(organized)h(in)f(a)i(hierarc)m(h)m(y)-8 b(.)39
2776 b(Ob)5 b(jects)23 b(near)g(the)h(top)f(of)h(the)f(hierarc)m(h)m(y)150
2777 2945 y(con)m(tain)35 b(the)f(lo)m(w)m(er-lev)m(el)h(ob)5
2778 b(jects.)54 b(The)34 b(v)-5 b(arious)33 b(elemen)m(ts)i(of)g(SUIF)f
2779 (are)h(describ)s(ed)d(here)i(starting)150 3054 y(from)c(the)g(top)h(of)
2780 g(the)f(hierarc)m(h)m(y)g(and)g(w)m(orking)g(do)m(wn.)150
2781 3326 y Fl(1.1)68 b(The)45 b(File)g(Lev)l(el)275 3525
2782 y Fn(SUIF)40 b(is)g(designed)f(to)j(supp)s(ort)d(in)m(terpro)s(cedural)
2783 f(analysis)i(and)g(optimization)g(with)f(separate)150
2784 3634 y(compilation.)i(A)m(t)32 b(the)g(ro)s(ot)f(of)g(the)g(hierarc)m
2785 (h)m(y)g(for)g(a)g(SUIF)g(program)g(is)f(a)i Fh(\014le)e(set)j
2786 Fn(con)m(taining)e(a)g(list)150 3744 y(of)36 b(the)g(\014les)f(b)s
2787 (eing)f(compiled.)56 b(See)36 b(Section)g(2.1)h([File)e(Set],)j(page)f
2788 (7.)58 b(Eac)m(h)36 b(en)m(try)g(within)e(the)i(\014le)150
2789 3854 y(set)d(is)f(a)i Fh(\014le)e(set)h(en)m(try)41 b
2790 Fn(that)33 b(con)m(tains)g(the)g(input)e(and)i(output)f(streams)h(for)g
2791 (a)g(particular)e(\014le.)48 b(See)150 3963 y(Section)30
2792 b(2.2)i([File)d(Set)i(En)m(tries],)f(page)h(8.)275 4104
2793 y(The)g(\014le)f(lev)m(el)h(of)h(the)g(SUIF)f(hierarc)m(h)m(y)g(also)h
2794 (con)m(tains)f(the)h(global)f(sym)m(b)s(ol)f(tables.)44
2795 b(The)31 b(\014le)f(set)150 4213 y(con)m(tains)k(the)f(global)g(sym)m
2796 (b)s(ol)g(table)g(that)h(is)f(shared)g(across)h(all)e(of)i(the)f
2797 (\014les.)50 b(This)31 b(shared)i(sym)m(b)s(ol)150 4323
2798 y(table)j(is)f(the)h(k)m(ey)g(to)h(supp)s(orting)c(in)m(terpro)s
2799 (cedural)h(analysis.)55 b(References)37 b(to)f(a)g(global)f(sym)m(b)s
2800 (ol)g(or)150 4432 y(t)m(yp)s(e)41 b(from)e(di\013eren)m(t)h(\014les)g
2801 (can)g(p)s(oin)m(t)g(to)h(the)f(same)h(en)m(try)g(in)e(the)h(shared)g
2802 (global)g(sym)m(b)s(ol)f(table,)150 4542 y(making)f(it)h(easy)g(to)h
2803 (determine)e(that)h(they)h(refer)e(to)i(the)f(same)g(en)m(tit)m(y)-8
2804 b(.)68 b(Eac)m(h)39 b(\014le)f(set)i(en)m(try)f(also)150
2805 4652 y(con)m(tains)31 b(its)e(o)m(wn)i(sym)m(b)s(ol)e(table)h(for)g
2806 (things)f(declared)h(priv)-5 b(ately)29 b(within)f(that)j(\014le.)275
2807 4792 y(Lo)m(w)m(er)39 b(lev)m(els)f(of)h(the)g(SUIF)f(hierarc)m(h)m(y)g
2808 (can)h(b)s(e)f(reac)m(hed)h(through)f(the)h(global)f(sym)m(b)s(ol)f
2809 (tables.)150 4902 y(Besides)21 b(the)h(t)m(yp)s(es)f(and)g(v)-5
2810 b(ariables,)22 b(the)g(global)f(sym)m(b)s(ol)f(tables)h(con)m(tain)h
2811 (sym)m(b)s(ols)e(for)h(the)h(pro)s(cedures.)150 5011
2812 y(The)38 b(pro)s(cedure)g(b)s(o)s(dies)f(can)i(b)s(e)f(accessed)i
2813 (through)e(these)h(pro)s(cedure)f(sym)m(b)s(ols.)64 b(If)39
2814 b(the)g(b)s(o)s(dy)e(of)150 5121 y(a)44 b(pro)s(cedure)e(is)g(con)m
2815 (tained)i(in)e(one)i(of)f(the)h(input)d(\014les,)46 b(the)e(corresp)s
2816 (onding)d(pro)s(cedure)h(sym)m(b)s(ol)150 5230 y(automatically)34
2817 b(records)g(a)g(p)s(oin)m(ter)f(to)i(the)f(input)e(\014le)h(and)h(pro)m
2818 (vides)f(a)h(metho)s(d)g(to)g(read)g(the)h(b)s(o)s(dy)150
2819 5340 y(in)m(to)45 b(memory)-8 b(.)84 b(The)44 b(pro)s(cedure)g(sym)m(b)
2820 s(ol)f(also)i(has)g(other)g(metho)s(ds)f(to)h(write)f(the)h(b)s(o)s(dy)
2821 f(to)h(an)p eop
2822 %%Page: 2 4
2823 2 3 bop 150 -116 a Fn(2)2430 b(The)30 b(SUIF)g(V)-8 b(ersion)30
2824 b(1)h(Library)150 299 y(output)h(\014le)g(and)g(to)h(\015ush)e(the)i(b)
2825 s(o)s(dy)e(from)h(memory)-8 b(.)47 b(Man)m(y)34 b(SUIF)e(programs)g
2826 (need)h(to)g(pro)s(cess)f(all)150 408 y(the)37 b(pro)s(cedures.)59
2827 b(This)35 b(can)i(b)s(e)f(done)h(b)m(y)g(searc)m(hing)g(through)f(the)h
2828 (global)f(sym)m(b)s(ol)f(tables)i(for)g(the)150 518 y(pro)s(cedure)c
2829 (sym)m(b)s(ols.)49 b(Ho)m(w)m(ev)m(er)36 b(since)d(this)f(is)h(suc)m(h)
2830 g(a)h(common)g(task,)i(the)e(\014le)e(set)j(en)m(tries)e(include)150
2831 628 y(pro)s(cedure)c(iterators)i(to)g(step)f(through)g(all)f(the)i(pro)
2832 s(cedures.)275 772 y(F)-8 b(or)31 b(passes)g(that)h(w)m(ork)f(on)g(one)
2833 h(\014le)e(at)i(a)f(time,)h(the)f(\014le)f(set)i(is)e(not)i(w)m(orth)f
2834 (m)m(uc)m(h,)g(but)g(it)f(is)h(v)m(ery)150 881 y(helpful)23
2835 b(for)i(in)m(terpro)s(cedural)f(passes.)39 b(Without)25
2836 b(it,)i(they)e(w)m(ould)g(ha)m(v)m(e)i(to)f(com)m(bine)g(all)e(the)i
2837 (co)s(de)g(in)m(to)150 991 y(one)36 b(big)g(\014le.)57
2838 b(While)34 b(that)j(ma)m(y)g(not)f(b)s(e)g(an)g(unreasonable)f
2839 (solution,)h(SUIF)g(\014le)f(sets)i(pro)m(vide)e(the)150
2840 1101 y(b)s(ene\014ts)29 b(of)i(separate)g(compilation)e(with)g(only)h
2841 (a)h(mo)s(derate)f(increase)g(in)g(complexit)m(y)-8 b(.)150
2842 1382 y Fl(1.2)68 b(The)45 b(Pro)t(cedure)f(Lev)l(el)275
2843 1585 y Fn(Because)23 b(SUIF)f(is)f(used)h(in)f(a)h(wide)f(v)-5
2844 b(ariet)m(y)23 b(of)f(pro)5 b(jects,)25 b(the)d(represen)m(tation)h(of)
2845 f(pro)s(cedure)f(b)s(o)s(dies)150 1694 y(includes)28
2846 b(b)s(oth)h(high-lev)m(el)g(and)h(lo)m(w-lev)m(el)g(information.)39
2847 b(In)30 b(the)g(\014rst)g(stages)h(of)g(a)g(compilation,)e(the)150
2848 1804 y(high-lev)m(el)e(structure)h(is)g(represen)m(ted)g(b)m(y)g(a)h
2849 (language-indep)s(enden)m(t)e(form)h(of)h(abstract)g(syn)m(tax)g(trees)
2850 150 1914 y(\(ASTs\).)39 b(This)25 b(format,)j(whic)m(h)e(w)m(e)h(call)f
2851 Fh(high-SUIF)p Fn(,)f(is)h(w)m(ell-suited)f(for)h(passes)h(suc)m(h)f
2852 (as)h(dep)s(endence)150 2023 y(analysis)34 b(and)g(lo)s(op)h
2853 (transformation)f(that)i(need)f(the)g(high-lev)m(el)f(structure)h(of)h
2854 (the)f(co)s(de.)55 b(Later)36 b(in)150 2133 y(the)25
2855 b(compilation)e(pro)s(cess,)j(the)f(ASTs)f(are)h(reduced)f(to)i(sequen)
2856 m(tial)e(lists)f(of)i(instructions.)37 b(This)23 b(form,)150
2857 2242 y(whic)m(h)30 b(w)m(e)h(call)g Fh(lo)m(w-SUIF)p
2858 Fn(,)g(w)m(orks)g(w)m(ell)f(for)h(some)h(scalar)f(optimizations)f(and)g
2859 (for)h(co)s(de)g(generation.)150 2352 y(Note)c(that)f(SUIF)f(still)e
2860 (has)i(only)g(one)h(in)m(termediate)f(represen)m(tation;)i(high-SUIF)d
2861 (and)h(lo)m(w-SUIF)h(are)150 2462 y(b)s(oth)e(implemen)m(ted)e(with)i
2862 (the)g(same)h(tree)g(data)g(structures.)38 b(See)25 b(Chapter)e(3)i([T)
2863 -8 b(rees],)27 b(page)e(11.)39 b(They)150 2571 y(only)34
2864 b(di\013er)g(in)g(the)i(amoun)m(t)f(of)h(high-lev)m(el)e(information)f
2865 (presen)m(t.)55 b(As)36 b(long)e(as)i(a)f(SUIF)g(pass)g(do)s(es)150
2866 2681 y(not)f(dep)s(end)f(on)g(particular)g(features)h(of)g(high-SUIF)f
2867 (or)h(lo)m(w-SUIF,)g(it)g(can)g(handle)f(either)g(format.)150
2868 2790 y(High-SUIF)d(and)g(lo)m(w-SUIF)g(ma)m(y)h(also)f(b)s(e)g(mixed)f
2869 (together)j(within)c(the)i(same)h(pro)s(cedure.)275 2935
2870 y(The)h(leaf)g(no)s(des)g(of)g(an)h(AST)f(are)h Fh(instruction)d(no)s
2871 (des)p Fn(.)47 b(See)32 b(Section)h(3.1.3)h([Instruction)e(No)s(des],)
2872 150 3044 y(page)44 b(13.)78 b(Eac)m(h)44 b(of)f(these)g(no)s(des)f(con)
2873 m(tains)h(a)g(single)e(instruction)g(or)i(expression)e(tree.)79
2874 b(In)42 b(lo)m(w-)150 3154 y(SUIF)28 b(co)s(de,)h(a)g(pro)s(cedure)e(b)
2875 s(o)s(dy)f(is)h(reduced)h(to)h(a)f(list)f(of)h(instruction)e(no)s(des)i
2876 (con)m(taining)g(individual)150 3263 y(instructions.)51
2877 b(This)32 b(form)i(resem)m(bles)g(the)h(quadruple)d(represen)m(tation)i
2878 (used)g(b)m(y)g(traditional)f(scalar)150 3373 y(optimizers.)275
2879 3517 y Fh(Blo)s(c)m(k)d(no)s(des)i Fn(represen)m(t)e(nested)g(scop)s
2880 (es.)41 b(See)30 b(Section)f(3.1.7)j([Blo)s(c)m(k)e(No)s(des],)h(page)f
2881 (19.)41 b(A)30 b(blo)s(c)m(k)150 3627 y(no)s(de)j(con)m(tains)g(a)h
2882 (sym)m(b)s(ol)e(table)h(and)f(a)i(list)e(of)h(the)h(AST)e(no)s(des)h
2883 (within)d(the)k(blo)s(c)m(k.)49 b(The)32 b(scop)s(e)i(of)150
2884 3736 y(the)i(sym)m(b)s(ols)e(and)h(t)m(yp)s(es)h(de\014ned)e(in)g(the)i
2885 (sym)m(b)s(ol)e(table)i(is)e(restricted)i(to)g(the)g(AST)f(no)s(des)f
2886 (within)150 3846 y(the)d(blo)s(c)m(k.)42 b(They)31 b(cannot)g(b)s(e)g
2887 (referenced)g(from)f(outside)g(the)h(blo)s(c)m(k.)43
2888 b(The)30 b(ro)s(ot)h(no)s(de)g(of)g(an)g(AST)f(is)150
2889 3956 y(a)i(sp)s(ecial)f(kind)f(of)i(blo)s(c)m(k)g(no)s(de)f(called)h(a)
2890 g Fh(pro)s(cedure)f(no)s(de)p Fn(.)45 b(Except)32 b(for)g(some)g(extra)
2891 h(metho)s(ds)f(and)150 4065 y(a)f(sligh)m(tly)d(di\013eren)m(t)i(kind)f
2892 (of)h(sym)m(b)s(ol)f(table,)i(a)g(pro)s(cedure)e(no)s(de)h(is)f(the)i
2893 (same)f(as)h(a)g(blo)s(c)m(k)f(no)s(de.)275 4209 y(Conditional)38
2894 b(structures)i(ma)m(y)h(b)s(e)f(represen)m(ted)h(b)m(y)f
2895 Fh(if)g(no)s(des)p Fn(.)70 b(See)41 b(Section)g(3.1.4)h([If)f(No)s
2896 (des],)150 4319 y(page)35 b(13.)52 b(An)34 b(\\if)7 b(")34
2897 b(no)s(de)g(has)f(three)i(parts,)g(eac)m(h)g(of)f(whic)m(h)f(is)g(a)h
2898 (list)f(of)h(AST)g(no)s(des.)51 b(The)33 b Fh(header)150
2899 4429 y Fn(list)26 b(con)m(tains)h(co)s(de)g(to)h(ev)-5
2900 b(aluate)28 b(the)f(condition)f(and)h(either)f(branc)m(h)h(to)h(the)f
2901 Fh(else)32 b Fn(list)26 b(or)h(fall)f(through)150 4538
2902 y(to)44 b(the)f Fh(then)g Fn(list.)79 b(Because)44 b(the)g(header)f
2903 (can)g(con)m(tain)h(con)m(trol)g(\015o)m(w,)i(it)d(is)f(easy)i(to)g
2904 (implemen)m(t)150 4648 y(short-circuit)29 b(ev)-5 b(aluation)30
2905 b(of)h(conditional)d(expressions.)275 4792 y(SUIF)34
2906 b(has)f(t)m(w)m(o)j(di\013eren)m(t)e(kinds)e(of)i(lo)s(ops.)52
2907 b(Man)m(y)34 b(optimizations)f(only)h(apply)f(to)i(certain)f(w)m(ell-)
2908 150 4902 y(b)s(eha)m(v)m(ed)j(t)m(yp)s(es)g(of)g(lo)s(ops,)h(so)f
2909 Fh(for)f(no)s(des)k Fn(are)d(pro)m(vided)f(for)g(lo)s(ops)g(with)g
2910 (scalar)h(indices)e(that)i(v)-5 b(ary)150 5011 y(from)29
2911 b(their)g(initial)e(to)j(\014nal)f(v)-5 b(alues,)29 b(b)s(eing)f
2912 (incremen)m(ted)i(or)f(decremen)m(ted)i(on)e(ev)m(ery)i(iteration,)f
2913 (and)150 5121 y(that)e(meet)g(v)-5 b(arious)26 b(other)i(requiremen)m
2914 (ts.)39 b(Most)28 b(F)-8 b(ortran)28 b Fi(DO)e Fn(lo)s(ops)h(qualify)e
2915 (as)j(\\for")g(no)s(des.)38 b(Lo)s(ops)150 5230 y(that)33
2916 b(do)f(not)h(meet)g(those)g(requiremen)m(ts)e(are)i(represen)m(ted)f(b)
2917 m(y)g Fh(lo)s(op)g(no)s(des)p Fn(,)g(whic)m(h)f(just)h(record)g(the)150
2918 5340 y(con)m(trol-\015o)m(w)f(structure)f(of)h(the)f(lo)s(ops)g(and)f
2919 (are)i(used)f(to)h(represen)m(t)f(generic)h(\\do-while")e(lo)s(ops.)p
2921 %%Page: 3 5
2922 3 4 bop 150 -116 a Fn(Chapter)30 b(1:)41 b(An)30 b(Ov)m(erview)g(of)g
2923 (SUIF)2225 b(3)275 299 y(A)32 b(lo)s(op)f(no)s(de)g(con)m(tains)h(t)m
2924 (w)m(o)h(lists)e(of)h(AST)f(no)s(des.)45 b(See)32 b(Section)g(3.1.5)i
2925 ([Lo)s(op)d(No)s(des],)i(page)g(15.)150 408 y(The)e Fh(b)s(o)s(dy)37
2926 b Fn(list)31 b(comes)h(\014rst)e(and)h(holds)f(the)i(lo)s(op)e(b)s(o)s
2927 (dy)-8 b(.)43 b(The)31 b Fh(test)j Fn(list)c(con)m(tains)i(co)s(de)f
2928 (to)h(ev)-5 b(aluate)150 518 y(the)26 b(\\while")e(expression)g(and)h
2929 (conditionally)e(branc)m(h)i(bac)m(k)h(to)h(the)e(b)s(eginning)e(of)j
2930 (the)f Fi(body)g Fn(list.)37 b(The)150 628 y(b)s(o)s(dy)26
2931 b(ma)m(y)i(con)m(tain)g(branc)m(hes)g(to)g(the)g Fi(continue)d
2932 Fn(and)i Fi(break)g Fn(lab)s(els,)f(whic)m(h)h(are)h(implicitly)c(lo)s
2933 (cated)150 737 y(at)31 b(the)g(b)s(eginning)c(of)k(the)f
2934 Fi(test)g Fn(list)f(and)g(the)i(end)f(of)g(the)h(lo)s(op,)f(resp)s
2935 (ectiv)m(ely)-8 b(.)275 884 y(A)31 b(\\for")g(no)s(de)g(is)f(b)m(y)h
2936 (far)g(the)g(most)g(complicated)g(t)m(yp)s(e)g(of)g(AST)g(no)s(de.)42
2937 b(Besides)30 b(the)i(lo)s(op)e(b)s(o)s(dy)-8 b(,)150
2938 993 y(it)30 b(m)m(ust)h(sp)s(ecify)f(the)h(index)e(v)-5
2939 b(ariable)30 b(and)g(the)h(range)g(of)g(v)-5 b(alues)31
2940 b(for)f(the)h(index.)41 b(The)31 b(lo)m(w)m(er)g(b)s(ound,)150
2941 1103 y(upp)s(er)g(b)s(ound,)h(and)g(step)i(op)s(erands)d(are)j
2942 (expressions)d(that)j(are)g(ev)-5 b(aluated)33 b(once)h(at)f(the)h(b)s
2943 (eginning)150 1212 y(of)e(the)g(lo)s(op.)43 b(The)31
2944 b(index)f(v)-5 b(ariable)31 b(is)f(initially)f(assigned)h(the)i(v)-5
2945 b(alue)31 b(of)h(the)g(lo)m(w)m(er)g(b)s(ound)d(and)i(then)150
2946 1322 y(incremen)m(ted)g(b)m(y)h(the)g(v)-5 b(alue)31
2947 b(of)h(the)g(step)g(op)s(erand)f(on)h(ev)m(ery)g(iteration)g(un)m(til)e
2948 (it)h(reac)m(hes)i(the)f(upp)s(er)150 1431 y(b)s(ound;)25
2949 b(the)g(co)s(de)g(to)h(do)e(this)g(is)g(automatically)h(created)h(when)
2950 e(the)h(\\for")g(no)s(de)f(is)g(expanded)g(to)i(lo)m(w-)150
2951 1541 y(SUIF)34 b(co)s(de.)51 b(The)33 b(\\for")i(no)s(de)e(m)m(ust)h
2952 (also)g(sp)s(ecify)e(the)i(comparison)f(op)s(erator)h(used)f(to)i
2953 (determine)150 1651 y(when)h(the)h(index)f(v)-5 b(ariable)36
2954 b(has)h(reac)m(hed)g(the)h(upp)s(er)d(b)s(ound)g(v)-5
2955 b(alue.)60 b(The)37 b(optional)f Fi(landing_pad)150 1760
2956 y Fn(part)26 b(is)f(a)i(list)e(of)h(no)s(des)g(to)h(b)s(e)e(executed)i
2957 (once)g(at)g(the)g(b)s(eginning)c(of)k(the)f(lo)s(op;)h(this)e(pro)m
2958 (vides)g(a)i(place)150 1870 y(to)g(mo)m(v)m(e)h(lo)s(op-in)m(v)-5
2959 b(arian)m(t)25 b(co)s(de.)40 b(As)26 b(with)f(lo)s(op)h(no)s(des,)h
2960 (the)f Fi(body)g Fn(list)f(ma)m(y)i(con)m(tain)f(branc)m(hes)h(to)g
2961 (the)150 1979 y Fi(continue)h Fn(and)i Fi(break)f Fn(lab)s(els.)150
2962 2266 y Fl(1.3)68 b(The)45 b(Instruction)g(Lev)l(el)275
2963 2471 y Fn(Eac)m(h)23 b(instruction)e(no)s(de)h(in)f(an)i(abstract)h
2964 (syn)m(tax)f(tree)g(holds)f(a)h(SUIF)f(instruction.)36
2965 b(See)23 b(Chapter)g(4)150 2580 y([Instructions],)41
2966 b(page)g(23.)69 b(Most)41 b(SUIF)e(instructions)f(p)s(erform)g(simple)g
2967 (op)s(erations;)43 b(the)d(op)s(co)s(des)150 2690 y(resem)m(ble)30
2968 b(those)g(for)g(a)h(t)m(ypical)e(RISC)g(pro)s(cessor.)41
2969 b(Ho)m(w)m(ev)m(er,)32 b(more)e(complex)g(instructions)e(are)j(used)150
2970 2799 y(in)e(places)h(where)g(it)g(is)f(imp)s(ortan)m(t)h(to)h(retain)f
2971 (high-lev)m(el)f(information.)275 2946 y(SUIF)f(supp)s(orts)e(b)s(oth)i
2972 (expression)f(trees)i(and)e(\015at)i(lists)e(of)h(instructions.)38
2973 b(In)28 b(an)g(expression)f(tree,)150 3055 y(the)34 b(instructions)e
2974 (for)h(an)h(expression)f(are)h(all)f(group)s(ed)f(together.)53
2975 b(This)32 b(w)m(orks)i(w)m(ell)f(for)g(high-lev)m(el)150
2976 3165 y(passes.)68 b(Because)40 b(expression)e(trees)i(do)g(not)f
2977 (totally)h(order)e(the)i(ev)-5 b(aluation)39 b(of)g(the)h
2978 (instructions,)150 3274 y(they)29 b(do)g(not)h(w)m(ork)f(so)g(w)m(ell)f
2979 (for)h(bac)m(k-end)h(optimization)e(and)h(sc)m(heduling)e(passes.)40
2980 b(Th)m(us)28 b(SUIF)h(also)150 3384 y(pro)m(vides)20
2981 b(the)h(\015at)g(list)f(represen)m(tation)h(where)g(eac)m(h)h
2982 (instruction)d(no)s(de)h(con)m(tains)i(a)f(single)f(instruction.)275
2983 3530 y(Most)34 b(SUIF)f(instructions)f(use)h(a)h(\\quadruple")e(format)
2984 i(with)f(a)h(destination)e(op)s(erand)h(and)g(t)m(w)m(o)150
2985 3640 y(source)i(op)s(erands;)h(ho)m(w)m(ev)m(er,)h(some)e(instructions)
2986 e(require)g(more)i(sp)s(ecialized)e(formats.)54 b(F)-8
2987 b(or)35 b(exam-)150 3750 y(ple,)g Fi(ldc)g Fn(\(load)f(constan)m(t\))j
2988 (instructions)c(ha)m(v)m(e)j(an)f(immediate)f(v)-5 b(alue)34
2989 b(\014eld)g(in)g(place)g(of)i(the)f(source)150 3859 y(op)s(erands.)j
2990 (While)26 b(most)h(SUIF)f(instructions)f(are)i(v)m(ery)g(simple,)e(it)h
2991 (is)g(imp)s(ortan)m(t)g(to)h(retain)f(su\016cien)m(t)150
2992 3969 y(high-lev)m(el)d(information)g(to)i(supp)s(ort)e(detailed)g
2993 (analysis.)38 b(Th)m(us)23 b(SUIF)h(includes)e(sev)m(eral)j
2994 (instructions)150 4078 y(with)k(more)i(complex)f(b)s(eha)m(vior:)225
2995 4225 y Fk(\017)60 b Fn(The)24 b Fi(cal)g Fn(\(call\))h(instruction)e
2996 (implemen)m(ts)g(a)i(mac)m(hine-indep)s(enden)m(t)e(pro)s(cedure)h
2997 (call)g(with)f(a)i(list)330 4334 y(of)31 b(parameters.)41
2998 b(This)28 b(hides)h(the)i(details)e(of)h(v)-5 b(arious)30
2999 b(link)-5 b(age)29 b(con)m(v)m(en)m(tions.)225 4475 y
3000 Fk(\017)60 b Fn(The)40 b Fi(mbr)g Fn(\(m)m(ulti-w)m(a)m(y)h(branc)m
3001 (h\))g(instruction)d(transfers)i(con)m(trol)i(to)f(one)g(of)g(the)g
3002 (giv)m(en)g(lab)s(els)330 4584 y(dep)s(ending)d(on)j(the)g(v)-5
3003 b(alue)41 b(of)g(its)f(source)h(op)s(erand.)71 b(This)39
3004 b(represen)m(ts)i(computed)g Fi(goto)f Fn(and)330 4694
3005 y Fi(switch)29 b Fn(statemen)m(ts.)225 4834 y Fk(\017)60
3006 b Fn(The)33 b Fi(array)f Fn(instruction)f(computes)i(the)h(address)e
3007 (of)i(an)f(elemen)m(t)h(in)e(an)h(arra)m(y)h(giv)m(en)f(a)h(list)e(of)
3008 330 4944 y(index)e(v)-5 b(alues.)42 b(These)30 b(instructions)f(are)j
3009 (ev)m(en)m(tually)f(expanded)f(to)i(additions)d(and)h(m)m(ultiplica-)
3010 330 5053 y(tions)g(to)h(p)s(erform)e(the)h(necessary)h(p)s(oin)m(ter)f
3011 (arithmetic.)150 5230 y(These)25 b(instructions)e(are)j(m)m(uc)m(h)f
3012 (easier)g(to)h(analyze)g(than)f(the)g(equiv)-5 b(alen)m(t)25
3013 b(series)g(of)g(lo)m(w-lev)m(el)g(instruc-)150 5340 y(tions.)p
3015 %%Page: 4 6
3016 4 5 bop 150 -116 a Fn(4)2430 b(The)30 b(SUIF)g(V)-8 b(ersion)30
3017 b(1)h(Library)275 299 y(The)e(follo)m(wing)e(example)j(sho)m(ws)f(the)h
3018 (lo)m(w-SUIF)f(instructions)e(corresp)s(onding)h(to)i(a)g(simple)d
3019 (frag-)150 408 y(men)m(t)k(of)f(C)g(co)s(de:)390 541
3020 y Fi(x)47 b(=)h(0;)390 645 y(y)f(=)h(*ptr;)390 748 y(if)f(\(y)g(<)h(x)f
3021 (+)h(z\))f({)581 852 y(*ptr)g(=)g(x;)390 956 y(})390
3022 1088 y(1:)g(ldc)g(\(i.32\))f(x)i(=)f(0)525 b(//)47 b(load)g(integer)e
3023 (constant)h(0)390 1192 y(2:)h(lod)g(\(i.32\))f(y)i(=)f(ptr)429
3024 b(//)47 b(load)g(from)f(address)g(in)h(ptr)390 1296 y(3:)g(add)g
3025 (\(i.32\))f(nd#3)h(=)g(x,)g(z)239 b(//)47 b(add)g(x)g(and)g(z)390
3026 1400 y(4:)g(sl)95 b(\(i.32\))46 b(nd#4)h(=)g(y,)g(nd#3)95
3027 b(//)47 b(set)g(if)g(y)h(<)f(x)g(+)h(z)390 1504 y(5:)f(bfalse)237
3028 b(nd#4,)47 b(L:L1)285 b(//)47 b(branch)f(if)h(false)g(to)g(label)f(L1)
3029 390 1607 y(6:)h(str)381 b(ptr)47 b(=)h(x)429 b(//)47
3030 b(store)f(x)i(to)f(address)f(in)h(ptr)390 1711 y(7:)g(lab)381
3031 b(L:L1)572 b(//)47 b(label)f(L1)150 1849 y Fn(Most)32
3032 b(of)e(the)h(op)s(erands)e(in)h(this)f(example)h(are)h(v)-5
3033 b(ariables;)30 b(ho)m(w)m(ev)m(er,)i(the)f(results)e(of)i(the)g
3034 Fi(add)f Fn(and)g Fi(sl)150 1959 y Fn(instructions)i(are)i(temp)s
3035 (orary)f(v)-5 b(alues)34 b(and)f(are)h(not)g(stored)g(in)f(v)-5
3036 b(ariables.)50 b(Suc)m(h)33 b(temp)s(orary)h(v)-5 b(alues)150
3037 2069 y(o)s(ccur)39 b(frequen)m(tly)-8 b(,)41 b(and)d(rather)h(than)g
3038 (requiring)e(that)i(new)g(v)-5 b(ariables)38 b(b)s(e)g(created)i(to)g
3039 (hold)e(them,)150 2178 y(SUIF)30 b(allo)m(ws)f(them)h(to)h(b)s(e)e
3040 (used)g(directly)-8 b(.)40 b(Eac)m(h)30 b(temp)s(orary)g(m)m(ust)g(ha)m
3041 (v)m(e)h(a)f(single)f(de\014nition)e(and)j(a)150 2288
3042 y(single)25 b(use)i(within)d(the)j(same)g(basic)f(blo)s(c)m(k.)39
3043 b(In)26 b(the)h(prin)m(ted)e(co)s(de)i(ab)s(o)m(v)m(e,)h(the)f(temp)s
3044 (orary)g(v)-5 b(alues)26 b(are)150 2397 y(indicated)33
3045 b(b)m(y)i(\\no)s(de")g(n)m(um)m(b)s(ers,)f(using)g(the)g(ID)h(n)m(um)m
3046 (b)s(ers)f(of)g(the)h(instructions)e(that)i(pro)s(duce)f(the)150
3047 2507 y(v)-5 b(alues.)61 b(In)m(ternally)-8 b(,)38 b(ho)m(w)m(ev)m(er,)i
3048 (the)e(op)s(erands)e(con)m(tain)i(p)s(oin)m(ters)e(b)s(et)m(w)m(een)i
3049 (the)f(instructions.)59 b(F)-8 b(or)150 2617 y(example,)34
3050 b(the)g Fi(bfalse)e Fn(source)i(op)s(erand)f(con)m(tains)h(a)g(p)s(oin)
3051 m(ter)e(to)j(the)f Fi(sl)f Fn(comparison)g(instruction,)150
3052 2726 y(and)40 b(the)h Fi(sl)f Fn(destination)f(op)s(erand)h(con)m
3053 (tains)g(a)h(p)s(oin)m(ter)f(to)h(the)g(branc)m(h)f(instruction.)69
3054 b(Th)m(us)40 b(the)150 2836 y(de\014nition)30 b(and)i(use)g(of)g(a)h
3055 (temp)s(orary)f(v)-5 b(alue)32 b(are)g(directly)f(connected,)j(making)e
3056 (it)g(easy)h(to)g(\014nd)e(one)150 2945 y(from)f(the)g(other.)275
3057 3084 y(Flat)d(lists)f(of)i(instructions)d(w)m(ork)i(w)m(ell)g(for)g
3058 (man)m(y)g(bac)m(k-end)h(compiler)e(passes,)i(but)f(for)g(high-lev)m
3059 (el)150 3193 y(transformations)32 b(expression)g(trees)h(are)g(often)g
3060 (a)h(b)s(etter)e(represen)m(tation.)48 b(Th)m(us)32 b(the)h(SUIF)g
3061 (system)150 3303 y(supp)s(orts)e(expression)i(trees)g(as)h(w)m(ell)e
3062 (as)i(\015at)g(lists.)48 b(See)33 b(Section)h(4.3)g([Expression)e(T)-8
3063 b(rees],)35 b(page)f(28.)150 3412 y(The)23 b(di\013erence)g(b)s(et)m(w)
3064 m(een)h(the)f(t)m(w)m(o)i(represen)m(tations)e(is)f(actually)h(quite)g
3065 (small.)37 b(The)23 b(temp)s(orary)f(v)-5 b(alue)150
3066 3522 y(p)s(oin)m(ters)30 b(describ)s(ed)f(ab)s(o)m(v)m(e)j(naturally)d
3067 (create)j(trees,)g(except)g(that)f(with)f(\015at)h(lists)f(the)h(no)s
3068 (des)f(of)h(the)150 3631 y(trees)40 b(are)g(listed)e(in)g(b)s(ottom-up)
3069 h(order.)68 b(When)39 b(using)f(the)i(expression)e(tree)j(represen)m
3070 (tation,)h(the)150 3741 y(instructions)35 b(are)i(rearranged)g(so)h
3071 (that)g(only)e(the)h(ro)s(ots)g(of)h(the)f(expression)f(trees)h(are)h
3072 (included)c(in)150 3851 y(the)c(AST)f(instruction)f(no)s(des.)39
3073 b(The)30 b(other)g(instructions)d(are)j(reac)m(hed)h(through)e(the)h(p)
3074 s(oin)m(ters)e(in)h(the)150 3960 y(op)s(erands.)54 b(F)-8
3075 b(or)36 b(example,)g(b)m(y)f(lab)s(eling)e(eac)m(h)j(subtree)f(\(e.g.)
3076 57 b Fi(e1)34 b Fn(and)h Fi(e2)p Fn(\),)h(the)f(expression)f(tree)i(in)
3077 150 4070 y(the)31 b(example)f(could)f(b)s(e)h(prin)m(ted)f(as:)390
3078 4202 y Fi(5:)47 b(bfalse)f(e1,)h(L:L1)390 4306 y(4:)143
3079 b(e1:)47 b(sl)g(\(i.32\))f(y,)h(e2)390 4410 y(3:)238
3080 b(e2:)47 b(add)g(\(i.32\))f(x,)h(z)150 4548 y Fn(In)32
3081 b(this)f(case,)k(only)c(the)i(branc)m(h)f(instruction)f(is)g(directly)h
3082 (con)m(tained)g(in)g(an)g(instruction)f(no)s(de.)46 b(The)150
3083 4658 y Fi(sl)33 b Fn(instruction)f(is)h(reac)m(hed)h(through)g(the)g
3084 (branc)m(h's)f(source)h(op)s(erand,)g(and)f(the)h Fi(add)f
3085 Fn(instruction)f(is)150 4767 y(con)m(tained)f(in)e(the)h(second)h
3086 (source)f(op)s(erand)f(of)i(the)g Fi(sl)e Fn(instruction.)150
3087 5034 y Fl(1.4)68 b(Sym)l(b)t(olic)45 b(Information)275
3088 5230 y Fn(SUIF)32 b(includes)f(detailed)h(sym)m(b)s(olic)f
3089 (information.)47 b(Sym)m(b)s(ols)32 b(and)g(t)m(yp)s(es)h(are)g
3090 (de\014ned)f(in)g(nested)150 5340 y(scop)s(es)38 b(corresp)s(onding)d
3091 (to)j(the)g(blo)s(c)m(k)f(structure)g(of)h(the)g(program.)62
3092 b(A)38 b(sym)m(b)s(ol)e(table)h(is)g(attac)m(hed)p eop
3093 %%Page: 5 7
3094 5 6 bop 150 -116 a Fn(Chapter)30 b(1:)41 b(An)30 b(Ov)m(erview)g(of)g
3095 (SUIF)2225 b(5)150 299 y(to)42 b(eac)m(h)g(elemen)m(t)g(of)g(the)f
3096 (main)f(SUIF)h(hierarc)m(h)m(y)g(that)h(de\014nes)f(a)g(new)g(scop)s
3097 (e.)73 b(Sym)m(b)s(ols)40 b(record)150 408 y(information)28
3098 b(ab)s(out)i(v)-5 b(ariables,)28 b(lab)s(els,)h(and)g(pro)s(cedures.)39
3099 b(The)29 b(SUIF)h(t)m(yp)s(e)g(system)g(is)f(similar)e(to)j(C)150
3100 518 y(but)g(also)g(has)g(some)h(supp)s(ort)e(for)h(F)-8
3101 b(ortran)31 b(and)e(other)i(languages.)275 647 y(The)20
3102 b(sym)m(b)s(ol)f(tables)i(\(see)h(Chapter)e(5)h([Sym)m(b)s(ol)e(T)-8
3103 b(ables],)23 b(page)f(37\))g(are)f(de\014ned)e(in)h(a)h(tree)g
3104 (structure)150 757 y(that)28 b(forms)f(a)h(hierarc)m(h)m(y)f(parallel)e
3105 (to)j(the)g(main)e(SUIF)i(hierarc)m(h)m(y)-8 b(.)39 b(Eac)m(h)28
3106 b(table)g(records)f(a)h(p)s(oin)m(ter)e(to)150 867 y(its)g(paren)m(t)g
3107 (and)g(k)m(eeps)h(a)g(list)d(of)j(its)f(c)m(hildren.)37
3108 b(The)26 b(global)f(sym)m(b)s(ol)g(table)i(at)g(the)f(ro)s(ot)h(is)e
3109 (attac)m(hed)j(to)150 976 y(the)h(\014le)f(set)i(and)e(is)g(shared)h
3110 (across)g(all)f(the)i(\014les.)39 b(Its)29 b(c)m(hildren)e(are)i(the)g
3111 (\014le)g(sym)m(b)s(ol)e(tables)i(attac)m(hed)150 1086
3112 y(to)g(the)f(\014le)f(set)h(en)m(tries.)40 b(The)27 b(pro)s(cedure)g
3113 (sym)m(b)s(ol)g(tables)g(for)h(the)g(AST)f(pro)s(cedure)g(no)s(des)g
3114 (are)h(in)f(the)150 1195 y(next)h(lev)m(el)f(do)m(wn,)h(follo)m(w)m(ed)
3115 f(b)m(y)g(the)h(blo)s(c)m(k)f(sym)m(b)s(ol)f(tables)h(for)g(blo)s(c)m
3116 (k)g(no)s(des)g(within)e(the)j(ASTs.)38 b(The)150 1305
3117 y(blo)s(c)m(k)30 b(sym)m(b)s(ol)f(tables)h(ma)m(y)h(b)s(e)f(nested)g
3118 (to)h(an)m(y)g(lev)m(el.)275 1434 y(Eac)m(h)37 b(sym)m(b)s(ol)f(table)g
3119 (con)m(tains)h(a)g(list)f(of)h(sym)m(b)s(ols)e(\(see)j(Chapter)e(6)h
3120 ([Sym)m(b)s(ols],)h(page)f(45\))h(that)150 1544 y(are)j(de\014ned)e
3121 (within)e(the)k(corresp)s(onding)d(scop)s(e.)71 b(There)39
3122 b(are)i(three)g(di\013eren)m(t)e(kinds)g(of)h(sym)m(b)s(ols:)150
3123 1653 y(v)-5 b(ariables,)34 b(lab)s(els,)g(and)g(pro)s(cedures.)51
3124 b(Sym)m(b)s(ols)32 b(are)j(iden)m(ti\014ed)d(b)m(y)j(name)f(or)g(ID)h
3125 (n)m(um)m(b)s(er.)51 b(The)34 b(ID)150 1763 y(n)m(um)m(b)s(ers)25
3126 b(are)i(assigned)f(automatically)g(and)g(should)f(alw)m(a)m(ys)i(b)s(e)
3127 f(unique)f(within)f(a)j(particular)e(scop)s(e.)150 1873
3128 y(Eac)m(h)31 b(sym)m(b)s(ol)e(also)h(has)h(a)f(set)h(of)g(\015ags)f(to)
3129 h(record)g(v)-5 b(arious)29 b(attributes.)275 2002 y(V)-8
3130 b(ariable)32 b(sym)m(b)s(ols)f(\(see)j(Section)e(6.4)i([V)-8
3131 b(ariable)32 b(Sym)m(b)s(ols],)g(page)i(47\))g(ma)m(y)f(b)s(e)f
3132 (declared)g(in)g(an)m(y)150 2112 y(scop)s(e.)49 b(A)34
3133 b(v)-5 b(ariable)32 b(sym)m(b)s(ol)g(con)m(tains)h(a)h(p)s(oin)m(ter)e
3134 (to)i(the)f(t)m(yp)s(e)h(for)f(the)g(v)-5 b(ariable.)48
3135 b(The)33 b(t)m(yp)s(e)g(deter-)150 2221 y(mines)h(the)h(amoun)m(t)h(of)
3136 f(storage)i(used)d(to)i(hold)d(the)j(v)-5 b(ariable)34
3137 b(as)h(w)m(ell)f(as)h(the)h(in)m(terpretation)e(of)i(its)150
3138 2331 y(con)m(ten)m(ts.)41 b(Some)26 b(additional)f(\015ags)h(are)h
3139 (used)e(for)h(v)-5 b(ariable)25 b(sym)m(b)s(ols.)38 b(These)26
3140 b(\015ags)h(iden)m(tify)d(v)-5 b(ariables)150 2440 y(that)30
3141 b(are)g(formal)f(parameters)h(of)g(the)g(pro)s(cedure)f(and)g(v)-5
3142 b(ariables)28 b(that)j(ha)m(v)m(e)g(their)d(addresses)i(tak)m(en.)150
3143 2550 y(Another)38 b(\015ag)g(is)f(used)g(to)h(iden)m(tify)e(v)-5
3144 b(ariables)37 b(that)h(represen)m(t)g(mac)m(hine)f(registers.)63
3145 b(F)-8 b(or)38 b(v)-5 b(ariables)150 2660 y(that)24 b(are)h(not)f(allo)
3146 s(cated)g(on)g(the)g(stac)m(k,)j(a)d(separate)h Fh(v)-5
3147 b(ariable)22 b(de\014nition)g Fn(\(see)j(Section)f(6.4.3)h([V)-8
3148 b(ariable)150 2769 y(De\014nitions],)37 b(page)f(51\))i(m)m(ust)e(b)s
3149 (e)f(en)m(tered)i(in)e(the)h(sym)m(b)s(ol)f(table.)58
3150 b(A)36 b(v)-5 b(ariable)35 b(de\014nition)f(records)150
3151 2879 y(the)d(alignmen)m(t)e(restriction)h(for)g(the)g(v)-5
3152 b(ariable's)30 b(storage)i(and)d(its)h(initial)e(con)m(ten)m(ts.)275
3153 3008 y(Lab)s(el)34 b(sym)m(b)s(ols)h(\(see)h(Section)g(6.3)h([Lab)s(el)
3154 e(Sym)m(b)s(ols],)h(page)g(47\))h(can)f(only)f(b)s(e)g(declared)g
3155 (within)150 3118 y(pro)s(cedures.)k(The)30 b(p)s(osition)f(of)h(a)h
3156 (lab)s(el)e(in)g(the)h(co)s(de)h(is)e(mark)m(ed)i(with)e(a)i(sp)s
3157 (ecial)e(instruction.)275 3247 y(Pro)s(cedure)f(sym)m(b)s(ols)g(\(see)j
3158 (Section)e(6.2)i([Pro)s(cedure)e(Sym)m(b)s(ols],)f(page)i(46\))h(can)f
3159 (only)f(b)s(e)f(declared)150 3357 y(in)35 b(the)h(global)g(and)f
3160 (\014le)h(scop)s(es.)58 b(A)36 b(pro)s(cedure)f(sym)m(b)s(ol)g(con)m
3161 (tains)h(a)h(p)s(oin)m(ter)e(to)i(the)f(AST)g(for)g(the)150
3162 3466 y(b)s(o)s(dy)27 b(of)h(the)h(pro)s(cedure)e(if)g(it)h(exists.)40
3163 b(It)29 b(also)f(pro)m(vides)f(metho)s(ds)h(to)h(read)f(the)h(b)s(o)s
3164 (dy)e(from)h(an)g(input)150 3576 y(\014le,)i(write)g(it)h(to)g(an)g
3165 (output)f(\014le,)g(and)h(\015ush)e(it)h(from)g(memory)-8
3166 b(.)43 b(The)30 b(pro)s(cedure)g(sym)m(b)s(ol)f(also)i(has)g(a)150
3167 3685 y(p)s(oin)m(ter)e(to)i(the)g(t)m(yp)s(e)g(for)f(the)g(pro)s
3168 (cedure.)275 3815 y(The)20 b(SUIF)g(t)m(yp)s(e)h(system)f(\(see)i
3169 (Chapter)e(7)h([T)m(yp)s(es],)i(page)e(53\))h(is)d(quite)h(p)s(o)m(w)m
3170 (erful.)36 b(It)21 b(can)g(represen)m(t)150 3924 y(most,)33
3171 b(if)d(not)i(all,)f(high-lev)m(el)g(t)m(yp)s(es)g(for)h(C)f(programs)h
3172 (and)f(for)g(man)m(y)h(other)g(languages.)45 b(The)31
3173 b(t)m(yp)s(es)150 4034 y(are)36 b(implemen)m(ted)f(with)f(v)-5
3174 b(arious)35 b(kinds)f(of)i(t)m(yp)s(e)g(no)s(des.)57
3175 b(Eac)m(h)36 b(t)m(yp)s(e)g(no)s(de)g(con)m(tains)g(an)g(op)s(erator)
3176 150 4143 y(that)h(sp)s(eci\014es)e(the)h(kind)f(of)h(no)s(de.)58
3177 b(Some)37 b(of)f(the)h(t)m(yp)s(e)f(op)s(erators)h(de\014ne)f(base)g(t)
3178 m(yp)s(es)g(that)h(stand)150 4253 y(alone,)30 b(while)e(other)i(op)s
3179 (erators)g(refer)f(to)i(other)f(t)m(yp)s(es)g(no)s(des.)40
3180 b(F)-8 b(or)30 b(example,)g(a)g(t)m(yp)s(e)g(no)s(de)f(with)g(the)150
3181 4363 y Fi(TYPE_INT)36 b Fn(op)s(erator)j(de\014nes)f(a)h(new)f(in)m
3182 (teger)h(t)m(yp)s(e.)65 b(A)39 b(no)s(de)f(with)f(the)i
3183 Fi(TYPE_PTR)d Fn(op)s(erator)j(can)150 4472 y(then)31
3184 b(refer)f(to)i(the)f(in)m(teger)g(t)m(yp)s(e)h(no)s(de)e(to)h(create)i
3185 (a)e(t)m(yp)s(e)g(for)g(p)s(oin)m(ters)f(to)i(in)m(tegers.)42
3186 b(Op)s(erators)31 b(are)150 4582 y(a)m(v)-5 b(ailable)36
3187 b(for)h(in)m(tegers,)i(\015oating-p)s(oin)m(t)d(t)m(yp)s(es,)j(p)s(oin)
3188 m(ters,)f(arra)m(ys,)h(functions,)e(structures,)i(unions,)150
3189 4691 y(and)34 b(en)m(umerations.)52 b(Eac)m(h)34 b(t)m(yp)s(e)h(has)f
3190 (a)h(particular)d(size.)52 b(F)-8 b(or)35 b(some)g(t)m(yp)s(es,)h(suc)m
3191 (h)d(as)i(in)m(tegers,)h(the)150 4801 y(size)30 b(can)h(b)s(e)f(set)h
3192 (directly)-8 b(,)29 b(but)h(for)g(others)h(it)e(is)h(determined)f
3193 (automatically)-8 b(.)150 5043 y Fl(1.5)68 b(Other)45
3194 b(Data)275 5230 y Fn(SUIF)33 b(is)f(designed)h(to)h(b)s(e)f(extended)g
3195 (with)f(new)h(kinds)f(of)h(analyses)h(and)e(optimizations.)49
3196 b(These)150 5340 y(future)38 b(extensions)g(will)e(generally)i(require)
3197 f(that)j(additional)c(information)h(b)s(e)h(attac)m(hed)j(to)e(SUIF)p
3199 %%Page: 6 8
3200 6 7 bop 150 -116 a Fn(6)2430 b(The)30 b(SUIF)g(V)-8 b(ersion)30
3201 b(1)h(Library)150 299 y(ob)5 b(jects)44 b(and)e(propagated)h(b)s(et)m
3202 (w)m(een)h(passes.)78 b(F)-8 b(or)43 b(example,)j(one)d(pass)g(ma)m(y)g
3203 (analyze)g(the)g(SUIF)150 408 y(co)s(de)36 b(and)e(pro)s(duce)h
3204 (information)e(ab)s(out)i(data)h(dep)s(endences.)55 b(That)35
3205 b(information)f(m)m(ust)h(b)s(e)g(sa)m(v)m(ed)150 518
3206 y(in)e(the)i(SUIF)f(\014les)f(so)i(that)f(it)g(can)h(b)s(e)f(used)f(b)m
3207 (y)h(other)h(passes.)52 b(Because)36 b(man)m(y)f(di\013eren)m(t)e
3208 (kinds)g(of)150 628 y(information)38 b(ma)m(y)j(need)e(to)i(b)s(e)e
3209 (stored,)k(the)d(SUIF)g(library)d(cannot)j(prede\014ne)f(sp)s(eci\014c)
3210 g(\014elds)f(for)150 737 y(future)25 b(extensions.)38
3211 b(Instead,)27 b(it)e(pro)m(vides)g Fh(annotations)30
3212 b Fn(whic)m(h)24 b(allo)m(w)h(user-de\014ned)f(data)j(structures)150
3213 847 y(to)36 b(b)s(e)f(attac)m(hed)i(to)f(most)f(SUIF)g(ob)5
3214 b(jects.)56 b(See)36 b(Chapter)e(8)i([Annotations],)h(page)f(63.)56
3215 b(This)33 b(is)i(the)150 956 y(primary)28 b(mec)m(hanism)i(for)g
3216 (making)g(SUIF)g(easily)g(extensible.)275 1091 y(Sev)m(eral)j
3217 (di\013eren)m(t)g(kinds)f(of)h(annotations)h(are)g(a)m(v)-5
3218 b(ailable.)49 b(They)33 b(all)g(include)e(a)j(name)f(\014eld)f(that)150
3219 1200 y(iden)m(ti\014es)e(the)i(kind)d(of)j(data)g(in)e(the)i
3220 (annotation.)44 b(Besides)31 b(the)h(name,)g(eac)m(h)h(annotation)e
3221 (has)h(some)150 1310 y(sort)21 b(of)g(data.)38 b(A)21
3222 b Fh(structured)i Fn(annotation)e(con)m(tains)g(data)g(in)e(a)i
3223 (user-de\014ned)e(data)j(structure,)g(whereas)150 1420
3224 y(a)45 b Fh(\015at)i Fn(annotation)d(consists)g(of)h(a)g(list)e(of)h
3225 (immediate)g(v)-5 b(alues.)82 b(The)44 b(names)g(of)h(structured)f(and)
3226 150 1529 y(\015at)34 b(annotations)g(are)g(registered)g(with)e(the)i
3227 Fh(annotation)g(manager)p Fn(.)52 b(See)34 b(Section)g(8.6)h
3228 ([Annotation)150 1639 y(Manager],)e(page)f(68.)43 b(The)31
3229 b(manager)g(records)g(information)e(ab)s(out)i(eac)m(h)h(kind)d(of)j
3230 (annotation,)f(suc)m(h)150 1748 y(as)36 b(whether)e(they)i(are)f
3231 (\015at)h(or)f(structured)g(and)f(whether)h(they)g(should)f(b)s(e)g
3232 (written)h(to)h(the)f(output)150 1858 y(\014les.)275
3233 1993 y(Annotations)27 b(can)h(also)f(b)s(e)g(used)g(without)g
3234 (registering)f(them)i(with)e(the)i(manager.)40 b(T)-8
3235 b(o)28 b(b)s(e)f(able)g(to)150 2102 y(write)d(annotations)h(to)h
3236 (output)f(\014les,)g(SUIF)g(m)m(ust)f(b)s(e)h(able)f(to)i(represen)m(t)
3237 f(them)g(as)g(lists)f(of)h(immediate)150 2212 y(v)-5
3238 b(alues)391 2179 y Fg(1)428 2212 y Fn(.)66 b(Because)40
3239 b(unregistered)e(annotations)h(are)g(not)g(written)f(to)i(the)f(output)
3240 f(\014les,)i(they)f(ma)m(y)150 2321 y(con)m(tain)34 b(arbitrary)f(data)
3241 h(structures.)50 b(Ob)m(viously)-8 b(,)34 b(they)g(can)g(only)f(b)s(e)g
3242 (used)g(in)m(ternally)e(within)h(one)150 2431 y(pass.)p
3243 150 5131 1200 4 v 192 5197 a Fg(1)275 5230 y Fn(The)27
3244 b(manager)i(m)m(ust)f(b)s(e)f(pro)m(vided)g(with)f(functions)h(to)i
3245 (con)m(v)m(ert)h(structured)d(annotations)h(to)h(and)275
3246 5340 y(from)g(these)i(immediate)f(v)-5 b(alues.)p eop
3247 %%Page: 7 9
3248 7 8 bop 150 -116 a Fn(Chapter)30 b(2:)41 b(Represen)m(tation)31
3249 b(of)f(Source)g(Files)1881 b(7)150 299 y Fj(2)80 b(Represen)l(tation)52
3250 b(of)i(Source)e(Files)275 543 y Fn(Eac)m(h)28 b(SUIF)f(program)g(has)h
3251 (a)g(single)e(in)m(ternal)g(data)i(structure,)g(called)f(a)h
3252 Fh(\014le)f(set)p Fn(,)h(whic)m(h)f(con)m(tains)150 653
3253 y(the)42 b(global)f(sym)m(b)s(ol)f(table)i(and)f(a)h(list)e(of)i(the)g
3254 (\014les)e(b)s(eing)g(compiled.)73 b(Man)m(y)43 b(passes)e(w)m(ork)h
3255 (on)g(a)150 763 y(single)30 b(\014le)h(at)h(a)g(time,)g(in)e(whic)m(h)h
3256 (case)h(the)g(\014le)f(set)h(con)m(tains)g(only)e(one)i(\014le)f(and)g
3257 (is)g(not)g(v)m(ery)h(useful.)150 872 y(In)m(terpro)s(cedural)26
3258 b(passes,)i(on)g(the)g(other)g(hand,)f(t)m(ypically)g(need)g(to)h(w)m
3259 (ork)g(on)g(all)e(of)i(the)g(\014les)f(at)h(once.)150
3260 982 y(By)35 b(using)f(the)h(\014le)f(set,)i(these)g(in)m(terpro)s
3261 (cedural)c(passes)j(need)g(not)g(resort)g(to)h(com)m(bining)d(all)h(of)
3262 h(the)150 1091 y(co)s(de)c(in)m(to)f(one)h(big)e(source)i(\014le.)275
3263 1229 y(A)25 b(source)h(\014le)f(within)e(a)k(\014le)e(set)h(is)f
3264 (represen)m(ted)g(b)m(y)h(a)g Fh(\014le)f(set)i(en)m(try)p
3265 Fn(,)g(whic)m(h)d(con)m(tains)i(the)g(sym)m(b)s(ol)150
3266 1339 y(table)j(for)h(the)g(\014le)e(scop)s(e)i(and)f(the)h(input)d(and)
3267 i(output)h(streams.)40 b(File)29 b(sets)h(pro)m(vide)f(the)h(mec)m
3268 (hanism)150 1448 y(to)h(allo)m(w)f(m)m(ultiple)e(\014les)h(to)i(b)s(e)f
3269 (read)g(and)g(written)g(b)m(y)g(a)h(SUIF)f(pass.)275
3270 1586 y(The)35 b(sym)m(b)s(ol)f(tables)i(in)e(the)i(\014le)f(set)h(and)f
3271 (\014le)g(set)h(en)m(tries)f(basically)f(form)i(a)g(table)f(of)h(con)m
3272 (ten)m(ts)150 1696 y(for)h(the)h(en)m(tire)f(program.)62
3273 b(They)37 b(con)m(tain)h(en)m(tries)f(for)h(ev)m(ery)g(sym)m(b)s(ol)e
3274 (and)h(t)m(yp)s(e)h(that)g(is)e(declared)150 1806 y(outside)28
3275 b(of)h(pro)s(cedures.)39 b(The)28 b(pro)s(cedures)g(and)g(ev)m
3276 (erything)g(within)f(them)h(can)h(b)s(e)f(accessed)i(via)f(the)150
3277 1915 y(pro)s(cedure)g(sym)m(b)s(ols)g(in)g(the)i(global)e(sym)m(b)s(ol)
3278 h(tables.)275 2053 y(The)h(`)p Fi(fileset.h)p Fn(')e(and)j(`)p
3279 Fi(fileset.cc)p Fn(')d(\014les)i(con)m(tain)h(the)g(source)f(co)s(de)h
3280 (for)g(the)g(\014le)e(set)j(and)e(\014le)150 2163 y(set)g(en)m(tries.)
3281 150 2429 y Fl(2.1)68 b(The)45 b(File)g(Set)275 2625 y
3282 Fn(The)22 b(\014le)h(set,)i(whic)m(h)d(con)m(tains)i(a)g(list)d(of)j
3283 (\014le)e(set)i(en)m(tries,)h(is)d(implemen)m(ted)g(b)m(y)h(the)h
3284 Fi(file_set)d Fn(class.)150 2734 y(The)31 b(list)g(of)h(\014les)f(can)h
3285 (b)s(e)g(accessed)h(directly)e(using)f(the)i Fi(file_list)e
3286 Fn(metho)s(d,)i(but)f(most)h(users)g(will)150 2844 y(not)24
3287 b(need)g(to)h(do)f(that)h(b)s(ecause)f(other)h(metho)s(ds)e(are)h(a)m
3288 (v)-5 b(ailable)24 b(to)h(p)s(erform)e(the)h(common)g(op)s(erations.)
3289 150 2954 y(The)32 b Fi(add_file)e Fn(metho)s(d)i(adds)g(a)h(new)f
3290 (\014le)f(set)i(en)m(try)g(to)g(the)g(list.)46 b(This)30
3291 b(metho)s(d)i(tak)m(es)i(the)f(names)150 3063 y(of)f(the)h(input)d
3292 (\014le)h(and)h(output)f(\014le)h(and)f(returns)g(the)i(new)e(\014le)h
3293 (set)g(en)m(try)-8 b(.)47 b(Either)31 b(the)h(input)f(\014le)g(or)150
3294 3173 y(the)i(output)g(\014le)f(ma)m(y)h(b)s(e)g Fi(NULL)p
3295 Fn(.)47 b(The)33 b Fi(file_set)d Fn(class)j(also)g(con)m(tains)g(an)g
3296 (iterator,)i(as)e(most)g(SUIF)150 3282 y(programmers)f(will)e(w)m(an)m
3297 (t)j(to)h(iterate)f(through)f(the)h(list)e(of)h(\014les.)47
3298 b(The)32 b Fi(reset_iter)e Fn(metho)s(d)i(resets)150
3299 3392 y(the)c(iterator)g(to)g(the)g(\014rst)f(\014le)f(set)i(en)m(try)-8
3300 b(.)41 b(The)27 b Fi(next_file)e Fn(metho)s(d)i(returns)f(the)i(next)g
3301 (\014le)f(set)h(en)m(try)150 3501 y(in)h(the)i(list.)275
3302 3639 y(Besides)23 b(the)h(list)f(of)h(\014les,)h(the)f(\014le)f(set)h
3303 (also)g(con)m(tains)g(the)h(global)e(sym)m(b)s(ol)g(table)g(\(see)i
3304 (Section)f(5.1.1)150 3749 y([Global)35 b(Sym)m(b)s(ol)e(T)-8
3305 b(able],)37 b(page)f(37\))g(whic)m(h)e(can)i(b)s(e)e(accessed)j(using)c
3306 (the)j Fi(globals)d Fn(metho)s(d.)55 b(This)150 3859
3307 y(sym)m(b)s(ol)23 b(table)i(con)m(tains)g(the)g(sym)m(b)s(ols)e(and)h
3308 (t)m(yp)s(es)h(that)g(are)g(visible)d(in)h(all)h(of)h(the)f(source)h
3309 (\014les.)38 b(Before)150 3968 y(a)32 b(group)e(of)h(\014les)g(can)g(b)
3310 s(e)g(com)m(bined)f(in)m(to)h(a)g(\014le)g(set,)h(their)e(global)h(sym)
3311 m(b)s(ol)e(tables)i(m)m(ust)g(b)s(e)g(merged)150 4078
3312 y(together.)42 b(A)31 b(separate)g(SUIF)f(link)m(er)f(is)g(pro)m(vided)
3313 g(for)h(this)f(purp)s(ose.)39 b(The)30 b(library)e(will)f(complain)i
3314 (if)150 4187 y(the)i(\014les)e(in)g(the)i(\014le)e(set)i(ha)m(v)m(e)g
3315 (not)g(b)s(een)f(prop)s(erly)e(link)m(ed.)275 4325 y(Curren)m(tly)-8
3316 b(,)31 b(only)h(one)h(\014le)e(set)i(is)e(allo)m(w)m(ed)i(p)s(er)e
3317 (SUIF)h(program.)47 b(This)30 b(restriction)i(w)m(as)g(made)h(so)150
3318 4435 y(that)h(prede\014ned)f(t)m(yp)s(es)h(could)e(b)s(e)i(en)m(tered)g
3319 (in)m(to)g(the)g(global)f(sym)m(b)s(ol)g(table)h(at)g(initialization)d
3320 (time.)150 4544 y(See)42 b(Section)g(7.9)g([Prede\014ned)f(T)m(yp)s
3321 (es],)k(page)d(60.)76 b(If)41 b(m)m(ultiple)f(\014le)h(sets)h(w)m(ere)g
3322 (p)s(ermitted,)h(these)150 4654 y(prede\014ned)37 b(t)m(yp)s(es)h(w)m
3323 (ould)f(b)s(e)h(duplicated.)63 b(A)39 b(single)e(global)h(\014le)f(set)
3324 i(is)f(created)h(when)f(the)g(SUIF)150 4764 y(library)28
3325 b(is)h(initialized;)f(the)i Fi(fileset)f Fn(global)g(v)-5
3326 b(ariable)30 b(p)s(oin)m(ts)f(to)i(this)e(\014le)h(set.)275
3327 4902 y(All)g(of)j(the)f(lo)m(w-lev)m(el)g(access)i(to)f(SUIF)f(\014les)
3328 f(is)g(p)s(erformed)g(automatically)h(b)m(y)g(the)g(library)-8
3329 b(.)44 b(The)150 5011 y(global)23 b(and)f(\014le)h(sym)m(b)s(ol)f
3330 (tables)h(are)g(read)h(from)e(the)i(input)d(\014les)h(when)h(they)g
3331 (are)h(added)e(to)i(the)g(\014le)e(set.)150 5121 y(Users)27
3332 b(can)g(then)g(read)g(and)f(write)h(individual)22 b(pro)s(cedure)k(b)s
3333 (o)s(dies)f(using)h(metho)s(ds)g(on)h(the)g(pro)s(cedure)150
3334 5230 y(sym)m(b)s(ols)j(\(see)j(Section)e(6.2)i([Pro)s(cedure)e(Sym)m(b)
3335 s(ols],)g(page)h(46\).)46 b(The)31 b(global)g(sym)m(b)s(ol)f(tables)i
3336 (are)g(not)150 5340 y(written)e(out)h(un)m(til)f(the)h(\014le)f(set)i
3337 (is)e(destro)m(y)m(ed.)43 b(Throughout)30 b(this)g(pro)s(cess,)h(the)g
3338 (\014le)g(set)g(k)m(eeps)h(trac)m(k)p eop
3339 %%Page: 8 10
3340 8 9 bop 150 -116 a Fn(8)2430 b(The)30 b(SUIF)g(V)-8 b(ersion)30
3341 b(1)h(Library)150 299 y(of)f(the)f(n)m(um)m(b)s(er)f(of)i(op)s(en)f
3342 (\014les)f(in)h(order)g(to)h(a)m(v)m(oid)g(exceeding)g(the)f(OS)g
3343 (limit.)38 b(If)29 b(there)h(are)g(to)s(o)g(man)m(y)150
3344 408 y(\014les)h(op)s(en)h(at)i(once,)g(the)e(\014le)g(set)h(will)d
3345 (automatically)i(\014nd)f(one)i(to)g(close.)47 b(This)31
3346 b(is)h(totally)g(in)m(visible)150 518 y(to)f(users.)40
3347 b(Files)29 b(that)i(are)g(temp)s(orarily)e(closed)h(are)h
3348 (automatically)f(reop)s(ened)f(as)i(needed.)275 659 y(As)36
3349 b(an)h(example)f(of)h(using)e(the)i(\014le)f(set,)j(the)e(follo)m(wing)
3350 e(co)s(de)i(reads)g(in)e(the)i(\014les)f Fi(infile1)f
3351 Fn(and)150 769 y Fi(infile2)k Fn(and)i(writes)f(them)h(out)g(to)h
3352 Fi(outfile1)d Fn(and)h Fi(outfile2)p Fn(,)i(resp)s(ectiv)m(ely)-8
3353 b(,)44 b(after)d(pro)s(cessing)150 879 y(them)30 b(with)f(the)i
3354 (user-de\014ned)e(routine)g Fi(process_file)p Fn(.)390
3355 1014 y Fi(fileset->add_file\("infil)o(e1",)41 b("outfile1"\);)390
3356 1118 y(fileset->add_file\("infil)o(e2",)g("outfile2"\);)390
3357 1325 y(file_set_entry)j(*fse;)390 1533 y(fileset->reset_iter\(\);)390
3358 1637 y(while)i(\(fse)h(=)g(fileset->next_file\(\)\))42
3359 b({)581 1740 y(process_file\(fse\);)390 1844 y(})390
3360 2052 y(delete)k(fileset;)150 2326 y Fl(2.2)68 b(File)46
3361 b(Set)f(En)l(tries)275 2526 y Fn(File)32 b(set)j(en)m(tries)e(are)h
3362 (implemen)m(ted)e(b)m(y)i(the)g Fi(file_set_entry)c Fn(class.)50
3363 b(The)33 b Fi(file_set_entry_)150 2635 y(list)e Fn(class)h(is)f(also)h
3364 (de\014ned)f(to)h(hold)f(the)h(\014le)f(set)i(en)m(tries)f(in)e(the)j
3365 (\014le)e(set.)46 b(A)32 b(\014le)f(set)i(en)m(try)f(records)150
3366 2745 y(the)j(input)f(and)g(output)h(streams)g(for)g(a)h(source)f
3367 (\014le.)55 b(Either)34 b(the)h(input)e(or)j(output)e(streams)i(could)
3368 150 2854 y(b)s(e)e(empt)m(y)-8 b(.)56 b(The)34 b Fi(name)g
3369 Fn(metho)s(d)g(returns)g(the)h(name)g(of)g(the)h(input)d(\014le,)i(if)f
3370 (it)h(exists.)54 b(Otherwise)33 b(it)150 2964 y(returns)27
3371 b(the)h(name)g(of)h(the)f(output)f(\014le.)40 b(The)27
3372 b Fi(parent)f Fn(metho)s(d)i(returns)f(the)h(\014le)f(set)i(whic)m(h)e
3373 (con)m(tains)150 3074 y(the)k(\014le)e(set)i(en)m(try)-8
3374 b(.)275 3215 y(The)39 b(\014le)f(set)j(en)m(try)f(also)f(con)m(tains)h
3375 (the)g(\014le)f(sym)m(b)s(ol)f(table.)69 b(See)40 b(Section)f(5.1.2)i
3376 ([File)f(Sym)m(b)s(ol)150 3325 y(T)-8 b(ables],)38 b(page)f(38.)59
3377 b(The)36 b(\014le)g(sym)m(b)s(ol)f(table)h(holds)f(the)h(sym)m(b)s(ols)
3378 f(and)h(t)m(yp)s(es)g(declared)g(within)e(the)150 3434
3379 y(scop)s(e)40 b(of)g(the)g(\014le.)69 b(This)38 b(includes)g(v)-5
3380 b(ariables)39 b(and)g(functions)g(declared)g(with)g(static)h(link)-5
3381 b(age)40 b(and)150 3544 y(t)m(yp)s(es)j(that)i(are)e(only)g(visible)e
3382 (within)g(the)i(\014le.)80 b(The)42 b(\014le)h(sym)m(b)s(ol)f(table)i
3383 (is)e(accessed)j(using)d(the)150 3653 y Fi(symtab)29
3384 b Fn(metho)s(d.)275 3795 y(The)d(\014le)g(set)i(en)m(try)f(class)g(pro)
3385 m(vides)f(an)h(iterator)h(to)g(visit)e(all)g(of)h(the)g(pro)s(cedures)f
3386 (that)i(are)f(de\014ned)150 3904 y(in)33 b(the)i(input)d(\014le.)52
3387 b(Note)36 b(that)f(this)e(do)s(es)i(not)f(include)e(pro)s(cedures)i
3388 (that)h(are)f(declared)g(but)g(whose)150 4014 y(b)s(o)s(dies)27
3389 b(are)i(de\014ned)f(elsewhere.)40 b(The)28 b Fi(reset_proc_iter)d
3390 Fn(metho)s(d)j(resets)h(the)h(iterator)f(to)h(the)f(\014rst)150
3391 4123 y(pro)s(cedure.)40 b(The)29 b Fi(next_proc)f Fn(metho)s(d)i
3392 (returns)f(the)i(next)f(pro)s(cedure)g(in)f(the)h(input)f(\014le.)275
3393 4265 y(The)37 b(follo)m(wing)f(co)s(de)h(reads)h(eac)m(h)g(pro)s
3394 (cedure)f(in)f(the)h(giv)m(en)h(\014le)f(set)h(en)m(try)-8
3395 b(,)40 b(calls)d(the)g(function)150 4374 y Fi(process_proc)27
3396 b Fn(on)j(the)h(pro)s(cedure,)e(and)h(then)g(writes)g(it)g(out.)390
3397 4510 y Fi(void)47 b(process_file)d(\(file_set_entry)g(*fse\))390
3398 4614 y({)581 4717 y(proc_sym)h(*psym;)581 4925 y
3399 (fse->reset_proc_iter\(\);)581 5029 y(while)h(\(psym)h(=)g
3400 (fse->next_proc\(\)\))c({)772 5132 y(psym->read_proc\(\);)772
3401 5340 y(process_procedure\(psym\);)p eop
3402 %%Page: 9 11
3403 9 10 bop 150 -116 a Fn(Chapter)30 b(2:)41 b(Represen)m(tation)31
3404 b(of)f(Source)g(Files)1881 b(9)772 403 y Fi(psym->write_proc\(fse\);)
3405 772 506 y(psym->flush_proc\(\);)581 610 y(})390 714 y(})p
3407 %%Page: 10 12
3408 10 11 bop 150 -116 a Fn(10)2385 b(The)30 b(SUIF)g(V)-8
3409 b(ersion)30 b(1)h(Library)p eop
3410 %%Page: 11 13
3411 11 12 bop 150 -116 a Fn(Chapter)30 b(3:)41 b(Abstract)31
3412 b(Syn)m(tax)f(T)-8 b(rees)2152 b(11)150 299 y Fj(3)80
3413 b(Abstract)53 b(Syn)l(tax)g(T)-13 b(rees)275 516 y Fn(Pro)s(cedure)27
3414 b(b)s(o)s(dies)g(are)i(represen)m(ted)g(using)e(a)i(language-indep)s
3415 (enden)m(t)e(form)h(of)h(abstract)g(syn)m(tax)150 625
3416 y(trees)35 b(\(ASTs\).)51 b(In)33 b(high-SUIF)g(co)s(de,)j(the)e(trees)
3417 h(con)m(tain)f(no)s(des)f(corresp)s(onding)f(to)j(the)f(high-lev)m(el)
3418 150 735 y(con)m(trol)24 b(structures)g(in)f(the)h(source)g(program.)38
3419 b(When)24 b(the)h(co)s(de)f(is)f(expanded)g(to)i(the)f(lo)m(w-SUIF)g
3420 (form,)150 844 y(these)31 b(high-lev)m(el)e(constructs)i(are)f
3421 (replaced)g(and)g(the)g(trees)h(degenerate)h(to)f(lists)e(of)i
3422 (instructions.)275 975 y(SUIF)d(is)f(not)i(restricted)f(to)h(handling)d
3423 (programs)i(with)g(structured)f(con)m(trol)i(\015o)m(w.)40
3424 b(Ev)m(en)29 b(in)e(high-)150 1085 y(SUIF)j(co)s(de,)h(lo)m(w-lev)m(el)
3425 g(branc)m(h)e(and)h(jump)f(instructions)g(ma)m(y)i(b)s(e)e(used)h(to)h
3426 (represen)m(t)g(unstructured)150 1195 y(con)m(trol)e(\015o)m(w.)40
3427 b(Ho)m(w)m(ev)m(er,)30 b(since)e(most)g(high-lev)m(el)f
3428 (transformations)g(are)i(only)e(applied)f(to)j(structured)150
3429 1304 y(co)s(de,)38 b(the)e(high-lev)m(el)e(AST)h(no)s(des)g(are)h(only)
3430 f(used)g(for)h(structured)f(co)s(de.)57 b(This)34 b(mak)m(es)i(it)g
3431 (easy)g(to)150 1414 y(iden)m(tify)29 b(and)h(optimize)f(regions)h(of)h
3432 (co)s(de)f(with)f(structured)h(con)m(trol)h(\015o)m(w.)275
3433 1545 y(The)e(\014les)h(`)p Fi(trees.h)p Fn(')f(and)g(`)p
3434 Fi(trees.cc)p Fn(')g(con)m(tain)i(the)f(co)s(de)h(for)f(tree)h(no)s
3435 (des)f(and)f(tree)i(no)s(de)f(lists.)150 1792 y Fl(3.1)68
3436 b(T)-11 b(ree)45 b(No)t(des)275 1981 y Fn(The)24 b(di\013eren)m(t)g
3437 (kinds)e(of)j(AST)e(no)s(des)h(are)h(represen)m(ted)g(b)m(y)f(ob)5
3438 b(jects)25 b(deriv)m(ed)f(from)g(the)g Fi(tree_node)150
3439 2090 y Fn(class.)40 b(This)26 b(base)i(class)g(includes)e(features,)j
3440 (suc)m(h)f(as)h(ID)f(n)m(um)m(b)s(ers,)g(that)g(are)h(shared)e(b)m(y)h
3441 (all)g(kinds)e(of)150 2200 y(tree)31 b(no)s(des.)275
3442 2331 y(The)22 b(simplest)e(kind)h(of)i(tree)g(no)s(de)f(is)g(a)g
3443 Fi(tree_instr)p Fn(.)36 b(Eac)m(h)23 b(of)g(these)g(is)e(a)i(leaf)g(no)
3444 s(de)f(that)h(con)m(tains)150 2441 y(a)31 b(single)e(instruction)f(or)j
3445 (expression.)275 2572 y(Conditional)c(structures)j(ma)m(y)h(b)s(e)f
3446 (represen)m(ted)g(b)m(y)h Fi(tree_if)d Fn(no)s(des.)275
3447 2703 y(The)j(ASTs)h(include)e(t)m(w)m(o)k(di\013eren)m(t)e(kinds)e(of)j
3448 (lo)s(op)e(no)s(des.)46 b(The)32 b Fi(tree_loop)e Fn(no)s(des)h(just)h
3449 (record)150 2812 y(the)h(con)m(trol-\015o)m(w)g(structure)g(of)f(the)h
3450 (lo)s(ops)f(and)g(are)h(used)f(to)h(represen)m(t)g(generic)g
3451 (\\do-while")f(lo)s(ops.)150 2922 y(Man)m(y)41 b(optimizations,)h(ho)m
3452 (w)m(ev)m(er,)j(only)40 b(apply)f(to)i(certain)g(w)m(ell-b)s(eha)m(v)m
3453 (ed)f(t)m(yp)s(es)h(of)f(lo)s(ops.)71 b(Th)m(us,)150
3454 3031 y(the)30 b(trees)g(ma)m(y)f(also)h(con)m(tain)g
3455 Fi(tree_for)d Fn(no)s(des)h(to)i(represen)m(t)g(lo)s(ops)e(with)g
3456 (scalar)i(indices)d(that)j(v)-5 b(ary)150 3141 y(from)29
3457 b(their)g(initial)e(to)j(\014nal)f(v)-5 b(alues,)29 b(b)s(eing)f
3458 (incremen)m(ted)i(or)f(decremen)m(ted)i(on)e(ev)m(ery)i(iteration,)f
3459 (and)150 3250 y(that)35 b(meet)h(v)-5 b(arious)33 b(other)i(requiremen)
3460 m(ts.)52 b(Most)36 b(F)-8 b(ortran)35 b Fi(DO)f Fn(lo)s(ops)g(qualify)e
3461 (as)j Fi(tree_for)d Fn(no)s(des.)150 3360 y(Those)37
3462 b(lo)s(ops)f(whic)m(h)g(do)i(not)f(meet)h(the)g(requiremen)m(ts)e(for)h
3463 Fi(tree_for)f Fn(no)s(des)g(are)i(represen)m(ted)f(b)m(y)150
3464 3470 y Fi(tree_loop)28 b Fn(no)s(des)h(instead.)275 3601
3465 y(Nested)36 b(scop)s(es)f(are)h(represen)m(ted)f(b)m(y)g
3466 Fi(tree_block)e Fn(no)s(des.)54 b(A)36 b Fi(tree_block)c
3467 Fn(con)m(tains)k(a)g(list)e(of)150 3710 y(tree)29 b(no)s(des)f(and)g(a)
3468 h(sym)m(b)s(ol)e(table.)40 b(The)29 b(sym)m(b)s(ols)e(and)h(t)m(yp)s
3469 (es)g(in)g(the)h(table)f(ma)m(y)h(only)f(b)s(e)g(referenced)150
3470 3820 y(from)36 b(within)d(the)j(blo)s(c)m(k.)58 b(The)35
3471 b(no)s(de)h(at)h(the)f(ro)s(ot)g(of)h(an)f(AST)f(is)g(a)i(sp)s(ecial)d
3472 (kind)g(of)j Fi(tree_block)150 3929 y Fn(called)e(a)i
3473 Fi(tree_proc)p Fn(.)56 b(The)35 b Fi(tree_proc)f Fn(ob)5
3474 b(jects)37 b(use)f(a)g(sligh)m(tly)f(di\013eren)m(t)g(kind)g(of)h(sym)m
3475 (b)s(ol)f(table)150 4039 y(and)30 b(include)e(some)j(extra)g(metho)s
3476 (ds)e(but)h(are)h(otherwise)f(the)g(same)h(as)g(the)f
3477 Fi(tree_block)e Fn(ob)5 b(jects.)150 4253 y Ff(3.1.1)63
3478 b(ID)40 b(Num)m(b)s(ers)h(for)g(T)-10 b(ree)41 b(No)s(des)i(and)e
3479 (Instructions)275 4442 y Fn(Within)36 b(eac)m(h)k(pro)s(cedure,)g(the)f
3480 (tree)g(no)s(des)f(and)g(instructions)f(are)i(assigned)f(unique)f(ID)h
3481 (n)m(um-)150 4551 y(b)s(ers.)49 b(These)34 b(n)m(um)m(b)s(ers)e(can)i
3482 (b)s(e)f(used)g(to)h(iden)m(tify)e(the)i(no)s(des)f(and)g(instructions)
3483 f(in)m(ternally)f(and)i(in)150 4661 y(annotations)28
3484 b(that)g(are)g(written)e(to)i(the)g(output)f(\014les.)39
3485 b(The)27 b Fi(number)e Fn(metho)s(d)i(retriev)m(es)h(the)g(ID)f(n)m
3486 (um-)150 4771 y(b)s(ers.)51 b(It)34 b(is)f(generally)g(b)s(est)h(to)h
3487 (a)m(v)m(oid)f(using)f(the)h(n)m(um)m(b)s(ers)f(on)h
3488 Fi(tree_instr)d Fn(no)s(des,)k(b)s(ecause)f(they)150
3489 4880 y(are)29 b(not)f(written)g(to)h(the)f(output)g(\014les)g(and)f
3490 (the)i Fi(tree_instr)d Fn(no)s(des)h(are)i(automatically)f(rearranged)
3491 150 4990 y(when)h(con)m(v)m(erting)h(b)s(et)m(w)m(een)g(expression)e
3492 (trees)i(and)f(\015at)h(lists)e(of)i(instructions.)38
3493 b(Instead,)30 b(use)f(the)h(ID)150 5099 y(n)m(um)m(b)s(ers)f(for)h(the)
3494 h(corresp)s(onding)d(instructions.)275 5230 y(The)33
3495 b Fi(number_instrs)e Fn(metho)s(d)j(in)f(the)i Fi(tree_proc)d
3496 Fn(class)i(assigns)g(ID)g(n)m(um)m(b)s(ers)f(to)j(tree)f(no)s(des)150
3497 5340 y(and)26 b(instructions)e(that)k(do)e(y)m(et)i(ha)m(v)m(e)g(n)m
3498 (um)m(b)s(ers)d(\(i.e.)39 b(those)27 b(that)h(w)m(ere)f(created)g
3499 (since)f(the)h(pro)s(cedure)p eop
3500 %%Page: 12 14
3501 12 13 bop 150 -116 a Fn(12)2385 b(The)30 b(SUIF)g(V)-8
3502 b(ersion)30 b(1)h(Library)150 299 y(w)m(as)c(read)g(in\).)38
3503 b(This)25 b(metho)s(d)i(is)e(called)h(automatically)h(b)s(efore)f(eac)m
3504 (h)i(pro)s(cedure)e(is)g(written)g(out,)i(but)150 408
3505 y(y)m(ou)35 b(ma)m(y)h(also)f(call)g(it)f(whenev)m(er)i(ID)f(n)m(um)m
3506 (b)s(ers)f(are)h(needed)g(for)g(new)g(tree)g(no)s(des)g(or)g
3507 (instructions.)150 518 y(The)24 b(next)h(un)m(used)e(ID)i(n)m(um)m(b)s
3508 (er)f(is)g(recorded)g(in)f(the)i(pro)s(cedure)f(sym)m(b)s(ol)f(table.)
3509 39 b(In)24 b(the)h Fi(proc_symtab)150 628 y Fn(class,)g(the)f
3510 Fi(next_instr_num)d Fn(metho)s(d)i(returns)g(the)h(next)g(ID)g(n)m(um)m
3511 (b)s(er)f(and)g(incremen)m(ts)h(the)g(coun)m(ter;)150
3512 737 y(the)k Fi(instr_num)d Fn(metho)s(d)i(returns)f(the)i(next)g(n)m
3513 (um)m(b)s(er)e(but)h(do)s(es)h(not)f(incremen)m(t)h(the)f(coun)m(ter.)
3514 41 b(Since)150 847 y(y)m(ou)35 b(can)g(only)f(assign)g(new)g(ID)h(n)m
3515 (um)m(b)s(ers)e(with)g(the)i Fi(number_instrs)c Fn(metho)s(d,)k(y)m(ou)
3516 g(will)d(rarely)-8 b(,)36 b(if)150 956 y(ev)m(er,)31
3517 b(need)g(to)g(access)g(this)f(coun)m(ter)h(directly)-8
3518 b(.)275 1103 y(In)34 b(some)i(circumstances,)g(the)f(tree)h(no)s(de)f
3519 (and)f(instruction)f(ID)j(n)m(um)m(b)s(ers)d(m)m(ust)i(b)s(e)g(reset.)
3520 55 b(The)150 1213 y(most)42 b(common)g(case)h(is)e(when)g(mo)m(ving)h
3521 (co)s(de)g(from)g(one)g(pro)s(cedure)f(to)h(another.)76
3522 b(Since)41 b(the)h(ID)150 1322 y(n)m(um)m(b)s(ers)25
3523 b(are)h(only)f(unique)g(within)e(eac)m(h)28 b(pro)s(cedure,)e(mo)m
3524 (ving)g(things)f(b)s(et)m(w)m(een)h(pro)s(cedures)f(is)g(lik)m(ely)150
3525 1432 y(to)33 b(create)h(duplicate)d(ID)i(n)m(um)m(b)s(ers.)45
3526 b(T)-8 b(o)33 b(a)m(v)m(oid)g(this)e(problem,)g(the)i
3527 Fi(tree_node)p Fn(,)e Fi(tree_node_list)p Fn(,)150 1541
3528 y(and)d Fi(instruction)e Fn(classes)j(pro)m(vide)f Fi(clear_numbers)d
3529 Fn(metho)s(ds)j(to)i(reset)f(the)g(ID)g(n)m(um)m(b)s(ers.)39
3530 b(These)150 1651 y(metho)s(ds)d(recursiv)m(ely)g(descend)h(the)g(ASTs)f
3531 (and)g(expression)g(trees)i(to)f(set)h(all)e(of)h(the)g(ID)g(n)m(um)m
3532 (b)s(ers)150 1761 y(within)28 b(the)i(ob)5 b(ject)32
3533 b(and)d(its)h(c)m(hildren)e(to)k(zero.)150 2009 y Ff(3.1.2)63
3534 b(Other)41 b(F)-10 b(eatures)41 b(Shared)g(b)m(y)f(All)h(T)-10
3535 b(ree)41 b(No)s(des)275 2214 y Fn(The)36 b Fi(tree_node)e
3536 Fn(class)i(includes)e(sev)m(eral)j(metho)s(ds)f(to)i(mak)m(e)f(it)g
3537 (more)f(con)m(v)m(enien)m(t)i(to)g(retriev)m(e)150 2323
3538 y(information)c(that)h(is)g(not)g(directly)f(stored)h(in)f(a)i(no)s
3539 (de.)55 b(The)34 b Fi(scope)g Fn(metho)s(d)h(returns)f(the)h(sym)m(b)s
3540 (ol)150 2433 y(table)d(for)g(the)g(closest)g(enclosing)f(scop)s(e)h(at)
3541 h(a)f(tree)h(no)s(de.)45 b(The)32 b Fi(proc)e Fn(metho)s(d)i(ascends)g
3542 (to)g(the)h(ro)s(ot)150 2542 y(of)e(the)g(AST)g(to)g(\014nd)f(the)h
3543 (sym)m(b)s(ol)f(for)h(the)g(pro)s(cedure)f(con)m(taining)g(the)i(tree)f
3544 (no)s(de.)42 b(Of)31 b(course,)g(that)150 2652 y(only)37
3545 b(w)m(orks)g(if)g(the)g(no)s(de)g(is)g(prop)s(erly)e(attac)m(hed)40
3546 b(to)e(an)f(AST)g(that)h(is)f(connected)h(to)h(a)f(particular)150
3547 2761 y(pro)s(cedure)29 b(sym)m(b)s(ol.)275 2908 y(T)-8
3548 b(extual)32 b(represen)m(tations)g(of)g(tree)h(no)s(des)f(can)g(easily)
3549 f(b)s(e)h(prin)m(ted)f(out)h(to)h(\014les)e(using)g(the)h
3550 Fi(print)150 3018 y Fn(metho)s(d.)41 b(The)31 b(optional)e
3551 Fi(depth)h Fn(parameter)h(sp)s(eci\014es)e(the)i(inden)m(tation)f(lev)m
3552 (el)g(for)h(the)g(output.)41 b(The)150 3127 y(output)29
3553 b(formats)g(for)h(most)f(kinds)f(of)h(tree)h(no)s(des)f(are)g(sho)m(wn)
3554 g(in)f(subsequen)m(t)h(sections.)40 b(F)-8 b(or)30 b(instruc-)150
3555 3237 y(tion)g(no)s(des,)g(the)g(SUIF)g(instructions)f(are)h(prin)m(ted)
3556 f(directly)-8 b(.)275 3383 y(All)37 b(tree)j(no)s(des,)h(except)f(for)f
3557 Fi(tree_proc)d Fn(no)s(des,)41 b(are)f(stored)f(on)g(tree)h(no)s(de)e
3558 (lists.)65 b(Eac)m(h)40 b(tree)150 3493 y(no)s(de)32
3559 b(has)g(a)g(bac)m(k-p)s(oin)m(ter)h(to)g(the)f(list)f(that)i(con)m
3560 (tains)g(it.)46 b(The)31 b Fi(parent)g Fn(metho)s(d)h(is)f(used)h(to)h
3561 (access)150 3603 y(this)g(list)g(p)s(oin)m(ter.)52 b(The)34
3562 b(paren)m(t)h(of)f(a)h Fi(tree_proc)d Fn(is)h(alw)m(a)m(ys)i
3563 Fi(NULL)p Fn(.)52 b(The)34 b(paren)m(t)g(list)f(p)s(oin)m(ters)h(are)
3564 150 3712 y(set)44 b(automatically)e(when)g(tree)i(no)s(des)e(are)i
3565 (added)e(to)i(lists,)h(so)e(y)m(ou)g(do)g(not)h(ha)m(v)m(e)g(to)g(deal)
3566 e(with)150 3822 y(main)m(taining)29 b(these)h(y)m(ourself.)275
3567 3968 y(Lik)m(e)25 b(the)g(other)h(lists)e(in)g(SUIF)h(\(see)h(Section)f
3568 (11.1)i([Generic)e(Lists],)h(page)g(79\),)i(tree)e(no)s(de)f(lists)f
3569 (are)150 4078 y(made)29 b(up)e(of)i(list)e(elemen)m(ts.)41
3570 b(Eac)m(h)29 b(of)g(these)g(list)e(elemen)m(ts)i(con)m(tains)g(a)g(p)s
3571 (oin)m(ter)f(to)h(a)g(particular)e(tree)150 4188 y(no)s(de.)48
3572 b(Because)34 b(man)m(y)f(of)h(the)f(list)e(metho)s(ds)i(op)s(erate)g
3573 (on)g(the)g(list)f(elemen)m(ts)h(rather)g(than)g(the)g(tree)150
3574 4297 y(no)s(des,)j(one)g(often)f(needs)g(to)h(kno)m(w)f(the)h(elemen)m
3575 (t)g(con)m(taining)f(a)g(tree)h(no)s(de.)55 b(Th)m(us)34
3576 b(the)i(tree)g(no)s(des)150 4407 y(con)m(tain)30 b(bac)m(k-p)s(oin)m
3577 (ters)f(to)h(the)f(list)f(elemen)m(ts,)i(whic)m(h)e(can)h(b)s(e)g
3578 (accessed)h(with)e(the)i Fi(list_e)d Fn(metho)s(d.)150
3579 4516 y(Lik)m(e)36 b(the)f(paren)m(t)h(p)s(oin)m(ter,)g(the)g(list)f
3580 (elemen)m(t)h(p)s(oin)m(ter)e(is)h(automatically)h(set)g(when)f(a)h
3581 (tree)g(no)s(de)f(is)150 4626 y(en)m(tered)c(in)e(a)i(list.)275
3582 4772 y(F)-8 b(or)28 b(example,)g(the)g(list)f(elemen)m(ts)h(are)g
3583 (needed)g(for)f(inserting)f(no)s(des)h(b)s(efore)h(or)f(after)i(other)f
3584 (no)s(des)150 4882 y(in)k(a)h(list)f(and)g(for)h(remo)m(ving)g(no)s
3585 (des)f(from)g(their)h(lists.)47 b(The)32 b(follo)m(wing)g(co)s(de)h
3586 (inserts)f(the)h(tree)h(no)s(de)150 4992 y Fi(new_node)28
3587 b Fn(b)s(efore)i(the)h(tree)g(no)s(de)e Fi(cur_node)g
3588 Fn(and)g(then)h(remo)m(v)m(es)i Fi(cur_node)c Fn(from)i(the)h(list:)390
3589 5132 y Fi(tree_node_list)44 b(*tnl)j(=)g(cur_node->parent\(\);)390
3590 5236 y(tnl->insert_before\(new_n)o(ode,)41 b(cur_node->list_e\(\)\);)
3591 390 5340 y(tree_node_list_e)i(*elem)k(=)g(tnl->remove\(cur_node->lis)o
3592 (t_e\()o(\)\);)p eop
3593 %%Page: 13 15
3594 13 14 bop 150 -116 a Fn(Chapter)30 b(3:)41 b(Abstract)31
3595 b(Syn)m(tax)f(T)-8 b(rees)2152 b(13)150 299 y Ff(3.1.3)63
3596 b(Instruction)41 b(No)s(des)275 495 y Fn(Instruction)29
3597 b(no)s(des,)i(implemen)m(ted)e(b)m(y)i(the)g Fi(tree_instr)d
3598 Fn(class,)j(are)g(the)h(lea)m(v)m(es)g(of)f(the)g(abstract)150
3599 605 y(syn)m(tax)j(trees.)50 b(Eac)m(h)34 b(instruction)e(no)s(de)h(con)
3600 m(tains)g(a)h(single)e(instruction)f(or)j(expression)e(tree)i(whic)m(h)
3601 150 714 y(can)24 b(b)s(e)f(accessed)i(using)e(the)h Fi(instr)e
3602 Fn(metho)s(d.)38 b(The)23 b Fi(set_instr)e Fn(metho)s(d)j(attac)m(hes)i
3603 (an)d(instruction)f(to)150 824 y(a)29 b Fi(tree_instr)p
3604 Fn(,)e(and)h(the)h Fi(remove_instr)d Fn(metho)s(d)i(detac)m(hes)i(an)f
3605 (instruction.)38 b(Note)30 b(that)g Fi(remove_)150 934
3606 y(instr)j Fn(do)s(es)h(not)g(free)g(the)g(storage)i(for)e(the)g
3607 (instruction,)g(and)f(unlik)m(e)g(the)h Fi(remove)e Fn(metho)s(d)i(in)f
3608 (the)150 1043 y Fi(instruction)e Fn(class)i(\(see)i(Section)e(4.1.5)i
3609 ([Source)f(Op)s(erands],)f(page)h(26\),)i(it)d(do)s(es)h(not)g(remo)m
3610 (v)m(e)h(the)150 1153 y(instruction)22 b(from)h(its)h(expression)e
3611 (tree.)40 b(Con)m(v)m(ersely)-8 b(,)25 b(remo)m(ving)f(an)g
3612 (instruction)e(from)h(an)h(expression)150 1262 y(tree)31
3613 b(with)e(the)i Fi(remove)d Fn(metho)s(d)i(will)e(automatically)i(call)g
3614 Fi(remove_instr)d Fn(if)i(necessary)-8 b(.)275 1400 y(The)20
3615 b(SUIF)h(library)d(automatically)j(main)m(tains)e(bac)m(k-p)s(oin)m
3616 (ters)i(from)g(instructions)d(to)k(their)e(paren)m(t)150
3617 1510 y Fi(tree_instr)32 b Fn(no)s(des.)55 b(As)35 b(a)h(result,)f(the)h
3618 Fi(set_instr)c Fn(and)j Fi(remove_instr)d Fn(metho)s(ds)i(m)m(ust)h
3619 (alw)m(a)m(ys)150 1620 y(b)s(e)30 b(used)f(to)i(attac)m(h)i(and)d
3620 (detac)m(h)h(instructions)d(to)j Fi(tree_instr)d Fn(no)s(des.)40
3621 b(Nev)m(er)31 b(use)f(the)h(instruction)150 1729 y(in)j(a)i
3622 Fi(tree_instr)d Fn(elsewhere)i(without)f(\014rst)h(calling)f
3623 Fi(remove_instr)p Fn(,)g(and)g(nev)m(er)i(use)f Fi(set_instr)150
3624 1839 y Fn(with)29 b(a)i Fi(tree_instr)c Fn(that)k(already)f(con)m
3625 (tains)h(an)f(instruction.)275 1977 y(Unlik)m(e)h(other)i(tree)g(no)s
3626 (des,)g(instruction)d(no)s(des)i(are)h(considered)e(temp)s(orary)h(ob)5
3627 b(jects.)48 b(They)33 b(are)150 2087 y(destro)m(y)m(ed)23
3628 b(and)e(created)i(automatically)f(b)m(y)f(the)h(SUIF)g(library)d(when)i
3629 (switc)m(hing)g(b)s(et)m(w)m(een)h(expression)150 2196
3630 y(trees)i(and)f(\015at)g(lists,)h(and)f(their)f(annotations)i(and)f(ID)
3631 g(n)m(um)m(b)s(ers)f(are)i(not)g(written)e(to)i(the)g(output)f
3632 (\014les.)150 2306 y(Consequen)m(tly)-8 b(,)29 b(annotations)h(should)d
3633 (generally)h(not)i(b)s(e)e(attac)m(hed)j(to)f(them)f(but)g(should)e
3634 (instead)i(b)s(e)150 2415 y(placed)h(directly)f(on)h(the)h
3635 (instructions.)275 2554 y(The)i(destructor)g(for)g(the)h
3636 Fi(tree_instr)d Fn(class)i(also)h(deletes)f(the)h(instruction)d(or)j
3637 (expression)e(tree)150 2663 y(con)m(tained)j(in)f(the)i(no)s(de.)54
3638 b(This)34 b(is)g(the)i(desired)d(b)s(eha)m(vior)i(for)g(most)g(cases.)
3639 56 b(Ho)m(w)m(ev)m(er,)39 b(if)34 b(y)m(ou)i(only)150
3640 2773 y(w)m(an)m(t)c(to)f(delete)g(the)g Fi(tree_instr)d
3641 Fn(no)s(de,)i(simply)f(call)h Fi(remove_instr)d Fn(\014rst)j(and)g(sa)m
3642 (v)m(e)i(a)f(p)s(oin)m(ter)f(to)150 2882 y(the)h(instruction.)275
3643 3021 y(Often)21 b(in)f(SUIF)h(one)g(needs)g(to)h(p)s(erform)e(some)i
3644 (op)s(eration)f(on)g(all)f(the)i(instructions)d(in)h(a)i(pro)s(cedure.)
3645 150 3130 y(The)27 b Fi(map)f Fn(metho)s(ds)h(in)f(the)h
3646 Fi(tree_node)e Fn(and)h Fi(tree_node_list)e Fn(classes)j(\(see)h
3647 (Section)f(3.3)i([Mapping)150 3240 y(Subtrees],)k(page)h(21\))g(mak)m
3648 (e)g(it)f(easy)g(to)h(visit)e(all)g(of)h(the)g(instruction)e(no)s(des.)
3649 48 b(Once)33 b(an)g(instruction)150 3349 y(no)s(de)24
3650 b(is)f(reac)m(hed,)k(its)d Fi(instr_map)e Fn(metho)s(d)i(ma)m(y)h(b)s
3651 (e)f(used)f(to)i(apply)e(a)i(function)e(to)j(ev)m(ery)f(instruction)150
3652 3459 y(in)34 b(the)h(asso)s(ciated)g(expression)f(tree.)54
3653 b(Giv)m(en)35 b(a)g(function)f(of)h(t)m(yp)s(e)g Fi(instr_map_f)p
3654 Fn(,)e Fi(instr_map)g Fn(will)150 3568 y(tra)m(v)m(erse)41
3655 b(the)f(expression)e(tree)i(and)f(apply)f(the)h(function)f(to)i(ev)m
3656 (ery)h(instruction.)65 b(The)39 b Fi(preorder)150 3678
3657 y Fn(parameter)32 b(is)f(used)g(to)i(select)f(either)g(preorder)e(or)i
3658 (p)s(ostorder)f(tra)m(v)m(ersals;)j(the)e(default)f(is)g(preorder.)150
3659 3788 y(The)c Fi(instr_map_f)d Fn(function)i(tak)m(es)i(t)m(w)m(o)h
3660 (argumen)m(ts:)39 b(the)27 b(instruction)f(p)s(oin)m(ter)g(and)g(a)i
3661 Fi(void*)d Fn(v)-5 b(alue)150 3897 y(that)31 b(y)m(ou)g(pro)m(vide)e
3662 (to)i Fi(instr_map)p Fn(.)150 4129 y Ff(3.1.4)63 b(If)40
3663 b(No)s(des)275 4325 y Fn(No)s(des)35 b(from)f(the)h Fi(tree_if)f
3664 Fn(class)h(represen)m(t)g(\\if-then-else")g(structures.)54
3665 b(A)36 b Fi(tree_if)d Fn(con)m(tains)150 4435 y(three)26
3666 b(tree)g(no)s(de)f(lists:)36 b(the)26 b Fi(header)p Fn(,)f(the)h
3667 Fi(then_part)p Fn(,)e(and)h(the)g Fi(else_part)p Fn(.)37
3668 b(The)25 b Fi(header)f Fn(con)m(tains)150 4544 y(co)s(de)36
3669 b(to)g(ev)-5 b(aluate)37 b(the)f(\\if)7 b(")35 b(condition)g(and)g
3670 (branc)m(h)g(to)i(the)f Fi(jumpto)e Fn(lab)s(el,)h(implicitly)d(lo)s
3671 (cated)k(at)150 4654 y(the)41 b(b)s(eginning)e(of)i(the)h
3672 Fi(else_part)p Fn(,)f(if)f(the)i(condition)d(is)i(false.)72
3673 b(Otherwise)40 b(it)h(falls)f(through)g(to)150 4763 y(the)34
3674 b Fi(then_part)p Fn(.)48 b(The)33 b Fi(then_part)e Fn(implicitly)f
3675 (ends)j(with)g(a)h(jump)e(around)g(the)i Fi(else_part)p
3676 Fn(.)48 b(The)150 4873 y Fi(tree_if)28 b Fn(class)j(pro)m(vides)e
3677 (metho)s(ds)h(to)h(access)g(all)f(of)g(these)h(parts.)275
3678 5011 y(The)k Fi(jumpto)f Fn(lab)s(el)h(m)m(ust)h(b)s(e)f(de\014ned)g
3679 (in)g(the)h(scop)s(e)g(con)m(taining)g(the)g Fi(tree_if)e
3680 Fn(no)s(de,)j(but)f(the)150 5121 y(lab)s(el)27 b(p)s(osition)g(is)h
3681 (implicit)d(rather)k(than)f(b)s(eing)f(mark)m(ed)i(b)m(y)g(a)g(lab)s
3682 (el)e(instruction.)38 b(When)28 b(the)h Fi(tree_)150
3683 5230 y(if)24 b Fn(is)g(expanded)g(to)i(lo)m(w-SUIF)f(form,)g(a)h(lab)s
3684 (el)d(instruction)g(for)h Fi(jumpto)f Fn(is)h(inserted)g(at)i(the)f(b)s
3685 (eginning)150 5340 y(of)i(the)f Fi(else_part)p Fn(.)37
3686 b(The)26 b Fi(jumpto)f Fn(lab)s(el)g(also)h(has)h(the)f(restriction)g
3687 (that)h(it)f(ma)m(y)h(only)f(b)s(e)g(used)g(in)f(the)p
3689 %%Page: 14 16
3690 14 15 bop 150 -116 a Fn(14)2385 b(The)30 b(SUIF)g(V)-8
3691 b(ersion)30 b(1)h(Library)150 299 y Fi(header)22 b Fn(list)g(of)h(its)g
3692 Fi(tree_if)p Fn(;)h(it)f(is)f(illegal)f(to)k(use)e(this)f(lab)s(el)f
3693 (at)j(all)f(in)f(the)h Fi(then_part)e Fn(or)i Fi(else_part)p
3694 Fn(,)150 408 y(or)30 b(at)h(all)f(outside)f(the)i Fi(tree_if)p
3695 Fn(.)275 552 y(Although)c(the)h(tree)h(no)s(de)e(lists)f(within)g(a)i
3696 Fi(tree_if)e Fn(can)i(hold)f(arbitrary)g(ASTs,)h(certain)f(con)m(v)m
3697 (en-)150 661 y(tions)j(m)m(ust)g(b)s(e)g(follo)m(w)m(ed.)275
3698 805 y(The)h Fi(header)e Fn(list)i(is)f(only)h(allo)m(w)m(ed)g(limited)f
3699 (con)m(trol)i(\015o)m(w.)44 b(It)32 b(ma)m(y)g(con)m(tain)g
3700 Fi(tree_instr)d Fn(no)s(des)150 914 y(and)k(other)h Fi(tree_if)d
3701 Fn(no)s(des)i(arbitrarily)e(nested,)j(but)f(it)g(is)g(not)g(allo)m(w)m
3702 (ed)h(an)m(y)g Fi(tree_block)p Fn(,)d Fi(tree_)150 1024
3703 y(for)p Fn(,)j(or)g Fi(tree_loop)d Fn(no)s(des,)j(ev)m(en)g(in)f
3704 (nested)g Fi(tree_if)f Fn(no)s(des.)50 b(Lab)s(el)33
3705 b(instructions)e(ma)m(y)k(b)s(e)e(used)150 1134 y(within)27
3706 b(the)i Fi(header)p Fn(,)f(but)h(jumps)f(or)h(branc)m(hes)g(from)g
3707 (outside)f(the)i Fi(header)d Fn(in)m(to)j(it)f(are)g(not)h(allo)m(w)m
3708 (ed;)150 1243 y(suc)m(h)38 b(a)h(lab)s(el)e(can)h(only)g(b)s(e)g(the)g
3709 (target)i(of)f(branc)m(hes)f(or)g(jumps)f(from)h(elsewhere)g(in)f(the)h
3710 Fi(header)p Fn(.)150 1353 y(Similarly)-8 b(,)34 b(all)h(of)h(the)h
3711 (branc)m(h)e(and)g(jump)g(instructions)f(are)i(allo)m(w)m(ed)g(within)e
3712 (the)i Fi(header)p Fn(,)g(but)f(all)150 1462 y(the)28
3713 b(target)i(lab)s(els)c(m)m(ust)j(b)s(e)e(within)f(the)i
3714 Fi(header)f Fn(list)f(with)h(one)i(imp)s(ortan)m(t)e(exception:)40
3715 b(branc)m(h)28 b(and)150 1572 y(jump)h(targets)j(ma)m(y)f(include)d
3716 (the)i Fi(jumpto)f Fn(lab)s(el)g(of)h(the)h(original)d
3717 Fi(tree_if)h Fn(no)s(de.)275 1715 y(The)36 b(idea)h(is)f(that)i(the)f
3718 Fi(header)e Fn(part)i(con)m(tains)g(the)h(computation)f(to)g(\014gure)g
3719 (out)g(whether)g(the)150 1825 y Fi(then_part)23 b Fn(or)i
3720 Fi(else_part)d Fn(is)i(executed.)40 b(Often)25 b(this)f(will)f(b)s(e)h
3721 (a)i(single)d(conditional)h(branc)m(h)g(instruc-)150
3722 1935 y(tion)36 b(to)i(the)e Fi(jumpto)f Fn(lab)s(el.)58
3723 b(But)37 b(w)m(e)g(w)m(an)m(t)h(to)f(allo)m(w)f(more)h(complex)f(test)i
3724 (computations)e(than)h(a)150 2044 y(single)c(SUIF)i(expression.)52
3725 b(In)34 b(particular,)g(w)m(e)h(w)m(an)m(t)g(to)h(b)s(e)e(able)g(to)h
3726 (capture)g(all)e(the)i(computation)150 2154 y(in)d(a)i(C)g(test)g
3727 (expression,)g(whic)m(h)e(ma)m(y)i(con)m(tain)g(short-circuit)f(ev)-5
3728 b(aluation)33 b(of)h Fi(&&)f Fn(and)g Fi(||)g Fn(op)s(erators)150
3729 2263 y(and)e(partial)g(ev)-5 b(aluation)32 b(of)g(the)g
3730 Fi(?:)f Fn(op)s(erator.)46 b(The)32 b(fron)m(t)g(end)f(puts)h(the)g
3731 (computation)g(of)g(the)g(test)150 2373 y(expression)g(of)h(a)g(C)g
3732 Fi(if)g Fn(statemen)m(t)h(in)e(the)h Fi(header)f Fn(of)h(the)g
3733 Fi(tree_if)e Fn(it)i(creates.)50 b(With)33 b(complex)f(C)150
3734 2482 y(expressions,)37 b(it)g(is)e(often)j(useful)d(to)i(use)g(the)f
3735 (structured)g(con)m(trol)i(\015o)m(w)e(of)h(nested)g
3736 Fi(tree_if)e Fn(no)s(des)150 2592 y(within)c(the)j Fi(header)f
3737 Fn(and)g(that's)i(wh)m(y)e(they)h(are)h(allo)m(w)m(ed.)51
3738 b(It)34 b(is)f(legal)g(to)i(ha)m(v)m(e)g(an)f(empt)m(y)g
3739 Fi(header)p Fn(,)150 2702 y(but)27 b(an)m(y)i Fi(tree_if)d
3740 Fn(with)h(an)h(empt)m(y)g Fi(header)p Fn(,)g(or)g(ev)m(en)h(with)d(a)j
3741 Fi(header)d Fn(that)j(con)m(tains)f(no)g(branc)m(h)g(or)150
3742 2811 y(jump)j(to)j(the)f Fi(jumpto)f Fn(lab)s(el)f(is)h(degenerate{the)
3743 j Fi(then_part)30 b Fn(will)h(alw)m(a)m(ys)i(b)s(e)g(executed)h
3744 (instead)e(of)150 2921 y(the)f Fi(else_part)p Fn(.)275
3745 3064 y(The)c Fi(then_part)e Fn(and)i Fi(else_part)e Fn(ha)m(v)m(e)k
3746 (few)m(er)f(restrictions.)38 b(After)28 b(the)g(fron)m(t)g(end,)f(in)g
3747 (standard)150 3174 y(SUIF,)41 b(neither)e(is)g(allo)m(w)m(ed)i(to)g(ha)
3748 m(v)m(e)h(p)s(oten)m(tial)e(jumps)e(or)j(branc)m(hes)f(in)f(or)i(out,)i
3749 (or)e(b)s(et)m(w)m(een)g(the)150 3283 y Fi(then_part)24
3750 b Fn(and)j Fi(else_part)p Fn(.)37 b(Branc)m(hes)28 b(or)f(jumps)e(an)m
3751 (ywhere)i(within)d(the)j Fi(then_part)e Fn(m)m(ust)i(b)s(e)f(to)150
3752 3393 y(lab)s(els)f(elsewhere)i(in)e(the)j Fi(then_part)c
3753 Fn(and)i(lab)s(els)g(in)f(the)i Fi(then_part)e Fn(ma)m(y)j(only)e(b)s
3754 (e)g(used)g(as)i(targets)150 3503 y(b)m(y)h(branc)m(hes)g(or)g(jumps)f
3755 (within)e(the)k Fi(then_part)p Fn(;)d(the)i(same)h(holds)e(separately)h
3756 (for)g(the)g Fi(else_part)p Fn(.)150 3612 y(Note)34 b(that)g(the)f(sym)
3757 m(b)s(ol)f(table)g(con)m(taining)h(a)g(lab)s(el)e(ma)m(y)j(b)s(e)e
3758 (outside)g(the)i Fi(tree_if)p Fn(;)e(it)h(is)e(the)j(lab)s(el)150
3759 3722 y(instruction)f(w)m(e)j(are)g(concerned)g(with)e(here.)56
3760 b(If)35 b(the)h(lab)s(el)e(instruction)f(is)i(within)e(the)i
3761 Fi(else_part)p Fn(,)150 3831 y(it)h(ma)m(y)g(only)f(b)s(e)h(used)f(as)h
3762 (a)g(target)i(b)m(y)e(instructions)e(in)g(other)i(sections)h(of)f(the)g
3763 Fi(else_part)p Fn(.)55 b(An)m(y)150 3941 y Fi(tree_node)p
3764 Fn(s)32 b(can)k(b)s(e)e(used)g(within)e(the)k Fi(then_part)c
3765 Fn(and)i Fi(else_part)f Fn(with)g(arbitrary)h(nesting,)i(so)150
3766 4051 y(long)c(as)g(the)g(restriction)f(on)h(jumps)f(in)m(to)h(or)g(out)
3767 g(of)h(the)f(top)g(lev)m(el)g Fi(else_part)e Fn(or)i
3768 Fi(then_part)d Fn(lists)150 4160 y(is)g(honored.)275
3769 4304 y(Either)h(or)i(b)s(oth)f(of)h(the)g Fi(then_part)d
3770 Fn(and)i Fi(else_part)e Fn(ma)m(y)k(b)s(e)e(empt)m(y)h(lists;)f(in)g
3771 (fact)h(the)g Fi(else_)150 4413 y(part)25 b Fn(is)g(often)h(empt)m(y)-8
3772 b(,)28 b(as)e(in)e(C)i(there)g(is)f(often)h(an)g Fi(if)f
3773 Fn(statemen)m(ts)i(without)e(an)h Fi(else)p Fn(.)38 b(There)25
3774 b(is)g(little)150 4523 y(p)s(oin)m(t)32 b(in)f(ha)m(ving)h(a)h
3775 Fi(tree_if)e Fn(if)g(b)s(oth)h(part)h(these)g(parts)f(are)h(to)h(b)s(e)
3776 e(empt)m(y)-8 b(,)34 b(but)e(this)f(ma)m(y)j(o)s(ccur)e(if)150
3777 4632 y(all)d(the)i(co)s(de)f(is)g(optimized)f(a)m(w)m(a)m(y)j(or)f(mo)m
3778 (v)m(ed)g(elsewhere.)275 4776 y(Here's)d(an)h(example.)39
3779 b(The)28 b(follo)m(wing)f(C)h(co)s(de)g(could)g(b)s(e)f(translated)h
3780 (in)m(to)g(the)h(SUIF)f(co)s(de)h(sho)m(wn)150 4885 y(in)j(a)j
3781 (simpli\014ed)30 b(form)j(b)s(elo)m(w.)50 b(\(The)34
3782 b(real)f(C)h(fron)m(t-end)f(generates)i(a)f(more)g(complicated)g(tree)g
3783 (that)150 4995 y(in)m(v)m(olv)m(es)c(nested)h Fi(tree_if)d
3784 Fn(structures)i(in)f(the)i(header.\))390 5132 y Fi(if)47
3785 b(\(\(x)g(>)h(y\))f(&&)g(\(x)g(>)h(0\)\))e({)581 5236
3786 y(y)h(=)h(x;)390 5340 y(})f(else)g({)p eop
3787 %%Page: 15 17
3788 15 16 bop 150 -116 a Fn(Chapter)30 b(3:)41 b(Abstract)31
3789 b(Syn)m(tax)f(T)-8 b(rees)2152 b(15)581 299 y Fi(y)47
3790 b(=)h(0;)390 403 y(})390 538 y(IF)f(\(Jumpto=L:__L1\))390
3791 641 y(IF)g(HEADER)581 745 y(bfalse)f(e1,)h(L:__L1)676
3792 849 y(e1:)g(sl)g(y,)h(x)581 953 y(bfalse)e(e1,)h(L:__L1)676
3793 1057 y(e1:)g(sl)g(e2,)g(x)772 1160 y(e2:)g(ldc)g(0)390
3794 1264 y(IF)g(THEN)581 1368 y(cpy)g(y)g(=)h(x)390 1472
3795 y(IF)f(ELSE)581 1575 y(ldc)g(y)g(=)h(0)390 1679 y(IF)f(END)150
3796 1916 y Ff(3.1.5)63 b(Lo)s(op)42 b(No)s(des)275 2115 y
3797 Fn(A)23 b Fi(tree_loop)d Fn(no)s(de)i(represen)m(ts)h(a)g(\\do-while")g
3798 (lo)s(op.)37 b(It)23 b(con)m(tains)g(t)m(w)m(o)h(tree)g(no)s(de)e
3799 (lists:)36 b(the)23 b Fi(body)150 2225 y Fn(and)34 b(the)g
3800 Fi(test)p Fn(.)52 b(The)34 b Fi(body)f Fn(list)g(comes)i(\014rst)f(and)
3801 f(holds)g(the)i(lo)s(op)e(b)s(o)s(dy)-8 b(.)52 b(The)34
3802 b Fi(test)f Fn(list)g(con)m(tains)150 2334 y(co)s(de)e(to)h(ev)-5
3803 b(aluate)32 b(the)f(\\while")g(expression)e(and)i(conditionally)e
3804 (branc)m(h)h(bac)m(k)i(to)g(the)f(b)s(eginning)e(of)150
3805 2444 y(the)i(b)s(o)s(dy)-8 b(.)275 2585 y(There)22 b(are)i(three)g(lab)
3806 s(els)d(asso)s(ciated)j(with)e(a)i Fi(tree_loop)d Fn(no)s(de:)36
3807 b Fi(toplab)p Fn(,)24 b Fi(contlab)p Fn(,)f(and)f Fi(brklab)p
3808 Fn(.)150 2694 y(The)37 b Fi(toplab)e Fn(lab)s(el)h(marks)h(the)g(b)s
3809 (eginning)d(of)k(the)f(lo)s(op)g Fi(body)p Fn(;)i(the)f
3810 Fi(test)e Fn(list)g(t)m(ypically)g(con)m(tains)150 2804
3811 y(a)h(conditional)f(branc)m(h)g(bac)m(k)i(to)g Fi(toplab)p
3812 Fn(.)59 b(A)37 b(\\con)m(tin)m(ue")h(statemen)m(t)h(in)d(the)h(lo)s(op)
3813 f(b)s(o)s(dy)f(requires)150 2914 y(a)f(jump)f(o)m(v)m(er)i(the)f(rest)g
3814 (of)h(the)f(b)s(o)s(dy)e(to)j(the)f(b)s(eginning)d(of)j(the)h(test)f
3815 (co)s(de.)52 b(The)34 b Fi(contlab)e Fn(lab)s(el)g(is)150
3816 3023 y(p)s(ositioned)24 b(at)i(the)g(b)s(eginning)d(of)j(the)g
3817 Fi(test)e Fn(list)h(for)g(this)g(purp)s(ose.)37 b(Similarly)-8
3818 b(,)24 b(a)i(\\break")g(statemen)m(t)150 3133 y(in)21
3819 b(the)i(lo)s(op)e(is)h(translated)g(to)h(a)g(jump)e(to)i(the)f
3820 Fi(brklab)f Fn(lab)s(el)g(whic)m(h)g(is)g(lo)s(cated)i(immediately)e
3821 (after)i(the)150 3242 y(lo)s(op.)40 b(These)30 b Fi(tree_loop)e
3822 Fn(lab)s(els)g(m)m(ust)i(b)s(e)g(de\014ned)f(in)g(the)i(scop)s(e)f(of)h
3823 (the)f(lo)s(op)g(no)s(de,)f(but)h(the)h(lab)s(el)150
3824 3352 y(p)s(ositions)24 b(are)i(implicit)d(rather)j(than)g(b)s(eing)e
3825 (mark)m(ed)i(b)m(y)g(lab)s(el)e(instructions.)38 b(When)25
3826 b(the)h Fi(tree_loop)150 3461 y Fn(is)j(expanded)h(to)h(lo)m(w-SUIF)f
3827 (form,)h(the)f(lab)s(el)f(instructions)f(are)j(inserted)e(in)m(to)h
3828 (the)h(tree)g(no)s(de)f(lists.)275 3602 y(Because)36
3829 b(the)e(lo)s(op)g(no)s(des)g(are)h(only)f(in)m(tended)f(for)i(use)f
3830 (with)f(structured)h(con)m(trol)h(\015o)m(w,)h(certain)150
3831 3712 y(restrictions)28 b(on)h(the)h(con)m(ten)m(ts)h(of)e(the)h
3832 Fi(tree_loop)c Fn(lists)i(are)i(required.)38 b(The)29
3833 b Fi(test)f Fn(part)h(has)g(exactly)150 3822 y(the)23
3834 b(same)g(restrictions)f(as)h(the)g Fi(header)e Fn(of)i(a)g
3835 Fi(tree_if)e Fn(except)j(that)f(it)g(is)e(the)i Fi(toplab)f
3836 Fn(lab)s(el)f(instead)h(of)150 3931 y(the)29 b Fi(jumpto)e
3837 Fn(lab)s(el)g(to)j(whic)m(h)d(jumps)g(and)h(branc)m(hes)h(are)g(allo)m
3838 (w)m(ed)g(and)f(exp)s(ected.)41 b(See)29 b(Section)f(3.1.4)150
3839 4041 y([If)35 b(No)s(des],)j(page)e(13.)57 b(Note)37
3840 b(in)e(particular)f(that)i(use)f(of)h(the)g Fi(brklab)e
3841 Fn(and)h Fi(contlab)e Fn(lab)s(els)h(is)h(not)150 4150
3842 y(allo)m(w)m(ed)30 b(in)f(the)i Fi(test)e Fn(list.)275
3843 4291 y(The)e Fi(body)f Fn(list)g(has)i(restrictions)e(analogous)i(to)g
3844 (the)g(restriction)f(on)g Fi(then_part)e Fn(and)i Fi(else_part)150
3845 4401 y Fn(lists)k(of)j(a)f Fi(tree_if)p Fn(:)44 b(arbitrary)32
3846 b(nesting)g(of)h(other)g Fi(tree_node)p Fn(s)e(is)h(allo)m(w)m(ed,)h
3847 (but)g(con)m(trol)g(\015o)m(w)g(in)m(to)150 4510 y(or)j(out)g(of)g(the)
3848 g Fi(body)f Fn(is)g(not)h(allo)m(w)m(ed.)58 b(The)35
3849 b Fi(body)g Fn(list)g(is)g(allo)m(w)m(ed)h(sligh)m(tly)e(more)i(leew)m
3850 (a)m(y)-8 b(,)39 b(though:)150 4620 y(jumps)34 b(or)h(branc)m(hes)g
3851 (are)h(allo)m(w)m(ed)g(from)f(an)m(ywhere)g(in)f(the)i
3852 Fi(body)e Fn(to)i(the)g Fi(brklab)e Fn(or)h(the)h Fi(contlab)150
3853 4729 y Fn(lab)s(els.)i(This)27 b(is)g(the)h(only)g(place)g(where)f(the)
3854 i Fi(brklab)d Fn(or)j Fi(contlab)d Fn(lab)s(els)g(can)j(b)s(e)e
3855 (used{they)h(cannot)150 4839 y(b)s(e)i(used)f(outside)h(the)h
3856 Fi(tree_loop)c Fn(or)k(in)e(the)h Fi(test)g Fn(list.)275
3857 4980 y(Note)f(that)f(either)f(or)h(b)s(oth)f(of)h(the)g
3858 Fi(test)e Fn(and)i Fi(body)e Fn(parts)i(ma)m(y)g(b)s(e)f(empt)m(y)h
3859 (lists,)f(but)g(if)g(the)h Fi(test)150 5090 y Fn(part)i(is)g(empt)m(y)
3860 -8 b(,)31 b(the)g(lo)s(op)e(is)h(degenerate{it)h(will)d(alw)m(a)m(ys)j
3861 (execute)h(exactly)f(once.)275 5230 y(F)-8 b(or)41 b(example,)i(the)e
3862 (follo)m(wing)e(C)h(co)s(de)h(could)e(b)s(e)h(translated)h(in)m(to)f
3863 (the)h(SUIF)f(co)s(de)h(sho)m(wn)f(in)150 5340 y(a)e(simpli\014ed)c
3864 (form)j(b)s(elo)m(w.)62 b(Note)39 b(that)g(b)s(ecause)e(the)h
3865 Fi(test)f Fn(co)s(de)h(is)e(at)j(the)f Fh(b)s(ottom)g
3866 Fn(of)g(the)g(lo)s(op,)p eop
3867 %%Page: 16 18
3868 16 17 bop 150 -116 a Fn(16)2385 b(The)30 b(SUIF)g(V)-8
3869 b(ersion)30 b(1)h(Library)150 299 y(the)39 b(\\while")f(lo)s(op)g(m)m
3870 (ust)h(b)s(e)f(con)m(v)m(erted)i(to)g(a)f(\\do-while")f(lo)s(op)g
3871 (guarded)h(b)m(y)f(an)h(\\if)7 b(")39 b(no)s(de.)66 b(See)150
3872 408 y(Section)30 b(3.1.4)i([If)f(No)s(des],)f(page)h(13.)390
3873 540 y Fi(while)46 b(\(k)i(>)f(0\))g({)581 644 y(if)g(\(k)g(=)h(1\))f
3874 (break;)581 748 y(k)g(=)h(k)f(-)h(1;)581 851 y(if)f(\(k)g(<)h(10\))f
3875 (continue;)581 955 y(k)g(=)h(k)f(-)h(10;)390 1059 y(})390
3876 1191 y(IF)f(\(Jumpto=L:__L1\))390 1294 y(IF)g(HEADER)581
3877 1398 y(bfalse)f(e1,)h(L:__L1)676 1502 y(e1:)g(sl)g(e2,)g(k)772
3878 1606 y(e2:)g(ldc)g(0)390 1709 y(IF)g(THEN)581 1813 y(LOOP)g
3879 (\(Top=L:__L2)d(Cont=L:__L3)h(Brk=L:__L4\))581 1917 y(LOOP)i(BODY)772
3880 2021 y(btrue)f(e1,)h(L:__L4)867 2125 y(e1:)g(seq)g(k,)g(e2)963
3881 2228 y(e2:)g(ldc)g(1)772 2332 y(sub)g(k)g(=)h(k,)f(e1)867
3882 2436 y(e1:)g(ldc)g(1)772 2540 y(btrue)f(e1,)h(L:__L3)867
3883 2643 y(e1:)g(sl)g(k,)h(e2)963 2747 y(e2:)f(ldc)g(10)772
3884 2851 y(sub)g(k)g(=)h(k,)f(e1)867 2955 y(e1:)g(ldc)g(10)581
3885 3059 y(LOOP)g(TEST)772 3162 y(btrue)f(e1,)h(L:__L2)867
3886 3266 y(e1:)g(sl)g(e2,)g(k)963 3370 y(e2:)g(ldc)g(0)581
3887 3474 y(LOOP)g(END)390 3577 y(IF)g(ELSE)390 3681 y(IF)g(END)150
3888 3911 y Ff(3.1.6)63 b(F)-10 b(or)41 b(No)s(des)275 4107
3889 y Fn(Man)m(y)34 b(of)g(our)f(compiler)g(passes)g(are)i(designed)d(to)j
3890 (w)m(ork)f(with)e(F)-8 b(ortran)35 b Fi(DO)e Fn(lo)s(ops)g(b)s(ecause)h
3891 (they)150 4216 y(are)d(relativ)m(ely)e(easy)i(to)g(analyze.)41
3892 b(A)30 b Fi(DO)f Fn(lo)s(op)h(has)g(a)g(single)f(index)g(v)-5
3893 b(ariable)28 b(that)j(is)e(incremen)m(ted)h(or)150 4326
3894 y(decremen)m(ted)f(on)f(ev)m(ery)h(iteration)f(and)f(v)-5
3895 b(aries)28 b(from)f(an)i(initial)c(to)k(a)f(\014nal)f(v)-5
3896 b(alue.)40 b(SUIF)28 b(uses)f Fi(tree_)150 4435 y(for)22
3897 b Fn(no)s(des)f(to)j(represen)m(t)e(w)m(ell-structured)f
3898 Fi(DO)h Fn(lo)s(ops.)37 b(The)22 b(exact)i(conditions)d(that)i(a)g(lo)s
3899 (op)f(m)m(ust)g(meet)150 4545 y(to)j(b)s(e)g(represen)m(ted)f(as)h(a)g
3900 Fi(tree_for)e Fn(in)g(SUIF)i(are)g(describ)s(ed)d(b)s(elo)m(w.)39
3901 b(The)24 b(expander's)g(clean)m(up)g(pass,)150 4655 y(whic)m(h)30
3902 b(is)g(run)g(immediately)f(after)j(the)g(fron)m(t-end,)f(con)m(v)m
3903 (erts)i Fi(tree_for)c Fn(no)s(des)h(that)i(violate)f(an)m(y)h(of)150
3904 4764 y(these)40 b(conditions)e(in)m(to)i Fi(tree_loop)d
3905 Fn(no)s(des)i(\(see)i(Section)e(3.1.5)j([Lo)s(op)d(No)s(des],)k(page)d
3906 (15\).)70 b(Ev)m(en)150 4874 y(though)28 b(they)h(are)g(primarily)c(in)
3907 m(tended)j(for)g(F)-8 b(ortran)30 b(co)s(de,)f Fi(tree_for)e
3908 Fn(no)s(des)g(ma)m(y)j(also)e(b)s(e)g(used)g(for)150
3909 4983 y(C)i(lo)s(ops)f(that)i(meet)h(the)e(same)h(conditions.)275
3910 5121 y(The)25 b(index)g(v)-5 b(ariable)26 b(of)g(a)h
3911 Fi(tree_for)d Fn(can)j(b)s(e)f(accessed)h(using)e(the)i
3912 Fi(index)e Fn(metho)s(d)h(and)f(set)i(using)150 5230
3913 y(the)j Fi(set_index)d Fn(metho)s(d.)39 b(The)29 b(index)f(v)-5
3914 b(ariable)28 b(m)m(ust)i(b)s(e)f(a)g(scalar)h(v)-5 b(ariable)28
3915 b(that)i(is)e(de\014ned)h(in)f(the)150 5340 y(scop)s(e)i(of)h(the)f
3916 Fi(tree_for)e Fn(no)s(de.)40 b(It)30 b(ma)m(y)h(not)f(b)s(e)g(mo)s
3917 (di\014ed)e(an)m(ywhere)i(within)e(the)i(lo)s(op)f(b)s(o)s(dy)-8
3918 b(.)40 b(This)p eop
3919 %%Page: 17 19
3920 17 18 bop 150 -116 a Fn(Chapter)30 b(3:)41 b(Abstract)31
3921 b(Syn)m(tax)f(T)-8 b(rees)2152 b(17)150 299 y(applies)36
3922 b(across)j(pro)s(cedures)e(as)i(w)m(ell.)63 b(If)38 b(the)g(lo)s(op)f
3923 (b)s(o)s(dy)g(con)m(tains)i(a)f(call)g(to)h(another)f(pro)s(cedure)150
3924 408 y(that)30 b(mo)s(di\014es)d(the)i(index)f(v)-5 b(ariable,)28
3925 b(then)h(the)g(lo)s(op)f(cannot)i(b)s(e)e(represen)m(ted)h(b)m(y)g(a)h
3926 Fi(tree_for)c Fn(no)s(de.)150 518 y(Moreo)m(v)m(er,)34
3927 b(if)c(y)m(ou)i(are)g(using)e(F)-8 b(ortran)32 b(form,)f(the)h(index)e
3928 (v)-5 b(ariable)30 b(ma)m(y)i(not)g(b)s(e)f(a)h(call-b)m(y-reference)
3929 150 628 y(parameter.)41 b(See)31 b(Chapter)f(10)h([F)-8
3930 b(ortran],)32 b(page)f(77.)275 766 y(The)42 b(range)i(of)f(v)-5
3931 b(alues)42 b(for)h(the)h(index)d(v)-5 b(ariable)42 b(is)g(sp)s
3932 (eci\014ed)g(b)m(y)h(three)g Fi(operand)e Fn(\014elds.)78
3933 b(See)150 875 y(Section)35 b(4.2)h([Op)s(erands],)f(page)h(27.)55
3934 b(The)35 b(lo)m(w)m(er)g(and)f(upp)s(er)f(b)s(ounds)g(and)h(the)i(step)
3935 f(v)-5 b(alue)34 b(can)i(b)s(e)150 985 y(accessed)k(b)m(y)f(the)h
3936 Fi(lb_op)p Fn(,)g Fi(ub_op)p Fn(,)g(and)e Fi(step_op)g
3937 Fn(metho)s(ds.)66 b(The)38 b Fi(set_lb_op)p Fn(,)i Fi(set_ub_op)p
3938 Fn(,)f(and)150 1094 y Fi(set_step_op)30 b Fn(metho)s(ds)i(are)h(pro)m
3939 (vided)e(to)i(c)m(hange)h(them.)48 b(These)32 b(op)s(erands)g(are)h
3940 (expressions)e(that)150 1204 y(are)e(ev)-5 b(aluated)28
3941 b(once)h(at)g(the)f(b)s(eginning)e(of)i(the)h(lo)s(op.)39
3942 b(The)28 b(index)e(v)-5 b(ariable)27 b(is)h(initially)c(assigned)k(the)
3943 150 1314 y(lo)m(w)m(er)d(b)s(ound)d(v)-5 b(alue)24 b(and)g(then)h
3944 (incremen)m(ted)f(b)m(y)g(the)h(step)g(v)-5 b(alue)24
3945 b(on)g(ev)m(ery)i(iteration)e(un)m(til)f(it)h(reac)m(hes)150
3946 1423 y(the)31 b(upp)s(er)e(b)s(ound)g(v)-5 b(alue;)32
3947 b(the)f(co)s(de)g(to)h(do)f(this)f(is)g(automatically)h(created)i(when)
3948 d(the)h Fi(tree_for)e Fn(is)150 1533 y(expanded)h(to)h(lo)m(w-SUIF)f
3949 (co)s(de.)275 1671 y(Most)36 b(users)e(will)e(alw)m(a)m(ys)k(use)f
3950 Fi(tree_for)e Fn(no)s(des)h(in)g(conjunction)g(with)g(expression)g
3951 (trees.)56 b(Flat)150 1780 y(lists)32 b(of)i(instructions)e(are)i(t)m
3952 (ypically)f(used)g(only)g(in)g(the)h(library)d(and)j(with)e(bac)m
3953 (k-end)j(passes)e(where)150 1890 y(the)j Fi(tree_for)d
3954 Fn(no)s(des)i(ha)m(v)m(e)i(b)s(een)d(disman)m(tled.)55
3955 b(It)36 b(is)e(p)s(ossible)f(to)k(use)e Fi(tree_for)e
3956 Fn(no)s(des)i(without)150 1999 y(expression)f(trees,)k(but)c(the)i(b)s
3957 (ounds)d(and)i(step)h(v)-5 b(alues)34 b(cannot)i(b)s(e)f(treated)i(as)e
3958 (op)s(erands.)55 b(In)35 b(fact,)150 2109 y(ev)m(en)24
3959 b(with)d(expression)h(trees)i(those)f(op)s(erands)f(are)h(actually)g
3960 (stored)g(on)g(tree)g(no)s(de)g(lists.)36 b(If)23 b(necessary)-8
3961 b(,)150 2219 y(these)33 b(lists)e(can)i(b)s(e)f(accessed)h(directly)e
3962 (using)g(the)i Fi(lb_list)p Fn(,)e Fi(ub_list)p Fn(,)h(and)f
3963 Fi(step_list)f Fn(metho)s(ds.)150 2328 y(Eac)m(h)35 b(list)d(is)h
3964 (required)f(to)j(con)m(tain)g(a)f(single)f(expression)f(with)h(a)h
3965 (dumm)m(y)f(cop)m(y)i(instruction)d(at)j(the)150 2438
3966 y(ro)s(ot.)50 b(The)32 b(destination)h(of)g(the)g(dumm)m(y)g(cop)m(y)h
3967 (m)m(ust)f(b)s(e)f(a)i(n)m(ull)d(op)s(erand.)49 b(Metho)s(ds)33
3968 b(are)g(pro)m(vided)150 2547 y(in)e(the)h(tree)g(no)s(de)g(list)e
3969 (class)i(to)h(extract)g(the)f(op)s(erands)f(from)h(the)g(tree)g(no)s
3970 (de)g(lists)e(\(see)j(Section)f(3.2)150 2657 y([T)-8
3971 b(ree)31 b(No)s(de)f(Lists],)g(page)h(20\).)275 2795
3972 y(The)j Fi(tree_for)f Fn(m)m(ust)i(also)g(sp)s(ecify)f(the)h
3973 (comparison)g(op)s(erator)g(used)f(to)i(determine)f(when)f(the)150
3974 2904 y(index)c(v)-5 b(ariable)31 b(has)h(reac)m(hed)g(the)g(upp)s(er)e
3975 (b)s(ound)f(v)-5 b(alue.)45 b(The)31 b(p)s(ossible)f(comparison)h(op)s
3976 (erators)h(are)150 3014 y(mem)m(b)s(ers)k(of)h(the)h
3977 Fi(tree_for_test)33 b Fn(en)m(umerated)38 b(t)m(yp)s(e.)60
3978 b(The)37 b Fi(test)f Fn(and)g Fi(set_test)f Fn(metho)s(ds)i(are)150
3979 3124 y(used)31 b(to)i(access)h(and)e(mo)s(dify)e(the)i(comparison)g(op)
3980 s(erator)g(for)g(a)h Fi(tree_for)d Fn(no)s(de.)46 b(The)31
3981 b Fi(tree_for_)150 3233 y(test)k Fn(en)m(umeration)h(includes)e(quite)h
3982 (a)i(few)f(comparison)f(op)s(erators,)j(but)e(some)h(of)f(them)g(are)h
3983 (only)150 3343 y(used)i(b)m(y)i(the)f(fron)m(t-end.)70
3984 b(Both)41 b(signed)e(and)h(unsigned)e(v)m(ersions)i(are)g(a)m(v)-5
3985 b(ailable)40 b(for)g(most)g(of)h(the)150 3452 y(comparison)30
3986 b(op)s(erators,)g(as)h(indicated)e(b)m(y)h(the)h(letters)f(\\)p
3987 Fi(S)p Fn(")h(and)f(\\)p Fi(U)p Fn(")h(in)e(their)g(names.)150
3988 3617 y Fi(FOR_SLT)150 3780 y(FOR_ULT)84 b Fn(Less)30
3989 b(than.)41 b(Rep)s(eat)31 b(as)f(long)g(as)h(the)f(index)f(is)h
3990 (strictly)f(less)h(than)g(the)g(upp)s(er)f(b)s(ound.)150
3991 3943 y Fi(FOR_SLTE)150 4105 y(FOR_ULTE)36 b Fn(Less)26
3992 b(than)g(or)g(equal.)38 b(Rep)s(eat)27 b(as)f(long)g(as)g(the)g(index)f
3993 (is)g(less)g(than)h(or)g(equal)f(to)i(the)f(upp)s(er)630
3994 4215 y(b)s(ound.)150 4378 y Fi(FOR_SGT)150 4541 y(FOR_UGT)84
3995 b Fn(Greater)42 b(than.)71 b(Rep)s(eat)41 b(as)g(long)f(as)h(the)g
3996 (index)e(is)h(strictly)g(greater)i(than)e(the)h(upp)s(er)630
3997 4650 y(b)s(ound.)64 b(Sometimes)39 b Fi(DO)g Fn(lo)s(ops)f(go)h(bac)m
3998 (kw)m(ards,)j(using)c(a)h(negativ)m(e)h(step)f(v)-5 b(alue.)66
3999 b(F)-8 b(or)630 4760 y(those)31 b(lo)s(ops,)e(the)i(comparison)f(op)s
4000 (erator)g(m)m(ust)h(also)f(b)s(e)g(rev)m(ersed.)150 4923
4001 y Fi(FOR_SGTE)150 5086 y(FOR_UGTE)36 b Fn(Greater)g(than)e(or)g(equal.)
4002 53 b(Rep)s(eat)34 b(as)h(long)f(as)h(the)f(index)g(is)f(greater)j(than)
4003 e(or)g(equal)g(to)630 5195 y(the)d(upp)s(er)d(b)s(ound.)39
4004 b(Again,)30 b(this)f(ma)m(y)i(b)s(e)f(used)g(when)f(the)h(step)h(v)-5
4005 b(alue)30 b(is)f(negativ)m(e.)150 5358 y Fi(FOR_SGELE)p
4007 %%Page: 18 20
4008 18 19 bop 150 -116 a Fn(18)2385 b(The)30 b(SUIF)g(V)-8
4009 b(ersion)30 b(1)h(Library)150 299 y Fi(FOR_UGELE)630
4010 408 y Fn(These)h(comparisons)f(are)i(only)e(used)g(b)m(y)h(the)h(fron)m
4011 (t-end.)46 b(In)31 b(F)m(OR)-8 b(TRAN,)33 b(it)f(ma)m(y)h(not)630
4012 518 y(b)s(e)d(p)s(ossible)e(to)j(determine)f(the)h(direction)e(of)i(a)g
4013 (lo)s(op)f(at)h(compile)f(time.)41 b(F)-8 b(or)31 b(example,)630
4014 628 y(if)25 b(the)i(step)f(v)-5 b(alue)26 b(is)f(not)i(a)g(constan)m
4015 (t,)h(it)e(could)f(b)s(e)h(either)g(p)s(ositiv)m(e)f(or)i(negativ)m(e.)
4016 40 b(These)630 737 y(comparison)34 b(op)s(erators)h(indicate)f(that)h
4017 (the)g(lo)s(op)f(test)i(ma)m(y)f(b)s(e)f(either)h(\\greater)h(than)630
4018 847 y(or)29 b(equal")g(or)f(\\less)h(than)g(or)f(equal",)i(dep)s
4019 (ending)c(on)j(the)g(sign)f(of)h(the)g(step)g(v)-5 b(alue.)39
4020 b(The)630 956 y(expander's)33 b(clean)m(up)g(pass)h(con)m(v)m(erts)h
4021 (an)m(y)f Fi(tree_for)d Fn(no)s(des)i(with)g(these)h(tests)g(to)h(t)m
4022 (w)m(o)630 1066 y Fi(tree_for)k Fn(no)s(des)i(and)g(a)h
4023 Fi(tree_if)e Fn(no)s(de)h(to)i(decide)e(b)s(et)m(w)m(een)h(them.)75
4024 b(Th)m(us,)43 b(these)630 1176 y(comparison)30 b(op)s(erators)g(should)
4025 e(nev)m(er)j(b)s(e)f(encoun)m(tered)h(in)e(most)h(SUIF)h(co)s(de.)150
4026 1334 y Fi(FOR_EQ)150 1493 y(FOR_NEQ)84 b Fn(Equal)35
4027 b(and)h(not)h(equal.)59 b(These)36 b(comparisons)f(are)i(only)f(used)g
4028 (b)m(y)g(the)h(fron)m(t-end.)58 b(The)630 1602 y(expander's)21
4029 b(clean)m(up)h(pass)f(disman)m(tles)g Fi(tree_for)f Fn(no)s(des)h(that)
4030 i(use)e(these)i(comparisons.)275 1761 y(The)38 b(b)s(o)s(dy)g(of)h(a)h
4031 Fi(tree_for)d Fn(lo)s(op)i(is)f(stored)h(in)f(a)i(tree)g(no)s(de)f
4032 (list.)66 b(The)38 b(metho)s(ds)h(to)h(get)h(and)150
4033 1871 y(set)d(the)g(lo)s(op)f(b)s(o)s(dy)f(are)i Fi(body)f
4034 Fn(and)g Fi(set_body)p Fn(,)g(resp)s(ectiv)m(ely)-8 b(.)63
4035 b(The)37 b Fi(body)g Fn(list)f(con)m(tains)i(only)f(the)150
4036 1980 y(instructions)26 b(corresp)s(onding)g(to)i(the)g(b)s(o)s(dy)e(of)
4037 i(the)h(lo)s(op)d(in)h(the)h(source)g(program.)40 b(The)27
4038 b(instructions)150 2090 y(to)j(compare)g(the)g(index)e(v)-5
4039 b(ariable)28 b(with)h(the)g(upp)s(er)f(b)s(ound,)g(incremen)m(t)h(it,)g
4040 (and)g(branc)m(h)g(bac)m(k)h(to)h(the)150 2199 y(b)s(eginning)37
4041 b(of)j(the)g(b)s(o)s(dy)e(are)i(not)g(included)d(as)j(part)f(of)h(the)g
4042 (b)s(o)s(dy;)j(they)d(are)g(created)h(when)e(the)150
4043 2309 y Fi(tree_for)28 b Fn(is)i(expanded)f(to)i(lo)m(w-SUIF)g(co)s(de.)
4044 275 2443 y(Besides)43 b(the)g(lo)s(op)g(b)s(o)s(dy)-8
4045 b(,)46 b(a)d Fi(tree_for)f Fn(no)s(de)g(has)h(an)h(additional)d(tree)j
4046 (no)s(de)f(list)f(called)h(the)150 2553 y Fi(landing_pad)p
4047 Fn(.)70 b(The)40 b(co)s(de)i(in)d(the)j(landing)d(pad)h(is)g(executed)i
4048 (if)e(and)h(only)f(if)g(the)h(lo)s(op)f(b)s(o)s(dy)g(is)150
4049 2662 y(executed)e(at)g(least)g(one)f(time,)i(but)d(the)i
4050 Fi(landing_pad)c Fn(is)i(executed)i(only)f(once,)j(unlik)m(e)35
4051 b(the)j(b)s(o)s(dy)150 2772 y(whic)m(h)c(is)h(usually)e(executed)j(man)
4052 m(y)f(times.)56 b(The)35 b Fi(landing_pad)d Fn(is)i(executed)j
4053 (immediately)c(b)s(efore)150 2881 y(the)44 b(\014rst)e(time)h(through)g
4054 (the)h(lo)s(op)e(b)s(o)s(dy)-8 b(.)79 b(The)43 b(landing)e(pad)i(th)m
4055 (us)g(pro)m(vides)f(a)i(place)f(to)h(mo)m(v)m(e)150 2991
4056 y(lo)s(op-in)m(v)-5 b(arian)m(t)29 b(co)s(de.)275 3125
4057 y(Tw)m(o)j(lab)s(els)f(are)i(asso)s(ciated)g(with)e(a)i
4058 Fi(tree_for)p Fn(:)42 b Fi(contlab)31 b Fn(and)h Fi(brklab)p
4059 Fn(.)45 b(A)33 b(\\con)m(tin)m(ue")g(state-)150 3235
4060 y(men)m(t)26 b(in)d(the)j(lo)s(op)e(b)s(o)s(dy)f(requires)h(a)i(jump)d
4061 (o)m(v)m(er)k(the)e(rest)g(of)g(the)h(b)s(o)s(dy)d(to)j(the)f(co)s(de)h
4062 (that)f(incremen)m(ts)150 3344 y(the)31 b(index)f(and)h(con)m(tin)m
4063 (ues)g(with)f(the)i(next)f(iteration.)43 b(This)30 b(can)h(b)s(e)g
4064 (implemen)m(ted)f(with)g(a)h(jump)f(to)150 3454 y(the)42
4065 b Fi(contlab)e Fn(lab)s(el,)k(whic)m(h)c(is)h(implicitly)d(lo)s(cated)
4066 43 b(at)f(the)g(end)g(of)g(the)g Fi(body)f Fn(list.)74
4067 b(Similarly)-8 b(,)42 b(a)150 3563 y(\\break")31 b(statemen)m(t)g(in)e
4068 (the)h(lo)s(op)f(is)f(translated)i(to)g(a)g(jump)f(to)h(the)g
4069 Fi(brklab)e Fn(lab)s(el)g(whic)m(h)h(is)g(lo)s(cated)150
4070 3673 y(immediately)e(after)i(the)g(lo)s(op.)39 b(These)28
4071 b(t)m(w)m(o)i(lab)s(els)d(m)m(ust)h(b)s(e)g(de\014ned)f(in)g(the)i
4072 (scop)s(e)g(of)f(the)h Fi(tree_for)150 3783 y Fn(no)s(de,)c(but)f(the)h
4073 (lab)s(el)e(instructions)f(that)k(mark)e(their)g(lo)s(cations)g(are)h
4074 (not)g(inserted)e(in)m(to)i(the)f(tree)i(no)s(de)150
4075 3892 y(lists)j(un)m(til)g(the)h Fi(tree_for)e Fn(no)s(de)i(is)f
4076 (expanded)h(in)m(to)g(lo)m(w-SUIF)h(form.)275 4026 y(In)f(summary)-8
4077 b(,)30 b(the)h(seman)m(tics)h(of)f(a)g Fi(tree_for)e
4078 Fn(no)s(de)h(are)h(as)h(follo)m(ws.)41 b(The)30 b(lo)m(w)m(er)i(b)s
4079 (ound,)d(upp)s(er)150 4136 y(b)s(ound,)22 b(and)f(step)h(op)s(erands)f
4080 (are)h(ev)-5 b(aluated)23 b(once)f(at)h(the)f(b)s(eginning)e(of)i(the)g
4081 (lo)s(op)2993 4103 y Fg(1)3029 4136 y Fn(.)38 b(The)22
4082 b(lo)m(w)m(er)g(b)s(ound)150 4245 y(is)35 b(compared)g(to)i(the)f(upp)s
4083 (er)d(b)s(ound.)55 b(If)35 b(the)h(test)g(fails,)g(the)g(lo)s(op)f(do)s
4084 (es)g(not)h(execute.)58 b(Otherwise,)150 4355 y(the)34
4085 b(lo)m(w)m(er)g(b)s(ound)e(is)h(assigned)g(to)i(the)f(index)f(v)-5
4086 b(ariable,)34 b(and)f(an)m(y)h(co)s(de)g(in)f(the)h(landing)e(pad)h
4087 (list)g(is)150 4465 y(executed.)40 b(After)25 b(that,)i(the)f(b)s(o)s
4088 (dy)d(is)h(executed)i(rep)s(eatedly)f(and)f(the)i(index)d(v)-5
4089 b(ariable)24 b(is)g(incremen)m(ted)150 4574 y(b)m(y)34
4090 b(the)g(step)f(v)-5 b(alue)34 b(on)f(ev)m(ery)i(iteration,)f(un)m(til)e
4091 (the)i(index)e(v)-5 b(ariable)33 b(fails)f(the)i(test)h(with)d(the)i
4092 (upp)s(er)150 4684 y(b)s(ound)28 b(v)-5 b(alue.)275 4818
4093 y(As)28 b(an)h(example,)g(the)f(follo)m(wing)f(C)i(co)s(de)g(could)e(b)
4094 s(e)h(translated)h(in)m(to)f(the)h(SUIF)f(co)s(de)h(sho)m(wn)f(in)g(a)
4095 150 4927 y(simpli\014ed)f(form)i(b)s(elo)m(w:)p 150 5022
4096 1200 4 v 192 5088 a Fg(1)275 5121 y Fn(The)g(co)s(de)h(pro)s(duced)f
4097 (directly)f(b)m(y)i(the)h(C)e(fron)m(t-end)h(assumes)g(that)g(the)g
4098 (upp)s(er)e(b)s(ound)g(and)i(step)275 5230 y(op)s(erands)37
4099 b(are)i(reev)-5 b(aluated)38 b(on)h(ev)m(ery)g(iteration.)64
4100 b(The)38 b(expander's)g(clean)m(up)g(pass)g(disman)m(tles)275
4101 5340 y(an)m(y)30 b Fi(tree_for)e Fn(no)s(des)i(for)g(whic)m(h)f(it)h
4102 (cannot)h(guaran)m(tee)h(that)f(these)g(seman)m(tics)f(are)h(equiv)-5
4103 b(alen)m(t.)p eop
4104 %%Page: 19 21
4105 19 20 bop 150 -116 a Fn(Chapter)30 b(3:)41 b(Abstract)31
4106 b(Syn)m(tax)f(T)-8 b(rees)2152 b(19)390 299 y Fi(for)47
4107 b(\(i)g(=)h(100;)e(i)i(>=)f(0;)g(i--\))g({)581 403 y(A[i])g(=)g(i;)390
4108 506 y(})390 659 y(FOR)g(\(Index=i)e(Test=SGTE)h(Cont=L:__L1)e
4109 (Brk=L:__L2\))390 763 y(FOR)j(LB)581 866 y(ldc)g(100)390
4110 970 y(FOR)g(UB)581 1074 y(ldc)g(0)390 1178 y(FOR)g(STEP)581
4111 1281 y(ldc)g(-1)390 1385 y(FOR)g(LANDING)f(PAD)390 1489
4112 y(FOR)h(BODY)581 1593 y(str)g(e1)g(=)g(i)676 1697 y(e1:)g(array)g
4113 (e2+0,)f(size\(32\),)f(index\(i\),)h(bound\(e3\))772
4114 1800 y(e2:)h(ldc)g(<A,0>)867 1904 y(e3:)g(ldc)g(101)390
4115 2008 y(FOR)g(END)150 2280 y Ff(3.1.7)63 b(Blo)s(c)m(k)41
4116 b(No)s(des)275 2496 y Fn(A)25 b Fi(tree_block)d Fn(no)s(de)i(in)m(tro)s
4117 (duces)g(a)h(new)f(scop)s(e.)39 b(Nested)26 b(scop)s(es)f(are)g(useful)
4118 e(for)i(retaining)f(scop)s(e)150 2605 y(information)32
4119 b(from)i(source)g(programs)g(and)f(for)h(debugging)f(purp)s(oses.)50
4120 b(They)34 b(are)g(also)g(v)m(ery)h(useful)150 2715 y(for)d(implemen)m
4121 (ting)e(co)s(de)i(transformations.)45 b(F)-8 b(or)33
4122 b(example,)f(name)g(con\015icts)g(are)g(easily)g(a)m(v)m(oided)g(b)m(y)
4123 150 2825 y(in)m(tro)s(ducing)c(new)i(scop)s(es.)275 2983
4124 y(A)g Fi(tree_block)e Fn(no)s(de)i(con)m(tains)h(a)g
4125 Fi(block_symtab)c Fn(sym)m(b)s(ol)j(table)g(and)h(a)g(tree)g(no)s(de)f
4126 (list)f(for)i(the)150 3092 y(b)s(o)s(dy)-8 b(.)43 b(The)32
4127 b(sym)m(b)s(ol)e(table)h(is)g(accessed)i(with)d(the)i
4128 Fi(symtab)e Fn(and)h Fi(set_symtab)e Fn(metho)s(ds.)44
4129 b(The)31 b Fi(body)150 3202 y Fn(and)f Fi(set_body)e
4130 Fn(metho)s(ds)i(are)g(used)g(to)h(get)h(and)d(set)i(the)g(list)e(of)h
4131 (tree)h(no)s(des)f(inside)e(the)j(blo)s(c)m(k.)275 3360
4132 y(There)g(is)g(a)h(one-to-one)i(corresp)s(ondence)d(b)s(et)m(w)m(een)i
4133 (a)f Fi(tree_block)d Fn(and)i(its)h(sym)m(b)s(ol)e(table,)j(and)150
4134 3470 y(the)23 b(hierarc)m(h)m(y)g(of)g(sym)m(b)s(ol)f(tables)h(within)d
4135 (a)k(pro)s(cedure)e(m)m(ust)g(parallel)g(the)h(hierarc)m(h)m(y)g(of)g
4136 Fi(tree_block)150 3579 y Fn(no)s(des.)46 b(When)33 b(inserting)d(a)j
4137 Fi(tree_block)d Fn(in)m(to)i(an)h(AST,)f(the)g(new)g(blo)s(c)m(k's)h
4138 (sym)m(b)s(ol)e(table)h(m)m(ust)h(b)s(e)150 3689 y(inserted)38
4139 b(in)g(the)i(appropriate)e(place)i(in)e(the)h(sym)m(b)s(ol)f(table)i
4140 (hierarc)m(h)m(y)-8 b(.)67 b(When)40 b(a)f Fi(tree_block)e
4141 Fn(is)150 3799 y(destro)m(y)m(ed,)45 b(the)d(asso)s(ciated)f(sym)m(b)s
4142 (ol)f(table)h(is)g(detac)m(hed)h(from)f(its)f(paren)m(t)i(table)f(and)g
4143 (destro)m(y)m(ed.)150 3908 y(Ho)m(w)m(ev)m(er,)47 b(the)41
4144 b(con)m(v)m(erse)i(is)e(not)g(true|when)g(a)g Fi(block_symtab)e
4145 Fn(is)h(deleted,)k(the)e(corresp)s(onding)150 4018 y
4146 Fi(tree_block)28 b Fn(no)s(de)h(is)h(not)g(deleted.)275
4147 4176 y(The)40 b(en)m(tries)g(in)f(a)i(blo)s(c)m(k's)f(sym)m(b)s(ol)f
4148 (table)i(ma)m(y)g(not)f(b)s(e)g(referenced)h(from)f(outside)f(the)i
4149 (blo)s(c)m(k.)150 4286 y(There)27 b(are)g(no)g(other)g(restrictions)f
4150 (on)h Fi(tree_block)d Fn(no)s(des.)39 b(The)26 b(b)s(o)s(dies)f(ma)m(y)
4151 j(b)s(e)e(empt)m(y)i(or)f(con)m(tain)150 4395 y(an)m(y)40
4152 b(kinds)e(of)i(tree)h(no)s(des.)69 b(Blo)s(c)m(ks)40
4153 b(are)h(usually)c(en)m(tered)k(from)e(the)i(b)s(eginning)c(but)i(that)i
4154 (is)e(not)150 4505 y(required;)29 b(unlik)m(e)f(other)j(AST)f(no)s
4155 (des,)g(branc)m(hes)g(in)m(to)g(the)h(middle)c(of)k(a)g(blo)s(c)m(k)f
4156 (are)g(allo)m(w)m(ed.)275 4663 y(As)f(an)h(example,)g(the)g(follo)m
4157 (wing)e(co)s(de)i(creates)h(a)f(new)g Fi(tree_block)d
4158 Fn(and)i(its)g(asso)s(ciated)h(sym)m(b)s(ol)150 4772
4159 y(table.)41 b(It)30 b(then)g(adds)g(the)g(new)g(blo)s(c)m(k)g(to)h(the)
4160 g(b)s(o)s(dy)e(of)h(an)g(existing)g(blo)s(c)m(k)g(no)s(de:)390
4161 4925 y Fi(block_symtab)44 b(*new_symtab)h(=)j(new)f
4162 (block_symtab\("my_symtab)o("\);)390 5029 y(cur_block->symtab\(\)->add)
4163 o(_chi)o(ld\(n)o(ew_)o(symt)o(ab\);)390 5132 y(tree_node_list)d(*tl)j
4164 (=)g(new)g(tree_node_list;)390 5236 y(tree_block)e(*new_block)g(=)i
4165 (new)g(tree_block\(tl,)d(new_symtab\);)390 5340 y
4166 (cur_block->body\(\)->appen)o(d\(ne)o(w_bl)o(ock)o(\);)p
4168 %%Page: 20 22
4169 20 21 bop 150 -116 a Fn(20)2385 b(The)30 b(SUIF)g(V)-8
4170 b(ersion)30 b(1)h(Library)150 299 y Ff(3.1.8)63 b(Pro)s(cedure)41
4171 b(No)s(des)275 494 y Fn(A)33 b(sp)s(ecial)g(kind)f(of)i(blo)s(c)m(k)f
4172 (no)s(de)g(is)g(used)g(as)h(the)g(ro)s(ot)h(of)f(eac)m(h)h(AST.)e
4173 (These)g Fi(tree_proc)f Fn(no)s(des)150 604 y(are)27
4174 b(deriv)m(ed)g(from)f(the)i Fi(tree_block)c Fn(class.)39
4175 b(They)27 b(are)g(essen)m(tially)f(the)i(same)f(as)h(other)f(blo)s(c)m
4176 (k)f(no)s(des,)150 714 y(but)36 b(they)h(include)d(a)j(few)f(extra)i
4177 (metho)s(ds)d(and)h(ha)m(v)m(e)i(a)f(sligh)m(tly)e(di\013eren)m(t)h
4178 (kind)f(of)h(sym)m(b)s(ol)g(table.)150 823 y(SUIF)h(do)s(es)g(not)g
4179 (supp)s(ort)f(nested)h(pro)s(cedures,)h(so)f Fi(tree_proc)e
4180 Fn(no)s(des)h(ma)m(y)i(only)e(b)s(e)g(used)h(at)h(the)150
4181 933 y(ro)s(ots)31 b(of)f(ASTs.)275 1070 y(A)37 b(pro)s(cedure)g(no)s
4182 (de's)g(sym)m(b)s(ol)g(table)g(m)m(ust)h(b)s(e)f(a)h
4183 Fi(proc_symtab)d Fn(instead)i(of)h(just)f(an)h(ordinary)150
4184 1180 y Fi(block_symtab)p Fn(.)h(The)30 b Fi(proc_syms)f
4185 Fn(metho)s(d)h(is)g(pro)m(vided)f(to)j(cast)g(the)f(sym)m(b)s(ol)e
4186 (table)i(p)s(oin)m(ter)f(to)i(b)s(e)150 1289 y(a)h Fi(proc_symtab)p
4187 Fn(.)43 b(A)32 b Fi(tree_proc)e Fn(no)s(de)h(also)h(has)g(a)h(p)s(oin)m
4188 (ter)e(to)i(the)f(sym)m(b)s(ol)f(of)i(the)f(corresp)s(onding)150
4189 1399 y(pro)s(cedure.)37 b(This)22 b(p)s(oin)m(ter)h(is)g(set)i
4190 (automatically)e(when)g(a)h Fi(tree_proc)e Fn(is)h(attac)m(hed)i(to)g
4191 (the)f(pro)s(cedure)150 1509 y(sym)m(b)s(ol.)57 b(F)-8
4192 b(or)36 b(an)m(y)h(tree)g(no)s(de)e(in)g(an)h(AST,)f(the)i
4193 Fi(proc)d Fn(metho)s(d)i(retriev)m(es)g(this)f(pro)s(cedure)g(sym)m(b)s
4194 (ol)150 1618 y(from)30 b(the)g Fi(tree_proc)e Fn(at)j(the)g(ro)s(ot)g
4195 (of)f(the)h(tree.)275 1756 y(Because)26 b Fi(tree_proc)d
4196 Fn(no)s(des)i(are)g(alw)m(a)m(ys)h(at)g(the)g(ro)s(ots)f(of)h(the)f
4197 (ASTs,)h(their)e Fi(parent)g Fn(list)g(p)s(oin)m(ters)150
4198 1865 y(\(see)31 b(Section)g(3.1.2)h([Other)e(No)s(de)g(F)-8
4199 b(eatures],)32 b(page)f(12\))h(are)f(alw)m(a)m(ys)g Fi(NULL)p
4200 Fn(.)150 2130 y Fl(3.2)68 b(T)-11 b(ree)45 b(No)t(de)g(Lists)275
4201 2325 y Fn(A)34 b Fi(tree_node_list)d Fn(is)j(a)h(doubly-link)m(ed)d
4202 (list)h(of)i(tree)g(no)s(des,)h(deriv)m(ed)d(from)i(the)g
4203 Fi(dlist)e Fn(class.)150 2435 y(See)28 b(Section)g(11.4)i([Doubly-Link)
4204 m(ed)d(Lists],)h(page)g(80.)41 b(Most)29 b(no)s(des)f(in)e(an)i(AST)g
4205 (ha)m(v)m(e)h(their)e(c)m(hildren)150 2545 y(recorded)c(in)f(tree)i(no)
4206 s(de)e(lists.)37 b(F)-8 b(or)24 b(example,)g(the)g(b)s(o)s(dy)d(of)j(a)
4207 f(blo)s(c)m(k)g(no)s(de)f(is)h(a)g(tree)h(no)s(de)e(list.)37
4208 b(Besides)150 2654 y(the)25 b(standard)f(list)f(features,)k(eac)m(h)e
4209 (tree)h(no)s(de)e(list)f(includes)g(a)i(bac)m(k-p)s(oin)m(ter)f(to)i
4210 (its)e(paren)m(t)h(tree)g(no)s(de.)150 2764 y(These)g(p)s(oin)m(ters)g
4211 (are)g(main)m(tained)g(automatically)g(b)m(y)g(the)h(SUIF)f(library)e
4212 (and)i(can)h(b)s(e)f(accessed)h(using)150 2873 y(the)35
4213 b Fi(parent)f Fn(metho)s(d.)55 b(In)34 b(addition,)h(eac)m(h)i(no)s(de)
4214 d(on)h(a)h(tree)g(no)s(de)f(list)f(con)m(tains)h(p)s(oin)m(ters)f(bac)m
4215 (k)i(to)150 2983 y(the)41 b(list)f(and)g(the)i(list)d(elemen)m(t.)73
4216 b(See)42 b(Section)f(3.1.2)h([Other)f(No)s(de)g(F)-8
4217 b(eatures],)46 b(page)c(12.)73 b(These)150 3093 y(p)s(oin)m(ters)30
4218 b(are)i(set)f(b)m(y)g(the)h Fi(set_elem)d Fn(metho)s(d)h(\(see)i
4219 (Section)f(11.1)i([Generic)e(Lists],)g(page)h(79\))g(whic)m(h)150
4220 3202 y(is)d(automatically)i(called)e(ev)m(ery)i(time)f(an)h(elemen)m(t)
4221 g(is)e(added)h(to)h(the)f(list.)275 3340 y(In)g(a)i Fi(tree_for)d
4222 Fn(no)s(de,)i(the)g(lo)m(w)m(er)h(b)s(ound,)e(upp)s(er)f(b)s(ound,)g
4223 (and)i(step)g(v)-5 b(alue)31 b(are)h(usually)d(treated)150
4224 3449 y(as)g(op)s(erands;)g(ho)m(w)m(ev)m(er,)i(the)e(op)s(erands)f(are)
4225 i(actually)e(stored)h(as)h(tree)g(no)s(de)e(lists.)39
4226 b(See)29 b(Section)g(3.1.6)150 3559 y([F)-8 b(or)40 b(No)s(des],)h
4227 (page)f(16.)67 b(Eac)m(h)39 b(of)g(these)g(lists)e(is)h(required)f(to)j
4228 (con)m(tain)f(a)g(single)f(expression)f(with)150 3668
4229 y(a)k(dumm)m(y)e(cop)m(y)j(instruction)c(at)k(the)f(ro)s(ot.)71
4230 b(The)40 b(destination)g(of)g(the)h(dumm)m(y)f(cop)m(y)h(m)m(ust)g(b)s
4231 (e)f(a)150 3778 y(n)m(ull)30 b(op)s(erand.)44 b(The)31
4232 b Fi(tree_node_list)d Fn(class)j(includes)f(sev)m(eral)i(metho)s(ds)f
4233 (to)i(handle)d(these)i(sp)s(ecial)150 3887 y(lists.)47
4234 b(The)32 b Fi(is_op)g Fn(metho)s(d)g(c)m(hec)m(ks)j(if)c(the)j(list)d
4235 (consists)i(of)g(a)g(single)e(cop)m(y)j(instruction)d(with)h(a)h(n)m
4236 (ull)150 3997 y(destination.)39 b(The)28 b Fi(op)h Fn(metho)s(d)f
4237 (retriev)m(es)h(the)g(op)s(erand)f(stored)h(in)e(the)i(list.)39
4238 b(If)29 b(after)g(con)m(v)m(erting)h(the)150 4107 y(list)36
4239 b(to)j(expression)d(tree)j(form,)g(the)f Fi(is_op)e Fn(metho)s(d)h
4240 (returns)g Fi(TRUE)p Fn(,)h(the)g Fi(op)f Fn(metho)s(d)g(returns)g(the)
4241 150 4216 y(source)h(op)s(erand)f(of)i(the)f(dumm)m(y)f(cop)m(y)i
4242 (instruction;)h(otherwise,)g(an)e(error)g(o)s(ccurs.)64
4243 b(The)38 b Fi(set_op)150 4326 y Fn(metho)s(d)31 b(is)g(used)g(to)h(set)
4244 h(the)f(con)m(ten)m(ts)h(of)f(the)g(tree)g(no)s(de)f(list)g(to)h(a)g
4245 (dumm)m(y)f(cop)m(y)i(instruction)c(with)150 4435 y(the)35
4246 b(sp)s(eci\014ed)e(op)s(erand)g(as)i(its)f(source.)53
4247 b(The)34 b(list)f(m)m(ust)h(either)g(b)s(e)g(empt)m(y)h(or)g(already)f
4248 (con)m(tain)h(the)150 4545 y(dumm)m(y)30 b(cop)m(y)-8
4249 b(.)45 b(Finally)-8 b(,)30 b(the)h Fi(op_is_intconst)c
4250 Fn(metho)s(d)k(c)m(hec)m(ks)i(if)d(the)h(op)s(erand)f(in)g(the)i(tree)g
4251 (no)s(de)150 4655 y(list)d(is)g(a)i(constan)m(t)h(in)m(teger,)f(and)f
4252 (if)f(so,)i(returns)e(the)i(v)-5 b(alue.)275 4792 y(T)d(ree)39
4253 b(no)s(de)f(lists)g(can)h(easily)f(b)s(e)g(prin)m(ted)g(out)h(as)g
4254 (text.)68 b(The)38 b Fi(print)f Fn(metho)s(d)i(simply)d(iterates)150
4255 4902 y(through)f(the)i(list)d(and)i(calls)f(the)h Fi(print)e
4256 Fn(metho)s(d)i(for)g(eac)m(h)h(tree)g(no)s(de.)57 b(The)35
4257 b(optional)g Fi(depth)g Fn(pa-)150 5011 y(rameter)c(sp)s(eci\014es)f
4258 (the)h(inden)m(tation)f(lev)m(el)h(to)g(b)s(e)g(used.)41
4259 b(A)32 b(separate)f(metho)s(d)g(is)f(used)g(to)i(prin)m(t)d(tree)150
4260 5121 y(no)s(de)h(lists)e(that)j(hold)e Fi(tree_for)f
4261 Fn(op)s(erands.)39 b(If)30 b(the)g Fi(is_op)f Fn(metho)s(d)h(for)g(one)
4262 g(of)h(these)f(lists)f(returns)150 5230 y Fi(TRUE)p Fn(,)j(the)h
4263 Fi(print_expr)d Fn(metho)s(d)i(prin)m(ts)f(the)i(op)s(erand)e(directly)
4264 -8 b(.)46 b(Otherwise,)33 b(it)f(prin)m(ts)f(the)h(list)g(as)150
4265 5340 y(usual.)p eop
4266 %%Page: 21 23
4267 21 22 bop 150 -116 a Fn(Chapter)30 b(3:)41 b(Abstract)31
4268 b(Syn)m(tax)f(T)-8 b(rees)2152 b(21)150 299 y Fl(3.3)68
4269 b(Mapping)45 b(F)-11 b(unctions)44 b(Ov)l(er)h(Subtrees)275
4270 486 y Fn(Man)m(y)37 b(SUIF)g(programs)g(con)m(tain)h(co)s(de)f(that)h
4271 (visits)e(all)g(of)h(the)h(no)s(des)e(in)g(an)h(AST)f(to)i(p)s(erform)
4272 150 596 y(v)-5 b(arious)21 b(op)s(erations.)37 b(Rather)22
4273 b(than)f(ha)m(ving)h(ev)m(ery)g(programmer)g(duplicate)e(the)i(co)s(de)
4274 g(for)g(this)e(tra)m(v)m(er-)150 705 y(sal,)34 b(the)g(SUIF)f(library)f
4275 (includes)f(metho)s(ds)i(to)h(map)g(functions)e(o)m(v)m(er)j(ASTs.)49
4276 b(The)33 b Fi(tree_node)f Fn(and)150 815 y Fi(tree_node_list)26
4277 b Fn(classes)31 b(b)s(oth)f(pro)m(vide)f(these)i Fi(map)e
4278 Fn(metho)s(ds.)275 944 y(The)20 b(function)f(to)j(b)s(e)e(mapp)s(ed)f
4279 (m)m(ust)i(b)s(e)f(of)h(t)m(yp)s(e)g Fi(tree_map_f)p
4280 Fn(.)35 b(F)-8 b(or)22 b(a)f(tree)g(no)s(de,)i(the)e
4281 Fi(map)e Fn(metho)s(d)150 1053 y(applies)35 b(the)h(function)g(to)h
4282 (the)g(tree)g(no)s(de)f(and)g(all)f(of)i(its)f(c)m(hildren.)57
4283 b(The)36 b Fi(preorder)e Fn(parameter)j(is)150 1163 y(used)30
4284 b(to)i(select)f(either)g(preorder)f(or)g(p)s(ostorder)h(tra)m(v)m
4285 (ersals;)h(the)f(default)f(is)g(preorder.)41 b(F)-8 b(or)32
4286 b(preorder)150 1273 y(tra)m(v)m(ersals,)h(the)e(function)f(is)h
4287 (applied)e(to)j(the)g(tree)g(no)s(de)f(b)s(efore)g(it)g(is)f(applied)g
4288 (to)i(the)f(c)m(hildren.)42 b(F)-8 b(or)150 1382 y(p)s(ostorder,)26
4289 b(the)h(function)d(is)h(\014rst)h(applied)d(to)k(the)f(tree)p
4290 2082 1382 28 4 v 34 w(no)s(de's)f(c)m(hildren)f(and)i(descendan)m(ts)g
4291 (and)f(then)150 1492 y(last)30 b(applied)e(to)k(the)e(tree)h(no)s(de)f
4292 (itself.)275 1621 y(The)j Fi(map)f Fn(metho)s(d)h(for)g(a)h(tree)g(no)s
4293 (de)f(list)f(calls)h Fi(map)g Fn(for)g(eac)m(h)h(no)s(de)f(in)f(the)i
4294 (list.)49 b(The)33 b(no)s(des)g(are)150 1730 y(visited)f(in)h(order)g
4295 (from)h(\014rst)f(to)h(last)g(regardless)f(of)h(the)g
4296 Fi(preorder)e Fn(parameter.)51 b(The)34 b Fi(tree_node_)150
4297 1840 y(list)g Fn(v)m(ersion)h(of)g(the)h Fi(map)e Fn(metho)s(d)h(has)g
4298 (an)g(extra)h(optional)f(parameter)h(that)f(allo)m(ws)g(y)m(ou)h(to)g
4299 (only)150 1949 y(map)30 b(the)h(function)e(o)m(v)m(er)i(the)g(en)m
4300 (tries)f(in)f(the)i(list)e(without)g(recursiv)m(ely)g(visiting)f(their)
4301 i(c)m(hildren.)275 2078 y(The)c Fi(tree_map_f)e Fn(functions)h(ha)m(v)m
4302 (e)j(t)m(w)m(o)g(parameters:)40 b(a)27 b(p)s(oin)m(ter)f(to)h(the)g
4303 (tree)h(no)s(de)e(and)g(a)h Fi(void*)150 2188 y Fn(v)-5
4304 b(alue)27 b(passed)g(on)h(from)f(the)h Fi(map)f Fn(metho)s(d.)39
4305 b(Additional)25 b(parameters)j(can)g(b)s(e)f(passed)g(b)m(y)h(making)f
4306 (the)150 2298 y Fi(void*)g Fn(v)-5 b(alue)27 b(a)h(p)s(oin)m(ter)f(to)i
4307 (a)g(structure)e(con)m(taining)h(the)g(parameters.)40
4308 b(F)-8 b(or)29 b(example,)f(the)g(follo)m(wing)150 2407
4309 y(co)s(de)j(coun)m(ts)f(the)h(n)m(um)m(b)s(er)e(of)i
4310 Fi(tree_for)d Fn(and)i Fi(tree_loop)d Fn(no)s(des)j(in)f(a)i(pro)s
4311 (cedure:)390 2530 y Fi(struct)46 b(count_result)f({)581
4312 2634 y(int)i(num_fors;)581 2738 y(int)g(num_loops;)390
4313 2842 y(};)390 3049 y(void)g(count_loops)d(\(tree_node)h(*t,)i(void)g
4314 (*x\))390 3153 y({)581 3257 y(count_result)d(*results)i(=)h
4315 (\(count_result)e(*\)x;)581 3464 y(if)i(\(t->kind\(\))e(==)i
4316 (TREE_FOR\))f(results->num_fors++;)581 3568 y(else)h(if)g
4317 (\(t->kind\(\))e(==)i(TREE_LOOP\))e(results->num_loops++;)390
4318 3672 y(})390 3880 y(/*)438 3983 y(*)95 b(Return)46 b(the)h(number)f(of)
4319 h(tree_fors)e(and)i(tree_loops)e(in)j(the)e(procedure.)438
4320 4087 y(*/)390 4295 y(void)h(counter)e(\(tree_proc)g(*p,)i(int)g
4321 (*for_count,)e(int)i(*loop_count\))390 4398 y({)581 4502
4322 y(count_result)d(results;)581 4606 y(results.num_fors)f(=)48
4323 b(0;)581 4710 y(results.num_loops)43 b(=)k(0;)581 4917
4324 y(p->map\(count_loops,)42 b(\(void)47 b(*\)&results\);)581
4325 5125 y(*for_count)e(=)95 b(results.num_fors;)581 5229
4326 y(*loop_count)45 b(=)i(results.num_loops;)390 5332 y(})p
4328 %%Page: 22 24
4329 22 23 bop 150 -116 a Fn(22)2385 b(The)30 b(SUIF)g(V)-8
4330 b(ersion)30 b(1)h(Library)p eop
4331 %%Page: 23 25
4332 23 24 bop 150 -116 a Fn(Chapter)30 b(4:)41 b(Instructions)29
4333 b(and)g(Expression)g(T)-8 b(rees)1694 b(23)150 299 y
4334 Fj(4)80 b(Instructions)52 b(and)i(Expression)f(T)-13
4335 b(rees)275 521 y Fn(A)m(t)44 b(the)f(lea)m(v)m(es)i(of)e(the)h
4336 (abstract)g(syn)m(tax)g(trees,)j(the)d Fi(tree_instr)c
4337 Fn(no)s(des)j(\(see)h(Section)f(3.1.3)150 630 y([Instruction)35
4338 b(No)s(des],)j(page)e(13\))i(hold)c(SUIF)i(instructions.)56
4339 b(Eac)m(h)36 b(instruction)e(p)s(erforms)h(a)h(single)150
4340 740 y(op)s(eration,)30 b(sp)s(eci\014ed)f(b)m(y)h(its)g(op)s(co)s(de.)
4341 40 b(With)30 b(just)g(a)h(few)f(exceptions,)h(the)f(op)s(co)s(des)g
4342 (are)h(simple)e(and)150 849 y(straigh)m(tforw)m(ard,)e(similar)d(to)j
4343 (the)g(instruction)d(set)j(of)g(a)g(t)m(ypical)f(RISC)f(pro)s(cessor.)
4344 39 b(The)26 b(instructions)150 959 y(include)i(arithmetic,)i(data)h
4345 (transfer,)f(and)g(con)m(trol)h(\015o)m(w)f(op)s(erations.)275
4346 1091 y(SUIF)c(instructions)f(ma)m(y)i(b)s(e)f(used)g(in)f(t)m(w)m(o)j
4347 (w)m(a)m(ys.)41 b(Most)27 b(high-lev)m(el)f(passes)g(use)h(expression)e
4348 (trees,)150 1200 y(where)31 b(the)i(instructions)c(are)k(group)s(ed)e
4349 (together)i(in)e(trees)h(that)h(corresp)s(ond)e(to)h(the)h(expressions)
4350 d(in)150 1310 y(the)c(source)h(programs.)39 b(Bac)m(k-end)27
4351 b(optimization)f(passes)g(ha)m(v)m(e)h(traditionally)d(w)m(ork)m(ed)j
4352 (with)e(\015at)h(lists)150 1420 y(of)31 b(instructions,)d(and)i(SUIF)g
4353 (supp)s(orts)e(that)j(represen)m(tation)g(as)f(w)m(ell.)275
4354 1552 y(The)25 b(\014les)g(`)p Fi(instruction.h)p Fn(')e(and)i(`)p
4355 Fi(instruction.cc)p Fn(')e(con)m(tain)j(the)g(co)s(de)h(for)e(the)h
4356 (SUIF)g(instruc-)150 1661 y(tion)k(classes.)150 1911
4357 y Fl(4.1)68 b(Basic)45 b(Instruction)g(F)-11 b(eatures)275
4358 2101 y Fn(All)31 b(instructions)g(share)h(some)h(basic)g(features.)48
4359 b(This)31 b(section)i(describ)s(es)e(the)i(\014elds)e(in)h(the)h(base)
4360 150 2211 y Fi(instruction)28 b Fn(class.)42 b(Other)30
4361 b(classes)h(are)g(deriv)m(ed)f(from)h(the)g Fi(instruction)d
4362 Fn(class)i(to)i(include)c(\014elds)150 2320 y(that)j(are)g(sp)s
4363 (eci\014c)e(to)i(the)g(di\013eren)m(t)e(instruction)g(formats.)275
4364 2452 y(Besides)22 b(the)i(features)g(b)s(elo)m(w,)g(the)f(instructions)
4365 f(ha)m(v)m(e)i(ID)g(n)m(um)m(b)s(ers)e(that)i(can)f(b)s(e)g(used)f(to)i
4366 (iden)m(tify)150 2562 y(them)30 b(across)h(passes)g(of)f(the)h
4367 (compiler.)39 b(This)29 b(is)g(discussed)f(in)i(detail)f(elsewhere.)40
4368 b(See)31 b(Section)f(3.1.1)150 2672 y([ID)h(Num)m(b)s(ers],)e(page)j
4369 (11.)275 2804 y(The)41 b(SUIF)h(library)e(also)i(declares)g(an)g
4370 Fi(instruction_list)37 b Fn(class)42 b(for)g(w)m(orking)f(with)g(lists)
4371 g(of)150 2913 y(p)s(oin)m(ters)28 b(to)i(instructions.)38
4372 b(This)27 b(class)i(is)f(not)h(used)f(m)m(uc)m(h)h(within)e(the)i
4373 (library)d(itself)i(b)s(ecause)h(SUIF)150 3023 y(do)s(es)34
4374 b(not)h(store)g(instructions)d(directly)h(on)h(lists.)51
4375 b(Ev)m(en)35 b(with)e(the)i(\015at)f(list)f(form,)j(the)e(instructions)
4376 150 3132 y(are)41 b(con)m(tained)g(in)e Fi(tree_instr)f
4377 Fn(no)s(des,)43 b(whic)m(h)c(in)h(turn)f(are)i(stored)g(in)e(lists.)71
4378 b(Ho)m(w)m(ev)m(er,)45 b(it)40 b(ma)m(y)150 3242 y(sometimes)27
4379 b(b)s(e)f(con)m(v)m(enien)m(t)h(to)h(w)m(ork)e(with)f(lists)h(of)g
4380 (instruction)f(p)s(oin)m(ters)g(ev)m(en)i(if)f(those)h(instructions)150
4381 3352 y(are)k(actually)f(stored)g(in)f Fi(tree_instr)f
4382 Fn(no)s(des.)150 3568 y Ff(4.1.1)63 b(Op)s(co)s(des)42
4383 b(and)f(F)-10 b(ormats)275 3758 y Fn(The)40 b Fi(opcode)f
4384 Fn(and)i Fi(set_opcode)d Fn(metho)s(ds)i(ma)m(y)i(b)s(e)e(used)h(to)g
4385 (access)i(the)e(op)s(co)s(de)g(\014eld)e(in)h(an)150
4386 3868 y(instruction.)70 b(These)41 b(op)s(co)s(des)g(are)g(mem)m(b)s
4387 (ers)f(of)h(the)h Fi(if_ops)d Fn(en)m(umerated)i(t)m(yp)s(e.)73
4388 b(The)40 b(in)m(ternal)150 3978 y(names)27 b(for)h(the)f(op)s(co)s(des)
4389 g(all)g(b)s(egin)f(with)g Fi(io_)p Fn(,)h(but)g(that)h(pre\014x)e(is)h
4390 (omitted)g(in)f(this)h(do)s(cumen)m(tation.)150 4087
4391 y(The)43 b Fi(if_ops_name)e Fn(function)i(tak)m(es)i(an)f(op)s(co)s(de)
4392 g(and)f(returns)g(a)h(c)m(haracter)i(string)d(holding)f(the)150
4393 4197 y(op)s(co)s(de)h(name)g(\(without)f(the)h Fi(io_)f
4394 Fn(pre\014x\).)78 b(This)41 b(is)h(used)g(b)m(y)h(the)g(library)e(when)
4395 h(it)g(prin)m(ts)g(out)150 4306 y(instructions,)28 b(but)i(y)m(ou)h(ma)
4396 m(y)g(also)f(call)g(it)g(directly)-8 b(.)275 4438 y(Eac)m(h)23
4397 b(op)s(co)s(de)g(is)f(asso)s(ciated)h(with)f(a)i(particular)d
4398 (instruction)g(format.)39 b(The)22 b(formats)h(are)h(sp)s(eci\014ed)150
4399 4548 y(b)m(y)i(mem)m(b)s(ers)f(of)h(the)g Fi(inst_format)c
4400 Fn(en)m(umeration.)39 b(The)25 b Fi(format)f Fn(metho)s(d)i(ma)m(y)g(b)
4401 s(e)f(used)g(to)i(retriev)m(e)150 4658 y(the)k(format)g(for)f(a)i
4402 (particular)d(instruction.)39 b(Alternativ)m(ely)-8 b(,)31
4403 b(the)g Fi(which_format)c Fn(function)j(tak)m(es)i(an)150
4404 4767 y(op)s(co)s(de)27 b(and)g(returns)g(its)g(format)h(without)e
4405 (reference)i(to)h(an)m(y)f(particular)e(instruction.)37
4406 b(Eac)m(h)29 b(format)150 4877 y(corresp)s(onds)g(to)i(a)g(particular)e
4407 (deriv)m(ed)g(instruction)f(class:)150 5031 y Fi(inf_rrr)84
4408 b Fn(Three)30 b(op)s(erand)f(instructions)f(use)i(the)h
4409 Fi(in_rrr)e Fn(class.)150 5186 y Fi(inf_bj)132 b Fn(Branc)m(h)31
4410 b(and)e(jump)g(instructions)f(use)j(the)f Fi(in_bj)f
4411 Fn(class.)150 5340 y Fi(inf_ldc)84 b Fn(The)30 b(load)g(constan)m(t)i
4412 (instruction)c(uses)i(the)g Fi(in_ldc)f Fn(class.)p eop
4413 %%Page: 24 26
4414 24 25 bop 150 -116 a Fn(24)2385 b(The)30 b(SUIF)g(V)-8
4415 b(ersion)30 b(1)h(Library)150 299 y Fi(inf_cal)84 b Fn(The)30
4416 b(call)g(instruction)e(uses)i(the)g Fi(in_cal)f Fn(class.)150
4417 474 y Fi(inf_array)630 584 y Fn(The)h(arra)m(y)h(instruction)d(uses)i
4418 (the)h Fi(in_array)d Fn(class.)150 759 y Fi(inf_mbr)84
4419 b Fn(The)30 b(m)m(ulti-w)m(a)m(y)g(branc)m(h)g(instruction)e(uses)i
4420 (the)h Fi(in_mbr)d Fn(class.)150 934 y Fi(inf_lab)84
4421 b Fn(The)30 b(lab)s(el)f(instruction)f(uses)i(the)g Fi(in_lab)f
4422 Fn(class.)150 1109 y Fi(inf_gen)84 b Fn(Generic)30 b(instructions)e
4423 (use)i(the)h Fi(in_gen)e Fn(class.)275 1292 y(The)h Fi(format)f
4424 Fn(metho)s(d)h(is)f(often)i(used)f(in)f Fi(switch)g Fn(statemen)m(ts)k
4425 (for)d(dealing)f(with)h(di\013eren)m(t)g(kinds)150 1402
4426 y(of)j(instructions.)47 b(F)-8 b(or)34 b(example,)g(the)f(follo)m(wing)
4427 f(co)s(de)h(computes)g(the)h(n)m(um)m(b)s(er)e(of)h(source)g(op)s
4428 (erands)150 1511 y(in)c(an)h(instruction)f(\(instead)h(of)g(using)f
4429 (the)i Fi(num_srcs)d Fn(metho)s(d\):)390 1656 y Fi(instruction)45
4430 b(*i;)390 1759 y(switch)h(\(i->format\(\)\))e({)581 1863
4431 y(case)j(inf_rrr:)e({)772 1967 y(n)i(+=)g(2;)772 2071
4432 y(break;)581 2174 y(})581 2278 y(case)g(inf_bj:)e({)772
4433 2382 y(n)i(+=)g(1;)772 2486 y(break;)581 2590 y(})581
4434 2693 y(case)g(inf_cal:)e({)772 2797 y(in_cal)h(*cali)g(=)i(\(in_cal)e
4435 (*\)i;)772 2901 y(n)h(+=)g(1)h(+)f(cali->num_args\(\);)772
4436 3005 y(break;)581 3108 y(})581 3212 y(case)g(inf_array:)e({)772
4437 3316 y(in_array)g(*arri)i(=)g(\(in_array)e(*\)i;)772
4438 3420 y(n)i(+=)g(2)h(+)f(2)h(*)f(arri->dims\(\);)772 3524
4439 y(break;)581 3627 y(})581 3731 y(case)g(inf_mbr:)e({)772
4440 3835 y(n)i(+=)g(1;)772 3939 y(break;)581 4042 y(})581
4441 4146 y(case)g(inf_gen:)e({)772 4250 y(in_gen)h(*geni)g(=)i(\(in_gen)e
4442 (*\)i;)772 4354 y(n)h(+=)g(geni->num_srcs\(\);)772 4458
4443 y(break;)581 4561 y(})581 4665 y(default:)e({)772 4769
4444 y(/*)i(other)f(formats)g(\(inf_ldc)g(and)h(inf_lab\))e(have)i(no)g
4445 (source)f(operands)g(*/)772 4873 y(break;)581 4976 y(})390
4446 5080 y(})275 5230 y Fn(The)32 b(op)s(co)s(des)h(and)g(instruction)f
4447 (formats)h(are)h(de\014ned)e(in)g(the)i(`)p Fi(opcodes.h)p
4448 Fn(')d(and)i(`)p Fi(opcodes.cc)p Fn(')150 5340 y(\014les.)p
4450 %%Page: 25 27
4451 25 26 bop 150 -116 a Fn(Chapter)30 b(4:)41 b(Instructions)29
4452 b(and)g(Expression)g(T)-8 b(rees)1694 b(25)150 299 y
4453 Ff(4.1.2)63 b(Destination)41 b(Op)s(erands)275 487 y
4454 Fn(The)35 b(base)h Fi(instruction)d Fn(class)j(includes)d(a)k(\014eld)d
4455 (for)i(the)g(destination)f(op)s(erand,)i(ev)m(en)f(though)150
4456 597 y(not)i(all)e(instructions)g(use)h(it.)62 b(The)38
4457 b Fi(dst_op)e Fn(metho)s(d)h(returns)f(the)i(v)-5 b(alue)37
4458 b(of)h(this)e(op)s(erand.)62 b(If)37 b(an)150 707 y(instruction)k(do)s
4459 (es)i(not)g(pro)s(duce)f(a)h(result,)i(the)e(destination)f(op)s(erand)g
4460 (should)f(alw)m(a)m(ys)i(b)s(e)g(a)g(n)m(ull)150 816
4461 y(op)s(erand.)77 b(Moreo)m(v)m(er,)48 b(the)43 b(destination)e(ma)m(y)j
4462 (b)s(e)e(n)m(ull)e(ev)m(en)k(if)d(an)i(instruction)e(do)s(es)h(pro)s
4463 (duce)g(a)150 926 y(result.)e(In)29 b(that)i(case,)h(the)e(result)g(v)
4464 -5 b(alue)30 b(is)f(computed)h(and)g(then)g(discarded.)275
4465 1056 y(If)25 b(the)h(destination)f(op)s(erand)g(is)h(a)g(v)-5
4466 b(ariable,)26 b(its)g(t)m(yp)s(e)g(m)m(ust)g(b)s(e)f(compatible)h(with)
4467 e(the)j(result)e(t)m(yp)s(e)150 1166 y(of)31 b(the)f(instruction.)275
4468 1296 y(If)e(the)i(result)e(of)i(an)f(instruction)e(is)h(a)i(temp)s
4469 (orary)f(v)-5 b(alue,)29 b(the)h(destination)e(op)s(erand)g(is)g(a)i(p)
4470 s(oin)m(ter)150 1406 y(to)35 b(the)g(instruction)e(where)h(the)g(v)-5
4471 b(alue)34 b(is)g(used.)52 b(Note)36 b(that)f(this)f(is)f(di\013eren)m
4472 (t)h(than)h(an)f(instruction)150 1515 y(p)s(oin)m(ter)27
4473 b(in)g(a)i(source)f(op)s(erand.)39 b(The)28 b(source)g(op)s(erands)g
4474 (of)g(an)g(instruction)e(p)s(oin)m(t)i(to)h(the)f(c)m(hildren)e(in)150
4475 1625 y(an)k(expression)f(tree,)j(while)c(the)j(destination)e(op)s
4476 (erand)g(p)s(oin)m(ts)g(to)i(the)g(paren)m(t)g(instruction.)275
4477 1755 y(The)38 b Fi(set_dst)f Fn(metho)s(d)i(ma)m(y)g(b)s(e)g(used)f(to)
4478 i(set)g(the)f(destination)f(op)s(erand)g(for)h(an)g(instruction.)150
4479 1865 y(Ho)m(w)m(ev)m(er,)33 b(there)d(are)h(some)g(imp)s(ortan)m(t)e
4480 (restrictions)h(on)g(using)f(this)g(metho)s(d:)225 1995
4481 y Fk(\017)60 b Fn(F)-8 b(or)38 b(deriv)m(ed)d(classes)i(with)f
4482 (instructions)e(that)k(nev)m(er)f(pro)s(duce)e(result)h(v)-5
4483 b(alues,)38 b(it)e(is)g(illegal)f(to)330 2105 y(call)f
4484 Fi(set_dst)p Fn(.)53 b(This)33 b(allo)m(ws)h(the)h(library)d(to)k
4485 (ensure)e(that)i(the)f(destination)f(will)e(alw)m(a)m(ys)j(b)s(e)g(a)
4486 330 2214 y(n)m(ull)28 b(op)s(erand)831 2181 y Fg(1)867
4487 2214 y Fn(.)41 b(T)-8 b(rying)28 b(to)j(use)f Fi(set_dst)d
4488 Fn(for)j(one)g(of)g(these)h(instructions)d(will)f(cause)j(an)g(error.)
4489 225 2345 y Fk(\017)60 b Fn(Y)-8 b(ou)31 b(ma)m(y)g(not)f(set)h(the)f
4490 (destination)f(op)s(erand)h(to)h(p)s(oin)m(t)e(to)i(another)f
4491 (instruction;)f(trying)g(to)i(do)330 2454 y(so)d(will)e(cause)j(an)f
4492 (error.)39 b(This)27 b(is)g(to)i(prev)m(en)m(t)g(inconsisten)m(t)e(p)s
4493 (oin)m(ters.)39 b(The)28 b(destination)f(should)330 2564
4494 y(only)35 b(p)s(oin)m(t)f(to)i(another)g(instruction)d(if)h(that)i
4495 (other)g(instruction)e(has)h(a)g(source)h(op)s(erand)e(that)330
4496 2673 y(p)s(oin)m(ts)f(bac)m(k)i(to)g(it.)51 b(Th)m(us,)34
4497 b(the)h(library)c(automatically)j(sets)h(the)f(destination)f(op)s
4498 (erand)g(when)330 2783 y(an)d(instruction)f(is)g(used)h(as)g(a)h
4499 (source)g(op)s(erand.)225 2913 y Fk(\017)60 b Fn(If)23
4500 b(the)g(destination)f(op)s(erand)g(already)h(con)m(tains)g(a)h(p)s(oin)
4501 m(ter)e(to)i(another)f(instruction,)g(y)m(ou)g(cannot)330
4502 3023 y(use)j Fi(set_dst)e Fn(to)j(o)m(v)m(erwrite)f(it.)39
4503 b(This)24 b(also)i(causes)h(a)f(run-time)f(error.)39
4504 b(As)26 b(in)f(the)h(previous)f(case,)330 3132 y(this)35
4505 b(is)h(to)h(prev)m(en)m(t)g(inconsisten)m(t)e(p)s(oin)m(ters.)58
4506 b(Instead,)38 b(y)m(ou)f(m)m(ust)f(\014rst)g(call)f(the)i
4507 (instruction's)330 3242 y Fi(remove)27 b Fn(metho)s(d)h(to)i(clear)e
4508 (the)h(destination)f(op)s(erand.)39 b(See)29 b(Section)f(4.1.5)j
4509 ([Source)d(Op)s(erands],)330 3352 y(page)j(26.)150 3563
4510 y Ff(4.1.3)63 b(Result)40 b(T)m(yp)s(es)275 3752 y Fn(Eac)m(h)31
4511 b(instruction)d(also)i(has)g(a)h(\014eld)e(to)i(sp)s(ecify)e(the)i
4512 (result)e(t)m(yp)s(e.)41 b(The)30 b Fi(result_type)d
4513 Fn(and)j Fi(set_)150 3861 y(result_type)d Fn(metho)s(ds)j(ma)m(y)h(b)s
4514 (e)f(used)g(to)h(access)h(this)d(\014eld.)40 b(If)30
4515 b(an)g(instruction)f(pro)s(duces)g(a)i(result)150 3971
4516 y(v)-5 b(alue)40 b(\(regardless)f(of)i(whether)e(the)h(result)f(is)g
4517 (actually)h(used\),)i(the)f(t)m(yp)s(e)f(of)g(the)h(result)e(m)m(ust)h
4518 (b)s(e)150 4081 y(indicated.)f(Otherwise,)30 b(the)g(result)f(t)m(yp)s
4519 (e)i(should)d(b)s(e)i(the)h(SUIF)f Fi(void)f Fn(t)m(yp)s(e.)275
4520 4211 y(If)39 b(the)g(instruction)f(pro)s(duces)g(a)i(v)-5
4521 b(alue,)41 b(the)f(result)e(t)m(yp)s(e)i(m)m(ust)f(b)s(e)g(an)g(ob)5
4522 b(ject)41 b(t)m(yp)s(e)e(\(i.e.)69 b(not)150 4321 y(a)39
4523 b(function)d(t)m(yp)s(e\))j(with)e(non-zero)i(size)f(and)g(that)g(size)
4524 g(m)m(ust)g(b)s(e)g(kno)m(wn)g(at)h(compile)e(time.)64
4525 b(This)150 4430 y(restriction)32 b(is)g(to)h(exclude)f(arra)m(ys)i
4526 (with)d(unkno)m(wn)h(or)g(sym)m(b)s(olic)g(b)s(ounds,)f(the)i(only)f(t)
4527 m(yp)s(es)h(without)150 4540 y(kno)m(wn)d(sizes.)150
4528 4751 y Ff(4.1.4)63 b(P)m(aren)m(t)39 b(T)-10 b(ree)41
4529 b(No)s(des)275 4940 y Fn(Eac)m(h)e(instruction)f(automatically)h
4530 (records)g(the)g Fi(tree_instr)e Fn(no)s(de)i(to)h(whic)m(h)e(it)g(is)h
4531 (attac)m(hed.)150 5050 y(The)g Fi(parent)f Fn(metho)s(d)g(retriev)m(es)
4532 i(this)e(p)s(oin)m(ter.)67 b(In)39 b(an)g(expression)f(tree,)43
4533 b(all)38 b(of)i(the)f(instructions)p 150 5131 1200 4
4534 v 192 5197 a Fg(1)275 5230 y Fn(Note)32 b(that)h(for)e(other)h(classes)
4535 f(it)g(is)g(y)m(our)g(resp)s(onsibilit)m(y)d(to)k(mak)m(e)h(sure)e
4536 (that)h(the)g(destination)e(is)275 5340 y(n)m(ull)e(if)h(the)i
4537 (instruction)d(do)s(es)i(not)h(pro)s(duce)e(a)i(result.)p
4539 %%Page: 26 28
4540 26 27 bop 150 -116 a Fn(26)2385 b(The)30 b(SUIF)g(V)-8
4541 b(ersion)30 b(1)h(Library)150 299 y(share)i(the)g(same)g(paren)m(t)g
4542 Fi(tree_instr)d Fn(no)s(de,)k(so)f(an)g(instruction)d(ma)m(y)k(not)f(b)
4543 s(e)f(directly)g(connected)150 408 y(to)f(its)f(paren)m(t)g(no)s(de.)
4544 275 545 y(The)35 b Fi(owner)g Fn(metho)s(d)h(is)f(iden)m(tical)g(to)i
4545 (the)g Fi(parent)d Fn(metho)s(d)i(except)h(for)g(instructions)d(that)j
4546 (are)150 654 y(used)k(as)g(op)s(erands)f(of)i Fi(tree_for)d
4547 Fn(no)s(des.)73 b(Those)41 b(op)s(erands)f(are)i(actually)f(attac)m
4548 (hed)i(to)f(dumm)m(y)150 764 y(cop)m(y)37 b(instructions)c(on)j(lists)e
4549 (attac)m(hed)k(to)f(the)f Fi(tree_for)d Fn(no)s(des)j(\(see)g(Section)g
4550 (3.1.6)i([F)-8 b(or)37 b(No)s(des],)150 873 y(page)h(16\),)i(but)c(man)
4551 m(y)h(users)f(will)e(w)m(an)m(t)k(to)g(treat)g(them)e(as)i(if)d(they)i
4552 (are)h(directly)d(attac)m(hed)k(to)f(the)150 983 y Fi(tree_for)31
4553 b Fn(no)s(des.)49 b(Th)m(us,)34 b(for)f(an)g(instruction)f(in)g(a)i
4554 Fi(tree_for)d Fn(op)s(erand,)i(the)h Fi(owner)e Fn(metho)s(d)h(will)150
4555 1092 y(return)c(a)i(p)s(oin)m(ter)e(to)i(the)g Fi(tree_for)d
4556 Fn(no)s(de)h(instead)h(of)g(returning)f(the)h(actual)h(paren)m(t)f
4557 Fi(tree_instr)p Fn(.)150 1202 y(This)h(only)h(w)m(orks)h(if)f(the)h
4558 Fi(tree_for)e Fn(op)s(erand)h(list)g(con)m(tains)h(a)g(single)f
4559 (expression)g(\(not)h(a)g(\015at)h(list\);)150 1312 y(otherwise,)c(the)
4560 h(actual)f Fi(tree_instr)e Fn(paren)m(t)j(is)e(returned.)150
4561 1539 y Ff(4.1.5)63 b(Source)41 b(Op)s(erands)275 1733
4562 y Fn(Ev)m(en)30 b(though)h(the)g(base)f Fi(instruction)e
4563 Fn(class)i(do)s(es)h(not)g(con)m(tain)g(an)m(y)g(source)f(op)s(erand)g
4564 (\014elds,)f(it)150 1843 y(do)s(es)35 b(pro)m(vide)g(sev)m(eral)h
4565 (metho)s(ds)f(to)i(access)g(the)f(source)g(op)s(erands)e(in)h(deriv)m
4566 (ed)f(classes.)57 b(First,)37 b(the)150 1952 y Fi(num_srcs)27
4567 b Fn(metho)s(d)i(returns)f(the)h(n)m(um)m(b)s(er)f(of)h(source)h(op)s
4568 (erands)e(in)g(a)h(particular)f(instruction.)38 b(Once)150
4569 2062 y(y)m(ou)29 b(kno)m(w)f(the)g(n)m(um)m(b)s(er)f(of)h(sources,)h(y)
4570 m(ou)g(can)f(access)i(them)e(b)m(y)g(n)m(um)m(b)s(er.)39
4571 b(This)26 b(is)h(frequen)m(tly)h(useful)150 2171 y(when)g(y)m(ou)h
4572 (need)g(to)h(visit)d(all)h(of)h(the)g(source)g(op)s(erands)f(without)g
4573 (concern)h(for)g(ho)m(w)g(they)g(are)g(used)f(in)150
4574 2281 y(the)34 b(instruction.)47 b(The)33 b Fi(src_op)f
4575 Fn(and)g Fi(set_src_op)f Fn(metho)s(ds)i(pro)m(vide)f(this)g(access.)51
4576 b(The)33 b(op)s(erands)150 2391 y(are)i(n)m(um)m(b)s(ered)e(b)s
4577 (eginning)e(from)j(zero)h(\(lik)m(e)g(arra)m(ys)f(in)f(C\).)i(Sp)s
4578 (ecifying)d(an)i(op)s(erand)f(n)m(um)m(b)s(er)g(that)150
4579 2500 y(do)s(es)27 b(not)h(exist)g(will)d(cause)j(an)g(error.)39
4580 b(Do)29 b(not)f(use)f(these)h(metho)s(ds)f(to)i(access)g(a)f
4581 (particular)e(op)s(erand)150 2610 y(\014eld)39 b(in)h(an)h
4582 (instruction;)j(the)d(op)s(erand)f(n)m(um)m(b)s(ering)e(used)i(here)h
4583 (is)f(implemen)m(tation-de\014ned)f(and)150 2719 y(sub)5
4584 b(ject)30 b(to)h(c)m(hange.)275 2855 y(The)j Fi(src_map)f
4585 Fn(metho)s(d)h(pro)m(vides)g(an)h(alternate)h(w)m(a)m(y)f(to)h(visit)e
4586 (all)f(of)j(the)f(source)g(op)s(erands.)53 b(It)150 2965
4587 y(applies)40 b(a)j(function)d(that)j(y)m(ou)f(sp)s(ecify)f(to)i(all)e
4588 (of)h(the)g(source)g(op)s(erands.)75 b(This)40 b(can)j(b)s(e)e(used)g
4589 (to)150 3075 y(implemen)m(t)28 b(recursiv)m(e)i(descen)m(ts)g(of)g
4590 (expression)f(trees)h(b)m(y)g(making)f(the)h(mapp)s(ed)e(function)h
4591 (call)g Fi(src_)150 3184 y(map)39 b Fn(if)g(the)h(op)s(erand)f(is)g(an)
4592 h(instruction.)67 b(This)38 b(is)h(similar)f(to)i(what)g(the)g
4593 Fi(instr_map)e Fn(metho)s(d)h(in)150 3294 y(the)e Fi(tree_instr)c
4594 Fn(class)j(do)s(es.)59 b(See)36 b(Section)g(3.1.3)i([Instruction)e(No)s
4595 (des],)i(page)f(13.)59 b(The)36 b(mapp)s(ed)150 3403
4596 y(function)j(m)m(ust)h(matc)m(h)h(the)f Fi(src_map_f)d
4597 Fn(t)m(yp)s(e)j(whic)m(h)f(has)h(three)g(parameters:)61
4598 b(a)40 b(p)s(oin)m(ter)f(to)i(the)150 3513 y(instruction,)31
4599 b(a)i(p)s(oin)m(ter)f(to)h(a)g(cop)m(y)g(of)g(the)g(op)s(erand,)f(and)g
4600 (a)h Fi(void*)e Fn(v)-5 b(alue)32 b(used)f(to)j(pass)e(an)m(y)h(other)
4601 150 3623 y(information)d(needed)h(b)m(y)g(the)h(function.)42
4602 b(If)31 b(the)g(function)f(returns)h Fi(TRUE)p Fn(,)f(the)i(cop)m(y)g
4603 (of)f(the)h(op)s(erand)150 3732 y(will)c(b)s(e)i(assigned)g(to)h(the)g
4604 (actual)g(op)s(erand)f(\014eld)f(within)f(the)j(instruction.)39
4605 b(If)31 b(it)f(returns)f Fi(FALSE)p Fn(,)h(the)150 3842
4606 y(source)h(op)s(erand)e(\014eld)g(is)g(not)i(mo)s(di\014ed.)275
4607 3978 y(The)f(SUIF)i(library)d(requires)h(that)i(instruction)d(p)s(oin)m
4608 (ters)h(in)g(op)s(erands)g(b)s(e)h(consisten)m(t.)44
4609 b(That)32 b(is,)150 4087 y(a)39 b(source)h(op)s(erand)e(ma)m(y)h(only)g
4610 (p)s(oin)m(t)f(to)i(an)f(instruction)e(if)h(the)h(destination)f(of)h
4611 (that)h(instruction)150 4197 y(p)s(oin)m(ts)28 b(bac)m(k)i(to)f(where)g
4612 (the)g(result)f(v)-5 b(alue)28 b(is)g(used.)40 b(Because)30
4613 b(of)f(this,)g(y)m(ou)g(cannot)h(simply)c(o)m(v)m(erwrite)150
4614 4307 y(a)42 b(source)g(op)s(erand)f(that)i(con)m(tains)f(an)g
4615 (instruction)e(p)s(oin)m(ter.)74 b(Doing)42 b(so)g(w)m(ould)f(lea)m(v)m
4616 (e)j(the)e(other)150 4416 y(instruction)25 b(with)g(an)h(inconsisten)m
4617 (t)g(destination)g(op)s(erand.)38 b(Instead,)27 b(y)m(ou)g(m)m(ust)g
4618 (\014rst)f(use)g(the)h(source)150 4526 y(op)s(erand's)42
4619 b Fi(remove)f Fn(metho)s(d.)78 b(This)41 b(clears)i(the)g(instruction)e
4620 (p)s(oin)m(ters)h(in)f(b)s(oth)h(the)h(source)h(and)150
4621 4635 y(destination)28 b(op)s(erands.)38 b(If)29 b(the)g(source)f
4622 (instruction)f(w)m(as)i(part)g(of)g(an)f(expression)g(tree)h(\(i.e.)40
4623 b(it)29 b(didn't)150 4745 y(ha)m(v)m(e)40 b(its)e(o)m(wn)g(paren)m(t)h
4624 Fi(tree_instr)d Fn(no)s(de\),)k Fi(remove)d Fn(also)h(clears)h(its)f
4625 Fi(parent)f Fn(p)s(oin)m(ter)g(b)m(y)h(calling)150 4855
4626 y(the)31 b(paren)m(t's)g Fi(remove_instr)d Fn(metho)s(d)i(\(see)i
4627 (Section)f(3.1.3)h([Instruction)e(No)s(des],)h(page)h(13\).)43
4628 b(If)31 b(the)150 4964 y(source)h(op)s(erand)g(is)f(not)h(an)g
4629 (instruction,)f(the)i Fi(remove)d Fn(metho)s(d)i(do)s(es)g(nothing)f
4630 (so)i(it)e(is)h(alw)m(a)m(ys)h(safe)150 5074 y(to)e(use)f(it.)40
4631 b(The)30 b Fi(instruction)e Fn(class)i(also)g(has)g(a)h
4632 Fi(remove)e Fn(metho)s(d)g(whic)m(h)h(do)s(es)g(the)g(same)h(thing.)275
4633 5210 y(As)f(an)g(example,)g(the)h(follo)m(wing)e(co)s(de)h(clears)h
4634 (all)e(of)i(the)f(source)h(op)s(erands)e(in)g(an)h(instruction:)390
4635 5340 y Fi(for)47 b(\(int)g(n)g(=)g(0;)h(n)f(<)h(i->num_srcs\(\);)43
4636 b(n++\))k({)p eop
4637 %%Page: 27 29
4638 27 28 bop 150 -116 a Fn(Chapter)30 b(4:)41 b(Instructions)29
4639 b(and)g(Expression)g(T)-8 b(rees)1694 b(27)581 299 y
4640 Fi(i->src_op\(n\).remove\(\);)581 403 y(i->set_src_op\(n,)43
4641 b(operand\(\)\);)390 506 y(})150 722 y Ff(4.1.6)63 b(Prin)m(ting)41
4642 b(Metho)s(ds)275 912 y Fn(Instructions)35 b(can)i(b)s(e)f(prin)m(ted)f
4643 (out)i(as)g(text)g(using)e(the)i Fi(print)e Fn(metho)s(d.)59
4644 b(The)37 b(optional)e Fi(depth)150 1021 y Fn(parameter)e(sp)s
4645 (eci\014es)f(the)h(inden)m(tation)e(lev)m(el)i(for)f(the)h(output.)47
4646 b(The)33 b Fi(elab)e Fn(and)h Fi(en)g Fn(parameters)i(are)150
4647 1131 y(also)k(optional)f(and)h(are)g(only)g(used)f(when)g(prin)m(ting)f
4648 (sub-expressions.)62 b(Most)39 b(users)e(should)g(nev)m(er)150
4649 1240 y(need)f(to)h(w)m(orry)g(ab)s(out)f(these)h(extra)g(parameters.)59
4650 b(The)36 b Fi(elab)f Fn(parameter)i(is)f(the)g(n)m(um)m(b)s(er)g(for)g
4651 (the)150 1350 y(lab)s(el)30 b(attac)m(hed)k(to)f(the)f(instruction,)f
4652 (and)g(the)i Fi(en)e Fn(parameter)i(is)e(the)h(next)g(n)m(um)m(b)s(er)f
4653 (to)i(b)s(e)e(used)g(for)150 1460 y(lab)s(eling)d(sub)s(expressions.)
4654 150 1708 y Fl(4.2)68 b(Op)t(erands)275 1898 y Fn(Most)35
4655 b(SUIF)f(instructions)e(ha)m(v)m(e)k(op)s(erands)d(that)i(are)f
4656 (represen)m(ted)h(b)m(y)f(ob)5 b(jects)35 b(of)f(the)h
4657 Fi(operand)150 2008 y Fn(class,)42 b(whic)m(h)c(is)h(implemen)m(ted)f
4658 (in)g(the)i(\014les)e(`)p Fi(operand.h)p Fn(')g(and)g
4659 Fi(operand.cc)p Fn(.)66 b(An)39 b(op)s(erand)f(ma)m(y)150
4660 2117 y(ha)m(v)m(e)32 b(three)e(di\013eren)m(t)g(kinds)e(of)j(v)-5
4661 b(alues:)225 2249 y Fk(\017)60 b Fn(It)25 b(ma)m(y)f(b)s(e)g(a)h(n)m
4662 (ull)d(op)s(erand.)38 b(The)24 b Fi(is_null)e Fn(metho)s(d)i(tests)h
4663 (for)f(this)g(case.)39 b(Null)23 b(op)s(erands)g(o)s(ccur)330
4664 2358 y(when)29 b(an)i(op)s(erand)e(\014eld)g(in)g(an)h(instruction)f
4665 (is)g(un)m(used.)225 2490 y Fk(\017)60 b Fn(An)34 b(op)s(erand)g(ma)m
4666 (y)h(refer)f(directly)g(to)h(the)g(sym)m(b)s(ol)e(for)i(a)g(v)-5
4667 b(ariable.)52 b(The)34 b Fi(is_symbol)e Fn(metho)s(d)330
4668 2600 y(tests)j(for)g(this)e(case.)54 b(The)35 b Fi(symbol)d
4669 Fn(and)i Fi(set_symbol)e Fn(metho)s(ds)i(access)i(the)f(sym)m(b)s(ol)e
4670 (\014eld.)52 b(A)330 2709 y(v)-5 b(ariable)30 b(in)h(a)h(source)f(op)s
4671 (erand)g(indicates)f(that)i(the)g(con)m(ten)m(ts)h(of)f(the)g(v)-5
4672 b(ariable)30 b(are)i(used.)44 b(In)31 b(a)330 2819 y(destination)e(op)s
4673 (erand,)h(a)g(v)-5 b(ariable)30 b(is)f(assigned)h(the)g(result)f(of)i
4674 (the)g(instruction.)225 2950 y Fk(\017)60 b Fn(An)38
4675 b(op)s(erand)f(ma)m(y)i(also)f(p)s(oin)m(t)g(to)h(another)f
4676 (instruction.)63 b(The)37 b Fi(is_instr)f Fn(metho)s(d)i(tests)h(for)
4677 330 3060 y(this,)34 b(and)f(the)h Fi(instr)e Fn(and)h
4678 Fi(set_instr)e Fn(metho)s(ds)i(access)i(the)f(p)s(oin)m(ter)f(\014eld.)
4679 49 b(This)32 b(is)g(used)h(to)330 3170 y(implemen)m(t)21
4680 b(expression)f(trees)j(and,)g(in)e(lo)m(w-SUIF,)h(to)h(refer)f(to)h
4681 (the)f(results)f(of)h(other)g(instructions)330 3279 y(in)29
4682 b(a)i(\015at)f(list.)40 b(An)30 b(instruction)e(p)s(oin)m(ter)h(in)g(a)
4683 i(source)g(op)s(erand)e(means)h(that)h(the)g(result)e(of)h(that)330
4684 3389 y(instruction)f(is)h(used)g(as)h(the)g(op)s(erand.)41
4685 b(Con)m(v)m(ersely)-8 b(,)31 b(an)g(instruction)e(p)s(oin)m(ter)g(in)h
4686 (a)h(destination)330 3498 y(op)s(erand)e(indicates)h(that)h(the)f
4687 (result)f(v)-5 b(alue)30 b(is)g(used)f(b)m(y)h(that)h(instruction.)275
4688 3652 y(The)26 b Fi(is_expr)f Fn(metho)s(d)h(is)g(v)m(ery)h(similar)e
4689 (to)i Fi(is_instr)p Fn(.)38 b(Besides)26 b(c)m(hec)m(king)i(if)e(the)h
4690 (op)s(erand)e(holds)150 3762 y(an)d(instruction)d(p)s(oin)m(ter,)k(it)e
4691 (also)h(tests)g(if)f(that)h(instruction)e(is)h(a)h(sub)s(expression)d
4692 (that)j(is)f(not)h(con)m(tained)150 3871 y(in)27 b(a)i(separate)h
4693 Fi(tree_instr)25 b Fn(no)s(de)j(\(i.e.)40 b(it's)28 b(not)h(in)e(a)i
4694 (\015at)g(list\).)39 b(This)27 b(metho)s(d)h(should)e(not)j(b)s(e)f
4695 (used)150 3981 y(for)i(destination)f(op)s(erands.)275
4696 4112 y(Before)k(c)m(hanging)f(a)h(source)f(op)s(erand)g(from)g(an)g
4697 (instruction)e(p)s(oin)m(ter)i(to)h(some)g(other)f(v)-5
4698 b(alue,)33 b(the)150 4222 y(instruction)c(m)m(ust)j(b)s(e)e(remo)m(v)m
4699 (ed.)45 b(The)31 b Fi(remove)e Fn(metho)s(d)i(c)m(hec)m(ks)i(if)d(the)i
4700 (op)s(erand)e(is)g(an)i(instruction,)150 4332 y(and)43
4701 b(if)g(so,)48 b(calls)43 b(the)h(instruction's)e Fi(remove)g
4702 Fn(metho)s(d.)80 b(See)44 b(Section)g(4.1.5)i([Source)d(Op)s(erands],)
4703 150 4441 y(page)31 b(26.)275 4573 y(The)36 b(op)s(erand)g(class)h
4704 (includes)e(sev)m(eral)i(metho)s(ds)f(to)i(simplify)c(common)j(op)s
4705 (erations.)60 b(One)37 b(fre-)150 4682 y(quen)m(tly)k(needs)f(to)i(kno)
4706 m(w)g(the)f(t)m(yp)s(e)g(of)h(a)f(particular)f(op)s(erand.)72
4707 b(This)39 b(can)j(b)s(e)f(determined)e(from)150 4792
4708 y(the)e(v)-5 b(ariable's)36 b(t)m(yp)s(e)i(or)f(the)g(instruction's)f
4709 (result)g(t)m(yp)s(e,)j(but)e(c)m(hec)m(king)h(for)f(these)g
4710 (di\013eren)m(t)g(kinds)150 4902 y(of)f(op)s(erands)f(and)h(then)g
4711 (extracting)h(the)f(t)m(yp)s(e)h(is)e(cum)m(b)s(ersome.)58
4712 b(Instead,)38 b(y)m(ou)e(can)h(use)f(the)g Fi(type)150
4713 5011 y Fn(metho)s(d)41 b(whic)m(h)f(p)s(erforms)f(this)i(op)s(eration)f
4714 (for)h(y)m(ou.)74 b(It)42 b(returns)e(the)h(SUIF)g Fi(void)f
4715 Fn(t)m(yp)s(e)i(for)f(n)m(ull)150 5121 y(op)s(erands.)e(Another)31
4716 b(common)f(op)s(eration)g(is)f(testing)h(an)g(op)s(erand)f(to)i(see)g
4717 (if)e(it)h(con)m(tains)g(an)h(in)m(teger)150 5230 y(constan)m(t)h(from)
4718 e(a)h(load)f(constan)m(t)i(instruction.)40 b(The)30 b
4719 Fi(is_const_int)d Fn(metho)s(d)j(c)m(hec)m(ks)i(if)e(this)f(is)h(the)
4720 150 5340 y(case,)i(and)d(if)h(so,)h(it)f(also)g(returns)f(the)i(v)-5
4721 b(alue)29 b(of)i(the)g(constan)m(t.)p eop
4722 %%Page: 28 30
4723 28 29 bop 150 -116 a Fn(28)2385 b(The)30 b(SUIF)g(V)-8
4724 b(ersion)30 b(1)h(Library)275 299 y(Op)s(erands)f(ha)m(v)m(e)j(t)m(w)m
4725 (o)g(di\013eren)m(t)f(metho)s(ds)f(for)h(prin)m(ting)e(themselv)m(es)i
4726 (out)h(to)g(a)f(\014le)f(as)i(text.)46 b(The)150 408
4727 y Fi(print)32 b Fn(metho)s(d)h(is)g(used)f(b)m(y)i(the)f(library)f
4728 (when)g(prin)m(ting)f(instructions.)48 b(Because)35 b(source)f(and)f
4729 (des-)150 518 y(tination)i(op)s(erands)f(are)i(handled)d(di\013eren)m
4730 (tly)-8 b(,)36 b Fi(print)e Fn(requires)g(that)i(y)m(ou)g(sp)s(ecify)e
4731 (the)i(instruction)150 628 y(that)25 b(con)m(tains)f(the)g(op)s(erand)f
4732 (so)i(that)f(it)g(can)g(determine)g(ho)m(w)g(the)g(op)s(erand)f(is)g(b)
4733 s(eing)g(used.)38 b(Ho)m(w)m(ev)m(er,)150 737 y(when)32
4734 b(debugging)h(a)g(program,)h(y)m(ou)g(ma)m(y)g(not)g(kno)m(w)f(whic)m
4735 (h)f(instruction)f(con)m(tains)j(an)f(op)s(erand.)48
4736 b(If)150 847 y(y)m(ou)29 b(do)f(kno)m(w)h(that)g(it)f(is)f(used)h(as)h
4737 (a)g(source)f(op)s(erand,)h(y)m(ou)f(can)h(use)f(the)h
4738 Fi(print_source)c Fn(metho)s(d)j(to)150 956 y(prin)m(t)h(it)h(without)f
4739 (sp)s(ecifying)g(the)h(instruction.)150 1205 y Fl(4.3)68
4740 b(Expression)46 b(T)-11 b(rees)275 1395 y Fn(SUIF)25
4741 b(supp)s(orts)f(b)s(oth)h(expression)g(trees)h(and)f(\015at)h(lists)e
4742 (of)i(instructions.)37 b(Pro)s(cedures)25 b(are)h(alw)m(a)m(ys)150
4743 1504 y(written)i(out)h(as)g(\015at)g(lists.)39 b(After)29
4744 b(a)g(pro)s(cedure)e(b)s(o)s(dy)h(has)g(b)s(een)g(read)h(from)f(an)h
4745 (input)e(\014le,)h(it)g(can)i(b)s(e)150 1614 y(con)m(v)m(erted)h(to)g
4746 (expression)d(tree)j(form.)40 b(The)29 b Fi(read_proc)e
4747 Fn(metho)s(d)i(for)h(the)g(pro)s(cedure)f(sym)m(b)s(ol)f(has)i(a)150
4748 1723 y(\015ag)h(that)g(allo)m(ws)e(y)m(ou)i(to)g(sp)s(ecify)e(this;)h
4749 (b)m(y)g(default)f(it)h(builds)d(the)k(expression)e(trees.)41
4750 b(Y)-8 b(ou)31 b(ma)m(y)g(also)150 1833 y(do)i(the)f(con)m(v)m(ersion)h
4751 (man)m(ually)e(as)i(describ)s(ed)e(b)s(elo)m(w.)46 b(When)33
4752 b(the)g(pro)s(cedure)e(b)s(o)s(dy)g(is)h(written)f(out,)150
4753 1943 y(it)f(is)f(automatically)i(con)m(v)m(erted)g(bac)m(k)h(to)f(the)f
4754 (\015at)h(list)e(form.)275 2074 y(In)f(the)i(\015at)g(list)e(form,)h
4755 (eac)m(h)i(SUIF)e(instruction)f(has)h(its)g(o)m(wn)g
4756 Fi(tree_instr)e Fn(no)s(de.)40 b(With)29 b(expres-)150
4757 2184 y(sion)i(trees,)i(the)f(only)f(c)m(hange)i(is)e(that)h(all)f(of)h
4758 (the)g(instructions)d(within)h(an)h(expression)g(are)h(group)s(ed)150
4759 2293 y(under)j(the)i(same)g Fi(tree_instr)d Fn(no)s(de.)59
4760 b(The)36 b(instruction)f(p)s(oin)m(ters)g(in)h(the)g(op)s(erand)g
4761 (\014elds)f(do)i(not)150 2403 y(c)m(hange.)275 2534 y(Up)24
4762 b(to)i(no)m(w)g(w)m(e)f(ha)m(v)m(e)i(implied)22 b(that)k(high-SUIF)e
4763 (uses)h(expression)f(trees)i(and)e(that)i(lo)m(w-SUIF)f(uses)150
4764 2644 y(the)30 b(\015at)h(list)d(represen)m(tation,)j(but)e(the)i
4765 (decision)d(to)j(use)f(expression)f(trees)h(is)f(actually)h(indep)s
4766 (enden)m(t)150 2754 y(from)g(the)g(structure)g(of)h(the)f(ASTs.)40
4767 b(SUIF)30 b(allo)m(ws)g(expressions)f(trees)i(to)g(b)s(e)f(used)g(ev)m
4768 (en)h(if)e(all)g(of)i(the)150 2863 y(high-lev)m(el)e(con)m(trol)i
4769 (structures)f(ha)m(v)m(e)i(b)s(een)e(remo)m(v)m(ed,)i(and)e(con)m(v)m
4770 (ersely)h(the)g(\015at)g(list)e(represen)m(tation)150
4771 2973 y(w)m(orks)36 b(with)f(all)g(kinds)f(of)i(AST)g(no)s(des)f
4772 (\(although)h(accessing)g(the)h Fi(tree_for)d Fn(op)s(erands)g(is)i(a)g
4773 (little)150 3082 y(a)m(wkw)m(ard\).)41 b(In)30 b(fact,)h(the)g(t)m(w)m
4774 (o)h(represen)m(tations)e(can)h(ev)m(en)g(b)s(e)f(mixed)f(in)g(the)h
4775 (same)h(pro)s(cedure!)275 3214 y(Some)41 b(caution)f(is)g(needed)h
4776 (here.)72 b(These)41 b(t)m(w)m(o)h(represen)m(tations)f(are)h(not)f
4777 (equiv)-5 b(alen)m(t.)72 b(An)40 b(ex-)150 3323 y(pression)i(tree)j
4778 (only)e(sp)s(eci\014es)f(a)i(partial)f(order)g(for)h(the)g(ev)-5
4779 b(aluation)43 b(of)h(the)h(instructions)c(in)i(the)150
4780 3433 y(tree,)34 b(whereas)e(a)h(\015at)g(list)e(is)g(a)i(total)g
4781 (ordering.)46 b(Similarly)-8 b(,)30 b(while)g(\015at)j(lists)e(allo)m
4782 (w)g(y)m(ou)i(to)g(in)m(termix)150 3543 y(the)i(instructions)e(from)h
4783 (di\013eren)m(t)g(expressions,)h(with)e(expression)h(trees)h(eac)m(h)h
4784 (expression)e(m)m(ust)h(b)s(e)150 3652 y(completely)29
4785 b(ev)-5 b(aluated)29 b(b)s(efore)f(pro)s(ceeding)g(to)h(execute)i(the)e
4786 (instructions)d(for)j(the)g(next)g(expression.)150 3762
4787 y(Th)m(us,)f(\015at)i(lists)d(giv)m(e)j(y)m(ou)f(precise)g(con)m(trol)g
4788 (of)g(the)h(execution)f(order)f(for)h(the)g(instructions.)39
4789 b(Because)150 3871 y(of)d(this,)g(if)f(y)m(ou)h(reorder)f(the)h
4790 (instructions)e(in)g(a)i(\015at)g(list)f(and)g(then)g(try)h(to)g(con)m
4791 (v)m(ert)i(to)e(expression)150 3981 y(trees,)31 b(the)e(library)f(ma)m
4792 (y)i(complain)e(and)h(promote)h(temp)s(oraries)f(to)h(v)-5
4793 b(ariables)28 b(in)h(order)g(to)h(main)m(tain)150 4091
4794 y(the)h(equiv)-5 b(alen)m(t)29 b(seman)m(tics.)275 4222
4795 y(Metho)s(ds)k(are)g(pro)m(vided)f(in)g(the)i Fi(tree_node_list)29
4796 b Fn(class)k(to)h(con)m(v)m(ert)h(bac)m(k)f(and)e(forth)h(b)s(et)m(w)m
4797 (een)150 4332 y(expression)e(trees)h(and)g(\015at)g(lists.)44
4798 b(The)31 b Fi(flatten)f Fn(metho)s(d)i(con)m(v)m(erts)h(all)e(of)h(the)
4799 g(expression)f(trees)h(in)150 4441 y(the)k(list)e(and)h(its)g(c)m(hild)
4800 f(lists)g(to)i(\015at)g(lists)e(of)i(instructions.)54
4801 b(This)34 b(is)g(simply)f(a)j(matter)h(of)f(creating)150
4802 4551 y(new)30 b Fi(tree_instr)d Fn(no)s(des)j(to)h(hold)e(the)i(sub)s
4803 (expressions)c(and)j(inserting)e(them)j(in)m(to)f(the)h(lists.)275
4804 4682 y(The)f Fi(cvt_to_trees)d Fn(metho)s(d)j(con)m(v)m(erts)i(a)f
4805 (tree)h(no)s(de)e(list)f(to)i(expression)f(tree)h(form.)41
4806 b(This)29 b(do)s(es)150 4792 y(not)21 b(actually)f(c)m(hange)i(the)f
4807 (instructions,)g(but)f(rather)g(collects)h(the)g(instructions)d(within)
4808 h(an)h(expression)150 4902 y(under)36 b(a)h(single)f
4809 Fi(tree_instr)e Fn(no)s(de.)61 b(Only)35 b(con)m(tiguous)i
4810 (instructions)e(can)j(b)s(e)e(con)m(v)m(erted)j(in)m(to)e(an)150
4811 5011 y(expression)32 b(tree.)51 b(If)33 b(other)h(instructions)d(from)i
4812 (outside)g(the)h(expression)e(are)i(in)m(termixed,)f(building)150
4813 5121 y(the)g(expression)f(tree)i(ma)m(y)g(c)m(hange)g(the)f(b)s(eha)m
4814 (vior)f(of)i(the)f(co)s(de.)49 b(Th)m(us,)33 b(if)f(this)g(o)s(ccurs,)i
4815 (the)f(library)150 5230 y(will)26 b(prin)m(t)h(a)h(w)m(arning)f
4816 (message)j(and)d(split)g(up)g(the)h(expression)f(tree)i(so)g(that)g
4817 (the)f(original)f(seman)m(tics)150 5340 y(are)k(preserv)m(ed.)p
4819 %%Page: 29 31
4820 29 30 bop 150 -116 a Fn(Chapter)30 b(4:)41 b(Instructions)29
4821 b(and)g(Expression)g(T)-8 b(rees)1694 b(29)150 299 y
4822 Fl(4.4)68 b(Three)45 b(Op)t(erand)f(Instructions)275
4823 490 y Fn(The)35 b(v)-5 b(ast)36 b(ma)5 b(jorit)m(y)36
4824 b(of)h(SUIF)e(instructions)f(are)i(represen)m(ted)g(b)m(y)g(the)g
4825 Fi(in_rrr)f Fn(class)g(whic)m(h)g(in-)150 600 y(cludes)24
4826 b(\014elds)g(for)h(t)m(w)m(o)i(source)f(op)s(erands.)38
4827 b(Not)26 b(all)e(of)i(the)g(op)s(erands)e(ha)m(v)m(e)i(to)h(b)s(e)d
4828 (used.)39 b(F)-8 b(or)26 b(example,)150 710 y Fi(nop)j
4829 Fn(instructions)g(don't)h(use)g(an)m(y)h(op)s(erands)e(at)i(all.)275
4830 843 y(The)25 b Fi(src1_op)f Fn(and)h Fi(src2_op)f Fn(metho)s(ds)i
4831 (retriev)m(e)g(the)g(source)g(op)s(erands,)g(and)g(the)g
4832 Fi(set_src1)e Fn(and)150 952 y Fi(set_src2)34 b Fn(metho)s(ds)i(assign)
4833 g(new)h(op)s(erands.)58 b(Besides)36 b(the)h(metho)s(ds)f(to)h
4834 (directly)f(access)i(the)f(t)m(w)m(o)150 1062 y(source)g(op)s(erands,)i
4835 (other)e(metho)s(ds)g(are)g(pro)m(vided)f(to)i(refer)f(to)h(these)g
4836 (sources)g(according)f(to)h(their)150 1172 y(uses)30
4837 b(with)f(sp)s(eci\014c)g(op)s(co)s(des:)225 1305 y Fk(\017)60
4838 b Fn(Shift)27 b(and)i(rotate)h(instructions)d(\()p Fi(asr)p
4839 Fn(,)i Fi(lsl)p Fn(,)f Fi(lsr)p Fn(,)h(and)f Fi(rot)p
4840 Fn(\))h(ma)m(y)g(use)g(the)g Fi(shift_cnt_op)d Fn(and)330
4841 1415 y Fi(set_shift_cnt_op)k Fn(metho)s(ds)k(to)i(access)g(the)f(op)s
4842 (erand)f(that)h(sp)s(eci\014es)f(the)h(n)m(um)m(b)s(ers)e(of)i(bits)330
4843 1524 y(to)k(shift)e(or)h(rotate.)67 b(The)38 b(other)g(source)h(op)s
4844 (erand)e(ma)m(y)i(b)s(e)f(accessed)h(with)e(the)i Fi(src_op)e
4845 Fn(and)330 1634 y Fi(set_src)28 b Fn(metho)s(ds.)225
4846 1767 y Fk(\017)60 b Fn(Store)40 b(\()p Fi(str)p Fn(\))f(and)g(memory)h
4847 (cop)m(y)g(\()p Fi(memcpy)p Fn(\))f(instructions)f(ma)m(y)i(use)f(the)h
4848 Fi(dst_addr_op)d Fn(and)330 1877 y Fi(set_dst_addr_op)g
4849 Fn(metho)s(ds)k(to)h(access)h(the)e(source)h(op)s(erand)e(that)i(holds)
4850 e(the)h(destination)330 1986 y(address)29 b(for)i(the)f(memory)g
4851 (reference.)225 2120 y Fk(\017)60 b Fn(Load)41 b(\()p
4852 Fi(lod)p Fn(\))f(and)g(memory)g(cop)m(y)h(\()p Fi(memcpy)p
4853 Fn(\))f(instructions)e(ma)m(y)j(use)f(the)h Fi(src_addr_op)d
4854 Fn(and)330 2229 y Fi(set_src_addr_op)26 b Fn(metho)s(ds)k(to)i(access)f
4855 (the)g(op)s(erand)f(that)h(sp)s(eci\014es)e(the)i(source)f(address)g
4856 (for)330 2339 y(the)j(memory)h(reference.)49 b(Note)35
4857 b(that)f(the)f(actual)h(op)s(erand)e(\014eld)g(that)h(is)g(used)f(is)g
4858 (di\013eren)m(t)h(for)330 2448 y(these)e(t)m(w)m(o)h(op)s(co)s(des.)225
4859 2582 y Fk(\017)60 b Fn(Instructions)34 b(that)j(only)d(use)i(one)g(of)g
4860 (the)g(source)g(op)s(erands)e(ma)m(y)j(use)e(the)h Fi(src_op)e
4861 Fn(and)h Fi(set_)330 2691 y(src)e Fn(metho)s(ds)h(without)f(sp)s
4862 (ecifying)f(whether)h(the)h(\014rst)g(or)g(second)g(op)s(erand)f
4863 (\014eld)f(is)i(used.)51 b(In)330 2801 y(addition,)45
4864 b(a)e(store)h(\()p Fi(str)p Fn(\))f(instruction)e(ma)m(y)j(use)f(these)
4865 h(metho)s(ds)e(to)i(refer)f(to)h(the)f(op)s(erand)330
4866 2911 y(holding)30 b(the)j(v)-5 b(alue)31 b(to)i(b)s(e)f(stored.)46
4867 b(They)32 b(are)h(also)f(used)f(b)m(y)h(shift)f(and)h(rotate)i
4868 (instructions)c(as)330 3020 y(describ)s(ed)e(ab)s(o)m(v)m(e.)150
4869 3177 y(Using)i(these)g(op)s(co)s(de-sp)s(eci\014c)g(metho)s(ds)f(with)g
4870 (the)i(wrong)f(op)s(co)s(des)g(will)e(cause)i(errors.)275
4871 3311 y(F)-8 b(or)44 b(y)m(our)h(con)m(v)m(enience,)k(the)44
4872 b Fi(in_rrr)e Fn(class)i(pro)m(vides)f(a)i(metho)s(d,)i
4873 Fi(is_unary)p Fn(,)f(to)f(determine)150 3420 y(if)38
4874 b(an)h(instruction)e(pro)s(duces)g(a)j(result)d(v)-5
4875 b(alue)39 b(using)e(only)h(one)i(of)f(the)g(source)g(op)s(erands.)65
4876 b(It)39 b(do)s(es)150 3530 y(not)44 b(consider)e(return)h(\()p
4877 Fi(ret)p Fn(\))g(instructions)f(to)i(b)s(e)f(unary)g(b)s(ecause)g(they)
4878 h(do)g(not)g(pro)s(duce)e(result)150 3639 y(v)-5 b(alues.)39
4879 b(Although)26 b(load)h(\()p Fi(lod)p Fn(\))g(instructions)e(\014t)h
4880 (the)i(pattern,)g(they)f(are)h(a)f(sp)s(ecial)f(case)i(and)e(are)i(not)
4881 150 3749 y(considered)h(to)i(b)s(e)f(unary)-8 b(.)275
4882 3882 y(The)28 b Fi(is_commutative)d Fn(metho)s(d)j(c)m(hec)m(ks)i(the)f
4883 (op)s(co)s(de)f(of)h(an)g(instruction)e(to)i(determine)f(if)g(it)g(is)g
4884 (a)150 3992 y(comm)m(utativ)m(e)k(op)s(eration.)40 b(If)30
4885 b(so,)h(the)f(t)m(w)m(o)i(source)f(op)s(erands)e(should)f(b)s(e)i(in)m
4886 (terc)m(hangeable.)275 4125 y(Some)c(of)h(the)g(arithmetic)f
4887 (instructions)f(ma)m(y)i(generate)h(run-time)e(exceptions)g(if)g(the)h
4888 (appropriate)150 4235 y(class)35 b(of)g(exceptions)g(is)f(enabled)g
4889 (\(see)i(Section)f(8.5.4)i([Miscellaneous)d(Annotes],)j(page)e(67\).)56
4890 b(If)35 b(the)150 4344 y(exceptions)30 b(are)h(not)g(enabled,)e(the)i
4891 (rules)e(for)h Fm(ansi)g Fn(C)g(are)h(used)e(to)i(determine)f(the)g
4892 (result.)275 4478 y(The)23 b(follo)m(wing)g(table)h(lists)f(all)h(of)g
4893 (the)h(three)f(op)s(erand)f(SUIF)i(instructions.)36 b(Eac)m(h)25
4894 b(en)m(try)g(describ)s(es)150 4587 y(the)h(op)s(erands)e(used)h(with)g
4895 (that)h(op)s(co)s(de)f(and)g(includes)e(an)m(y)j(restrictions)f(on)h
4896 (the)f(op)s(erand)g(and)g(result)150 4697 y(t)m(yp)s(es.)150
4897 4854 y Fi(nop)276 b Fn(Do)31 b(nothing)f(at)h(all.)40
4898 b(All)29 b(of)h(the)h(op)s(erands)e(for)h(these)h(instructions)e
4899 (should)f(b)s(e)i(n)m(ull,)f(and)630 4964 y(the)i(result)e(t)m(yp)s(e)h
4900 (should)f(b)s(e)h(the)g(SUIF)g Fi(void)f Fn(t)m(yp)s(e.)150
4901 5121 y Fi(lod)276 b Fn(Load)23 b(the)g(v)-5 b(alue)23
4902 b(at)g(the)g(address)g(con)m(tained)g(in)e(the)i Fi(src1)f
4903 Fn(op)s(erand)g(and)g(put)h(it)f(in)g(the)h Fi(dst)630
4904 5230 y Fn(op)s(erand.)39 b(The)28 b(result)f(t)m(yp)s(e)i(indicates)f
4905 (the)g(t)m(yp)s(e)h(of)g(the)f(v)-5 b(alue)28 b(b)s(eing)f(loaded)h
4906 (and)g(ma)m(y)630 5340 y(b)s(e)e(an)m(y)i(t)m(yp)s(e,)g(sub)5
4907 b(ject)27 b(to)h(the)f(usual)f(restrictions)g(on)g(a)i(result)e(t)m(yp)
4908 s(e)h(\(see)h(Section)f(4.1.3)p eop
4909 %%Page: 30 32
4910 30 31 bop 150 -116 a Fn(30)2385 b(The)30 b(SUIF)g(V)-8
4911 b(ersion)30 b(1)h(Library)630 299 y([Result)c(T)m(yp)s(es],)h(page)g
4912 (25\).)41 b(The)26 b(t)m(yp)s(e)i(of)f(the)h(expression)e(in)g
4913 Fi(src1)g Fn(m)m(ust)h(b)s(e)g(a)h(p)s(oin)m(ter)630
4914 408 y(to)j(the)g(result)e(t)m(yp)s(e.)41 b(The)30 b Fi(src2)f
4915 Fn(op)s(erand)g(is)h(not)g(used.)150 559 y Fi(str)276
4916 b Fn(Store)22 b(the)g(v)-5 b(alue)22 b(in)e(the)j Fi(src2)d
4917 Fn(op)s(erand)h(at)i(the)f(address)f(con)m(tained)h(in)f(the)h
4918 Fi(src1)f Fn(op)s(erand.)630 669 y(Both)37 b(op)s(erands)f(m)m(ust)g(b)
4919 s(e)g(sp)s(eci\014ed.)58 b(There)36 b(is)f(no)i(sp)s(ecial)e
4920 (restriction)h(on)g(the)h(t)m(yp)s(e)630 778 y(of)i(the)g
4921 Fi(src2)e Fn(op)s(erand,)j(though)f(the)g(restrictions)e(on)i
4922 (instruction)e(result)g(t)m(yp)s(es)i(\(see)630 888 y(Section)33
4923 b(4.1.3)i([Result)d(T)m(yp)s(es],)i(page)g(25\))g(and)e(v)-5
4924 b(ariables)32 b(\(see)i(Section)f(6.4)h([V)-8 b(ariable)630
4925 998 y(Sym)m(b)s(ols],)38 b(page)h(47\))g(guaran)m(tee)g(it)e(will)e(ha)
4926 m(v)m(e)k(a)g(kno)m(wn,)g(non-zero)f(size.)63 b(The)37
4927 b Fi(src1)630 1107 y Fn(op)s(erand)20 b(should)e(con)m(tain)j(an)g
4928 (expression)e(that)j(is)d(a)i(p)s(oin)m(ter)f(to)i(the)e(t)m(yp)s(e)h
4929 (of)g(the)g(op)s(erand)630 1217 y(b)s(eing)29 b(stored.)41
4930 b(The)30 b Fi(dst)f Fn(op)s(erand)g(is)h(not)g(used.)150
4931 1367 y Fi(memcpy)132 b Fn(Memory)31 b(to)g(memory)f(cop)m(y)-8
4932 b(.)42 b(Load)30 b(the)g(v)-5 b(alue)30 b(from)g(the)g(address)g(in)f
4933 (the)h Fi(src2)f Fn(op)s(erand)630 1477 y(and)j(store)h(it)f(at)h(the)f
4934 (address)g(in)f(the)h Fi(src1)f Fn(op)s(erand.)46 b(The)32
4935 b(t)m(yp)s(e)g(of)h(the)f(ob)5 b(ject)33 b(to)h(b)s(e)630
4936 1587 y(copied)39 b(is)f(sub)5 b(ject)39 b(to)g(the)h(same)f(conditions)
4937 f(as)h(the)g(result)f(t)m(yp)s(e)i(of)f(an)g(instruction)630
4938 1696 y(\(see)f(Section)f(4.1.3)i([Result)e(T)m(yp)s(es],)i(page)f
4939 (25\),)j(so)c(it)g(m)m(ust)g(ha)m(v)m(e)i(kno)m(wn,)f(non-zero)630
4940 1806 y(size.)59 b(Both)37 b(of)f(the)h(source)f(op)s(erands)f(m)m(ust)i
4941 (b)s(e)f(p)s(oin)m(ters)f(to)i(this)e(ob)5 b(ject)37
4942 b(t)m(yp)s(e.)59 b(The)630 1915 y Fi(dst)29 b Fn(op)s(erand)h(is)f(not)
4943 i(used.)150 2066 y Fi(cpy)276 b Fn(Cop)m(y)28 b(the)h
4944 Fi(src1)e Fn(op)s(erand)g(to)i(the)g Fi(dst)e Fn(op)s(erand.)39
4945 b(The)28 b Fi(src2)f Fn(op)s(erand)g(is)h(not)g(used.)39
4946 b(The)630 2176 y(result)22 b(t)m(yp)s(e)h(m)m(ust)g(b)s(e)g(the)g(same)
4947 h(as)f(the)g(t)m(yp)s(e)g(of)h(the)f(source)g(op)s(erand.)37
4948 b(The)23 b(restrictions)630 2285 y(on)h(instruction)f(result)g(t)m(yp)s
4949 (es)h(\(see)i(Section)e(4.1.3)i([Result)e(T)m(yp)s(es],)i(page)f(25\))g
4950 (guaran)m(tee)630 2395 y(that)31 b(the)g(ob)5 b(ject)31
4951 b(b)s(eing)e(copied)h(has)g(kno)m(wn,)g(non-zero)h(size.)150
4952 2545 y Fi(cvt)276 b Fn(Con)m(v)m(ert)29 b(the)f Fi(src1)f
4953 Fn(op)s(erand)g(to)h(the)h(result)d(t)m(yp)s(e)j(and)e(put)g(it)h(in)e
4954 (the)j Fi(dst)e Fn(op)s(erand.)38 b(The)630 2655 y Fi(src2)30
4955 b Fn(op)s(erand)f(is)h(not)h(used.)41 b(Nothing)31 b(can)g(can)g(b)s(e)
4956 f(con)m(v)m(erted)j(to)e(or)g(from)f(a)h Fi(struct)p
4957 Fn(,)630 2765 y Fi(union)p Fn(,)g Fi(array)p Fn(,)g(or)h
4958 Fi(void)f Fn(t)m(yp)s(e.)46 b(P)m(oin)m(ter)32 b(t)m(yp)s(es)g(can)g
4959 (only)g(b)s(e)f(con)m(v)m(erted)i(to)g(and)e(from)630
4960 2874 y(in)m(teger)g(t)m(yp)s(es)f(and)g(other)h(p)s(oin)m(ter)e(t)m(yp)
4961 s(es.)150 3025 y Fi(neg)276 b Fn(Negation.)48 b(Change)32
4962 b(the)h(sign)e(of)i(the)g(v)-5 b(alue)31 b(in)h(the)g
4963 Fi(src1)f Fn(op)s(erand)h(and)g(put)f(the)i(result)630
4964 3134 y(in)25 b(the)i Fi(dst)f Fn(op)s(erand.)38 b(The)26
4965 b Fi(src2)g Fn(op)s(erand)f(is)h(un)m(used.)38 b(The)26
4966 b(result)g(t)m(yp)s(e)h(and)f(the)h(t)m(yp)s(e)630 3244
4967 y(of)k(the)f(op)s(erand)f(m)m(ust)i(b)s(e)e(the)i(same)g(signed)e(in)m
4968 (teger)i(or)f(\015oating-p)s(oin)m(t)g(t)m(yp)s(e.)150
4969 3395 y Fi(add)276 b Fn(Add)38 b(the)h(v)-5 b(alues)38
4970 b(in)f(the)i Fi(src1)f Fn(and)g Fi(src2)f Fn(op)s(erands)h(and)g(put)g
4971 (the)h(result)e(in)h(the)h Fi(dst)630 3504 y Fn(op)s(erand.)68
4972 b(Except)41 b(for)e(p)s(oin)m(ter)g(additions,)i(the)f(result)f(t)m(yp)
4973 s(e)h(and)g(the)g(t)m(yp)s(es)g(of)g(the)630 3614 y(op)s(erands)30
4974 b(m)m(ust)g(b)s(e)h(the)g(same)g(in)m(teger)g(or)g(\015oating-p)s(oin)m
4975 (t)f(t)m(yp)s(es.)43 b(P)m(oin)m(ter)31 b(addition)e(is)630
4976 3724 y(a)h(sp)s(ecial)e(case.)41 b(One)29 b(of)h(the)g(source)f(op)s
4977 (erands)g(ma)m(y)h(ha)m(v)m(e)g(a)g(p)s(oin)m(ter)f(t)m(yp)s(e,)h(as)g
4978 (long)f(as)630 3833 y(the)35 b(other)g(source)g(op)s(erand)f(has)h
4979 (signed)e(or)i(unsigned)e(in)m(teger)i(t)m(yp)s(e)g(of)g(an)m(y)h
4980 (size;)h(the)630 3943 y(result)26 b(t)m(yp)s(e)h(m)m(ust)g(also)g(b)s
4981 (e)f(a)i(p)s(oin)m(ter)e(t)m(yp)s(e,)i(but)e(need)h(not)g(b)s(e)g(the)g
4982 (same)g(as)h(the)f(source)630 4052 y(p)s(oin)m(ter)i(t)m(yp)s(e.)150
4983 4203 y Fi(sub)276 b Fn(Subtract)29 b(the)h(v)-5 b(alue)30
4984 b(in)e(the)i Fi(src2)f Fn(op)s(erand)f(from)i(the)g(v)-5
4985 b(alue)29 b(in)f(the)i Fi(src1)f Fn(op)s(erand)g(and)630
4986 4313 y(put)j(the)i(result)e(in)g(the)h Fi(dst)g Fn(op)s(erand.)48
4987 b(Except)33 b(for)g(p)s(oin)m(ter)f(subtractions,)i(the)f(result)630
4988 4422 y(t)m(yp)s(e)f(and)e(the)i(t)m(yp)s(es)f(of)h(the)g(op)s(erands)e
4989 (m)m(ust)h(b)s(e)g(the)h(same)f(in)m(teger)h(or)g(\015oating-p)s(oin)m
4990 (t)630 4532 y(t)m(yp)s(es.)43 b(There)31 b(are)h(t)m(w)m(o)g(sp)s
4991 (ecial)e(cases)i(for)f(p)s(oin)m(ter)f(subtractions.)43
4992 b(In)30 b(either)h(case,)i(the)630 4641 y Fi(src1)38
4993 b Fn(op)s(erand)h(m)m(ust)g(ha)m(v)m(e)i(a)f(p)s(oin)m(ter)f(t)m(yp)s
4994 (e.)68 b(First,)42 b(the)e Fi(src2)e Fn(op)s(erand)h(ma)m(y)h(ha)m(v)m
4995 (e)630 4751 y(an)m(y)c(in)m(teger)g(t)m(yp)s(e,)i(in)c(whic)m(h)h(case)
4996 h(the)g(result)f(t)m(yp)s(e)h(ma)m(y)g(b)s(e)f(an)m(y)h(p)s(oin)m(ter)f
4997 (t)m(yp)s(e,)j(not)630 4861 y(necessarily)e(the)h(same)h(as)f(the)g
4998 (source)h(p)s(oin)m(ter)e(t)m(yp)s(e.)61 b(Second,)39
4999 b(the)e Fi(src2)f Fn(op)s(erand's)630 4970 y(t)m(yp)s(e)22
5000 b(ma)m(y)g(b)s(e)e(another)i(p)s(oin)m(ter,)g(in)f(whic)m(h)f(case)i
5001 (the)g(result)e(t)m(yp)s(e)i(m)m(ust)f(b)s(e)g(t)m(yp)s(e)p
5002 3414 4970 28 4 v 33 w(ptr)p 3569 4970 V 32 w(di\013.)150
5003 5121 y Fi(mul)150 5230 y(div)276 b Fn(Multiply)19 b(or)k(divide)c(the)k
5004 (v)-5 b(alue)21 b(in)g(the)h Fi(src1)f Fn(op)s(erand)g(b)m(y)h(the)g(v)
5005 -5 b(alue)22 b(in)f(the)h Fi(src2)f Fn(op)s(erand)630
5006 5340 y(and)35 b(put)h(the)g(result)f(in)g(the)h Fi(dst)f
5007 Fn(op)s(erand.)56 b(The)36 b(result)f(t)m(yp)s(e)h(and)f(the)i(t)m(yp)s
5008 (es)f(of)g(the)p eop
5009 %%Page: 31 33
5010 31 32 bop 150 -116 a Fn(Chapter)30 b(4:)41 b(Instructions)29
5011 b(and)g(Expression)g(T)-8 b(rees)1694 b(31)630 299 y(op)s(erands)21
5012 b(m)m(ust)g(b)s(e)h(the)g(same)g(in)m(teger)g(or)g(\015oating-p)s(oin)m
5013 (t)f(t)m(yp)s(e.)38 b(In)m(teger)23 b(m)m(ultiplication)630
5014 408 y(and)30 b(division)d(are)k(de\014ned)e(according)h(to)h(the)g
5015 (rules)e(for)h Fm(ansi)g Fn(C.)150 609 y Fi(rem)150 719
5016 y(mod)276 b Fn(Remainder)33 b(and)h(mo)s(dulus.)50 b(These)35
5017 b(t)m(w)m(o)h(instructions)c(are)j(v)m(ery)g(similar.)50
5018 b(Both)35 b(divide)630 829 y(the)k(v)-5 b(alue)38 b(in)f(the)h
5019 Fi(src1)g Fn(op)s(erand)f(b)m(y)h(the)h(v)-5 b(alue)38
5020 b(in)f(the)i Fi(src2)e Fn(op)s(erand)h(to)h(\014nd)e(the)630
5021 938 y(remainder)22 b(or)h(mo)s(dulus.)36 b(The)23 b Fi(rem)f
5022 Fn(instruction)g(is)g(iden)m(tical)g(to)i(the)g(mo)s(dulus)d(op)s
5023 (erator)630 1048 y(in)27 b Fm(ansi)i Fn(C.)f(That)h(is,)f(if)g(either)g
5024 (source)g(op)s(erand)g(is)g(negativ)m(e,)i(the)f(sign)f(of)g(the)h
5025 (result)f(is)630 1157 y(unde\014ned)20 b(and)i(dep)s(ends)e(on)i(the)g
5026 (seman)m(tics)h(of)f(in)m(teger)h(division.)35 b(The)22
5027 b Fi(mod)f Fn(instruction)630 1267 y(is)i(the)h(same)h(except)g(that)f
5028 (its)g(result)f(is)g(alw)m(a)m(ys)i(guaran)m(teed)g(to)f(b)s(e)g(p)s
5029 (ositiv)m(e.)37 b(The)24 b(result)630 1377 y(t)m(yp)s(e)36
5030 b(and)e(the)i(t)m(yp)s(es)g(of)f(the)h(destination)e(and)h(source)h(op)
5031 s(erands)e(m)m(ust)h(b)s(e)g(the)h(same)630 1486 y(in)m(teger)31
5032 b(t)m(yp)s(e.)150 1687 y Fi(not)276 b Fn(Bit-wise)32
5033 b(in)m(v)m(ersion.)46 b(Compute)32 b(the)h(one's)g(complemen)m(t)f
5034 (negation)h(of)g(the)g(v)-5 b(alue)32 b(in)f(the)630
5035 1797 y Fi(src1)d Fn(op)s(erand)h(and)g(put)g(the)h(result)e(in)g(the)i
5036 Fi(dst)f Fn(op)s(erand.)39 b(The)29 b Fi(src2)g Fn(op)s(erand)f(is)h
5037 (not)630 1906 y(used.)39 b(The)27 b(result)g(t)m(yp)s(e)h(and)f(the)h
5038 (t)m(yp)s(es)g(of)g(the)g(op)s(erand)e(m)m(ust)i(b)s(e)f(the)h(same)g
5039 (unsigned)630 2016 y(in)m(teger)j(t)m(yp)s(e.)150 2217
5040 y Fi(and)150 2326 y(ior)150 2436 y(xor)276 b Fn(Compute)33
5041 b(the)h(bit-wise)e(AND,)j(inclusiv)m(e)c(OR,)j(or)f(exclusiv)m(e)h(OR)f
5042 (of)h(the)f(v)-5 b(alues)33 b(in)g(the)630 2545 y Fi(src1)23
5043 b Fn(and)h Fi(src2)g Fn(op)s(erands)f(and)h(put)g(the)h(result)f(in)f
5044 (the)i Fi(dst)e Fn(op)s(erand.)38 b(The)24 b(result)g(t)m(yp)s(e)630
5045 2655 y(and)30 b(the)g(t)m(yp)s(e)h(of)f(the)h(op)s(erands)e(m)m(ust)h
5046 (b)s(e)g(the)h(same)f(unsigned)f(in)m(teger)h(t)m(yp)s(e.)150
5047 2856 y Fi(asr)150 2966 y(lsr)150 3075 y(lsl)276 b Fn(Shift)31
5048 b(the)h(v)-5 b(alue)32 b(in)f(the)i Fi(src1)e Fn(op)s(erand)h(righ)m(t)
5049 g(or)g(left)g(b)m(y)g(the)h(amoun)m(t)g(sp)s(eci\014ed)e(in)g(the)630
5050 3185 y Fi(src2)25 b Fn(op)s(erand.)38 b(The)25 b(v)-5
5051 b(ariable)25 b(in)f(the)i Fi(src2)f Fn(op)s(erand)f(m)m(ust)i(alw)m(a)m
5052 (ys)g(ha)m(v)m(e)h(an)f(unsigned)630 3294 y(in)m(teger)g(t)m(yp)s(e.)39
5053 b(The)25 b Fi(asr)f Fn(instruction)f(p)s(erforms)h(sign)g(extension)h
5054 (and)g(requires)f(that)i(the)630 3404 y(result)34 b(t)m(yp)s(e)h(and)f
5055 (the)h(t)m(yp)s(e)g Fi(src1)f Fn(op)s(erand)g(b)s(e)g(the)h(same)h
5056 (signed)e(in)m(teger)h(t)m(yp)s(e.)54 b(The)630 3513
5057 y Fi(lsr)34 b Fn(instructions)g(do)s(es)h(not)g(p)s(erform)f(sign)h
5058 (extension)g(and)g(requires)e(that)j(the)g(result)630
5059 3623 y(t)m(yp)s(e)h(and)g(t)m(yp)s(e)g(of)h(the)f Fi(src1)f
5060 Fn(op)s(erand)g(b)s(e)g(the)i(same)f(unsigned)e(in)m(teger)j(t)m(yp)s
5061 (e.)61 b(Sign)630 3733 y(extension)26 b(is)g(not)g(an)h(issue)e(for)h
5062 (left)g(shifts,)g(so)h(the)g Fi(lsl)e Fn(instruction)g(only)g(requires)
5063 g(that)630 3842 y(the)31 b(result)e(t)m(yp)s(e)h(and)g(the)h(t)m(yp)s
5064 (e)f(of)h(the)f Fi(src1)g Fn(op)s(erand)f(b)s(e)h(the)g(same)h(in)m
5065 (teger)g(t)m(yp)s(e.)150 4043 y Fi(divfloor)150 4153
5066 y(divceil)84 b Fn(Division)19 b(com)m(bined)g(with)h(\015o)s(or)g(and)g
5067 (ceiling)f(op)s(erations.)36 b(The)20 b Fi(divfloor)f
5068 Fn(op)s(co)s(de)h(means)630 4262 y(tak)m(e)31 b(the)e(rational)g
5069 (quotien)m(t)g(of)g(the)h Fi(src1)e Fn(op)s(erand)g(b)m(y)h(the)h
5070 Fi(src2)e Fn(op)s(erand)g(and)g(apply)630 4372 y(the)33
5071 b(\015o)s(or)g(op)s(eration)f(\(i.e.)49 b(round)31 b(to)j(the)f
5072 (nearest)g(in)m(teger)h(less)e(than)h(or)g(equal)f(to)i(the)630
5073 4482 y(quotien)m(t\).)53 b(The)34 b Fi(divceil)e Fn(op)s(co)s(de)i
5074 (means)h(tak)m(e)g(the)g(rational)f(quotien)m(t)g(of)h(the)f
5075 Fi(src1)630 4591 y Fn(op)s(erand)25 b(b)m(y)h(the)h Fi(src2)e
5076 Fn(op)s(erand)g(and)g(apply)g(the)h(ceiling)f(op)s(eration)h(\(i.e.)39
5077 b(round)25 b(to)i(the)630 4701 y(nearest)j(in)m(teger)g(greater)g(than)
5078 g(or)f(equal)g(to)h(the)g(quotien)m(t\).)41 b(The)29
5079 b(result)f(t)m(yp)s(e)i(and)f(the)630 4810 y(op)s(erand)g(t)m(yp)s(es)i
5080 (m)m(ust)f(b)s(e)g(the)g(same)h(in)m(teger)g(t)m(yp)s(e.)150
5081 5011 y Fi(min)150 5121 y(max)276 b Fn(Minim)m(um)24 b(and)j(maxim)m
5082 (um.)38 b(The)26 b(result)g(v)-5 b(alue)26 b(is)g(the)h(minim)m(um)d
5083 (or)i(maxim)m(um,)h(resp)s(ec-)630 5230 y(tiv)m(ely)-8
5084 b(,)28 b(of)f(the)f(t)m(w)m(o)i(source)f(op)s(erands.)38
5085 b(The)27 b(result)e(t)m(yp)s(e)i(and)f(the)h(op)s(erand)e(t)m(yp)s(es)i
5086 (m)m(ust)630 5340 y(b)s(e)j(the)g(same)h(in)m(teger)g(or)f
5087 (\015oating-p)s(oin)m(t)g(t)m(yp)s(es.)p eop
5088 %%Page: 32 34
5089 32 33 bop 150 -116 a Fn(32)2385 b(The)30 b(SUIF)g(V)-8
5090 b(ersion)30 b(1)h(Library)150 299 y Fi(abs)276 b Fn(Absolute)39
5091 b(v)-5 b(alue.)68 b(Compute)39 b(the)h(absolute)f(v)-5
5092 b(alue)39 b(of)h(the)f Fi(src1)g Fn(op)s(erand.)67 b(The)39
5093 b Fi(src2)630 408 y Fn(op)s(erand)32 b(is)h(un)m(used.)49
5094 b(The)33 b(result)g(t)m(yp)s(e)h(and)f(the)g(source)h(op)s(erand)f(t)m
5095 (yp)s(e)g(m)m(ust)h(b)s(e)f(the)630 518 y(same)e(in)m(teger)g(or)f
5096 (\015oating-p)s(oin)m(t)g(t)m(yp)s(e.)150 690 y Fi(rot)276
5097 b Fn(Rotate)29 b(the)e(v)-5 b(alue)27 b(in)f(the)h Fi(src1)f
5098 Fn(op)s(erand)g(left)h(or)g(righ)m(t)g(b)m(y)g(the)g(amoun)m(t)h(sp)s
5099 (eci\014ed)d(in)h(the)630 800 y Fi(src2)36 b Fn(op)s(erand.)61
5100 b(The)37 b(v)-5 b(ariable)37 b(in)f(the)h Fi(src2)g Fn(op)s(erand)f(m)m
5101 (ust)h(alw)m(a)m(ys)h(ha)m(v)m(e)h(a)f(signed)630 909
5102 y(in)m(teger)i(t)m(yp)s(e.)67 b(If)39 b(the)h(shift)e(amoun)m(t)h(is)g
5103 (p)s(ositiv)m(e,)i(the)e(v)-5 b(alue)39 b(is)f(rotated)j(to)f(the)f
5104 (left)630 1019 y(\(to)m(w)m(ard)e(the)g(most-signi\014can)m(t)f(bit\);)
5105 i(if)d(it)h(is)f(negativ)m(e,)k(the)e(v)-5 b(alue)35
5106 b(is)h(rotated)h(to)g(the)630 1129 y(righ)m(t.)68 b(The)39
5107 b(result)f(t)m(yp)s(e)i(and)f(the)h(t)m(yp)s(e)f(of)h(the)g
5108 Fi(src1)e Fn(op)s(erand)g(m)m(ust)i(b)s(e)f(the)h(same)630
5109 1238 y(in)m(teger)31 b(t)m(yp)s(e.)150 1410 y Fi(seq)150
5110 1520 y(sne)150 1630 y(sl)150 1739 y(sle)276 b Fn(Comparison)32
5111 b(instructions.)50 b(If)33 b(the)i Fi(src1)d Fn(op)s(erand)h(is)g
5112 (equal,)i(not)f(equal,)h(less)e(than,)i(or)630 1849 y(less)f(than)g(or)
5113 h(equal,)g(resp)s(ectiv)m(ely)-8 b(,)36 b(to)g(the)e
5114 Fi(src2)g Fn(op)s(erand,)h(assign)f(the)g(in)m(teger)h(v)-5
5115 b(alue)630 1958 y(one)36 b(to)h(the)f Fi(dst)g Fn(op)s(erand.)56
5116 b(Otherwise,)37 b(set)g(the)f Fi(dst)f Fn(op)s(erand)g(to)i(zero.)58
5117 b(The)36 b(result)630 2068 y(t)m(yp)s(e)j(m)m(ust)g(alw)m(a)m(ys)h(b)s
5118 (e)f(a)g(signed)g(in)m(teger)g(t)m(yp)s(e.)68 b(The)38
5119 b(source)i(op)s(erands)e(m)m(ust)h(ha)m(v)m(e)630 2178
5120 y(in)m(teger,)31 b(en)m(umerated,)g(\015oating)f(p)s(oin)m(t,)g(or)g(p)
5121 s(oin)m(ter)g(t)m(yp)s(e.)150 2350 y Fi(ret)276 b Fn(Return)33
5122 b(from)g(a)h(pro)s(cedure.)50 b(Only)32 b(the)i Fi(src1)f
5123 Fn(op)s(erand)f(is)h(used)g(and)g(it)h(is)e(optional.)50
5124 b(If)630 2459 y(sp)s(eci\014ed,)27 b(it)h(is)f(the)h(return)f(v)-5
5125 b(alue)28 b(and)g(ma)m(y)g(con)m(tain)h(an)f(op)s(erand)f(of)h(an)m(y)h
5126 (t)m(yp)s(e)f(except)630 2569 y(arra)m(y)k(or)f(function)f(t)m(yp)s
5127 (es.)43 b(If)30 b(the)i(pro)s(cedure's)e(function)g(t)m(yp)s(e)h(has)g
5128 (v)m(oid)f(return)h(t)m(yp)s(e,)630 2678 y(the)37 b(op)s(erand)e(m)m
5129 (ust)i(b)s(e)f(n)m(ull;)i(otherwise)e(the)h(op)s(erand)e(m)m(ust)i(not)
5130 f(b)s(e)g(n)m(ull)f(and)h(m)m(ust)630 2788 y(ha)m(v)m(e)c(the)e(same)h
5131 (t)m(yp)s(e)f(as)h(the)g(return)e(t)m(yp)s(e)h(of)h(the)g(pro)s
5132 (cedure.)150 2960 y Fi(mrk)276 b Fn(This)23 b(pseudo-instruction)g
5133 (only)h(marks)h(a)g(p)s(osition)e(in)h(the)h(program)g(and)f(is)g(used)
5134 h(to)g(hold)630 3070 y(miscellaneous)36 b(annotations)h(suc)m(h)g(as)g
5135 (line)f(n)m(um)m(b)s(ers.)60 b(It)37 b(is)g(functionally)d(equiv)-5
5136 b(alen)m(t)630 3179 y(to)32 b(a)g Fi(nop)e Fn(instruction.)41
5137 b(All)30 b(of)i(the)f(op)s(erands)f(for)h(these)h(instructions)d
5138 (should)g(b)s(e)i(n)m(ull,)630 3289 y(and)f(the)g(result)g(t)m(yp)s(e)g
5139 (should)f(b)s(e)g(the)i(SUIF)f Fi(void)f Fn(t)m(yp)s(e.)150
5140 3578 y Fl(4.5)68 b(Branc)l(h)44 b(and)h(Jump)g(Instructions)275
5141 3784 y Fn(The)25 b Fi(in_bj)g Fn(class)h(is)f(used)g(to)i(hold)d(branc)
5142 m(h)i(and)f(jump)g(instructions.)37 b(This)24 b(class)i(includes)e(a)i
5143 (\014eld)150 3893 y(to)g(sp)s(ecify)d(the)i(lab)s(el)e(sym)m(b)s(ol)h
5144 (at)i(the)f(branc)m(h)f(target)i(and)f(an)f(optional)h(source)g(op)s
5145 (erand)e(that)j(is)e(used)150 4003 y(for)h(conditional)f(branc)m(hes.)
5146 39 b(The)25 b Fi(target)e Fn(and)i Fi(set_target)e Fn(metho)s(ds)i(are)
5147 g(used)g(to)h(access)h(the)f(lab)s(el)150 4112 y(sym)m(b)s(ol)35
5148 b(for)h(the)h(branc)m(h)f(target.)60 b(This)34 b(lab)s(el)h(m)m(ust)h
5149 (b)s(e)g(de\014ned)f(in)g(the)i(scop)s(e)f(where)g(the)h(branc)m(h)150
5150 4222 y(o)s(ccurs,)c(and)e(it)h(m)m(ust)g(b)s(e)g(within)d(the)k(same)f
5151 (pro)s(cedure.)45 b(The)32 b Fi(src_op)f Fn(and)g Fi(set_src_op)f
5152 Fn(metho)s(ds)150 4332 y(access)40 b(the)f(optional)g(source)g(op)s
5153 (erand)f(\014eld.)65 b(The)38 b Fi(dst)g Fn(op)s(erand)g(is)g(un)m
5154 (used)g(for)g(all)g(branc)m(h)h(and)150 4441 y(jump)33
5155 b(instructions)e(and)j(the)g(result)f(t)m(yp)s(e)h(should)e(alw)m(a)m
5156 (ys)j(b)s(e)e(the)h(SUIF)g Fi(void)f Fn(t)m(yp)s(e.)52
5157 b(The)34 b(branc)m(h)150 4551 y(and)c(jump)f(op)s(co)s(des)h(are)g
5158 (describ)s(ed)f(b)s(elo)m(w:)150 4729 y Fi(jmp)276 b
5159 Fn(Unconditional)43 b(jump.)85 b(The)45 b(source)g(op)s(erand)f(is)h
5160 (un)m(used.)84 b(The)45 b(\015o)m(w)h(of)f(con)m(trol)h(is)630
5161 4839 y(unconditionally)27 b(transferred)i(to)i(the)g(co)s(de)g(at)g
5162 (the)f(target)i(lab)s(el.)150 5011 y Fi(btrue)180 b Fn(Branc)m(h)34
5163 b(if)f(true.)51 b(If)33 b(the)h(source)g(op)s(erand,)g(whic)m(h)e(m)m
5164 (ust)i(ha)m(v)m(e)h(an)f(signed)e(in)m(teger)j(t)m(yp)s(e,)630
5165 5121 y(con)m(tains)25 b(a)h(true)f(\(non-zero\))h(v)-5
5166 b(alue,)26 b(the)f(\015o)m(w)h(of)f(con)m(trol)g(is)g(transferred)f(to)
5167 i(the)f(co)s(de)g(at)630 5230 y(the)i(target)i(lab)s(el.)38
5168 b(Otherwise,)26 b(it)h(con)m(tin)m(ues)g(with)f(the)h(next)g
5169 (instruction)e(in)h(sequen)m(tial)630 5340 y(order.)p
5171 %%Page: 33 35
5172 33 34 bop 150 -116 a Fn(Chapter)30 b(4:)41 b(Instructions)29
5173 b(and)g(Expression)g(T)-8 b(rees)1694 b(33)150 299 y
5174 Fi(bfalse)132 b Fn(Branc)m(h)36 b(if)e(false.)56 b(If)36
5175 b(the)f(source)h(op)s(erand)f(con)m(tains)g(a)h(false)g(\(zero\))h(v)-5
5176 b(alue,)36 b(the)g(\015o)m(w)g(of)630 408 y(con)m(trol)g(is)f
5177 (transferred)g(to)h(the)g(co)s(de)g(at)g(the)g(target)i(lab)s(el.)55
5178 b(Otherwise,)36 b(it)f(con)m(tin)m(ues)630 518 y(with)f(the)i(next)f
5179 (instruction)f(in)g(sequen)m(tial)h(order.)55 b(The)35
5180 b(source)h(op)s(erand)e(m)m(ust)i(ha)m(v)m(e)630 628
5181 y(an)30 b(signed)g(in)m(teger)g(t)m(yp)s(e.)150 890 y
5182 Fl(4.6)68 b(Load)45 b(Constan)l(t)h(Instructions)275
5183 1085 y Fn(Rather)23 b(than)f(allo)m(wing)g(constan)m(t)i(v)-5
5184 b(alues)22 b(to)i(b)s(e)e(used)h(directly)e(as)i(op)s(erands,)h(SUIF)e
5185 (uses)h(separate)150 1195 y Fi(ldc)h Fn(instructions)e(to)k(load)e
5186 (constan)m(t)i(v)-5 b(alues.)38 b(The)25 b Fi(in_ldc)e
5187 Fn(class)h(holds)f(these)i(instructions.)37 b(Instead)150
5188 1304 y(of)44 b(the)g(usual)f(source)h(op)s(erands,)i(this)d(class)h
5189 (has)g(an)g(immediate)f(v)-5 b(alue)43 b(\014eld)g(\(see)i(Section)e
5190 (12.1)150 1414 y([Immeds],)30 b(page)h(83\).)42 b(The)30
5191 b Fi(value)f Fn(and)h Fi(set_value)e Fn(metho)s(ds)h(ma)m(y)i(b)s(e)f
5192 (used)g(to)h(access)g(this)f(\014eld.)275 1550 y(Only)e(certain)j
5193 (kinds)d(of)j(immediate)e(v)-5 b(alues)30 b(are)g(supp)s(orted)f(in)g
5194 (an)h Fi(ldc)g Fn(instruction:)150 1713 y(Sym)m(b)s(olic)e(addresses)i
5195 (\(See)h(Section)f(12.2)i([Sym)m(b)s(olic)d(Addresses],)h(page)h(84\))
5196 630 1822 y(The)f(result)f(t)m(yp)s(e)i(of)f(the)h(instruction)d(m)m
5197 (ust)i(b)s(e)g(a)h(p)s(oin)m(ter)e(t)m(yp)s(e.)150 1984
5198 y(In)m(tegers)107 b(The)28 b(result)g(t)m(yp)s(e)h(m)m(ust)f(b)s(e)h
5199 (an)f(in)m(teger)h(or)g(p)s(oin)m(ter)f(t)m(yp)s(e.)40
5200 b(P)m(oin)m(ter)29 b(t)m(yp)s(es)g(are)g(allo)m(w)m(ed)g(so)630
5201 2094 y(that)i(the)g(n)m(ull)d(p)s(oin)m(ter)h(can)i(b)s(e)f(loaded)f
5202 (as)i(the)g(in)m(teger)f(v)-5 b(alue)30 b(zero.)150 2255
5203 y(Floating-p)s(oin)m(t)g(v)-5 b(alues)630 2365 y(The)30
5204 b(result)f(t)m(yp)s(e)i(m)m(ust)f(b)s(e)g(a)g(\015oating-p)s(oin)m(t)g
5205 (t)m(yp)s(e.)150 2527 y(Other)25 b(kinds)f(of)j(immediate)e(v)-5
5206 b(alues)25 b(ma)m(y)h(b)s(e)g(stored)g(in)e(the)j Fi(value)d
5207 Fn(\014eld)h(of)h(an)g Fi(ldc)f Fn(instruction,)g(but)150
5208 2637 y(most)31 b(SUIF)f(passes)g(and)g(certain)g(library)e(functions)h
5209 (will)f(not)i(b)s(e)g(able)g(to)h(handle)e(them.)150
5210 2899 y Fl(4.7)68 b(Call)46 b(Instructions)275 3094 y
5211 Fn(SUIF)37 b(uses)g(a)h(sp)s(ecial)e Fi(cal)g Fn(instruction)f(to)k
5212 (represen)m(t)e(pro)s(cedure)f(calls.)61 b(This)36 b(high-lev)m(el)g
5213 (rep-)150 3204 y(resen)m(tation)i(hides)f(the)h(details)e(of)i(v)-5
5214 b(arious)37 b(link)-5 b(age)37 b(con)m(v)m(en)m(tions.)64
5215 b(The)38 b Fi(in_cal)e Fn(class)h(is)g(used)g(to)150
5216 3313 y(represen)m(t)i(these)h(call)e(instructions.)65
5217 b(A)39 b(call)f(instruction)f(con)m(tains)i(a)h(source)f(op)s(erand)f
5218 (to)i(hold)e(a)150 3423 y(p)s(oin)m(ter)30 b(to)h(the)g(pro)s(cedure)e
5219 (to)i(b)s(e)f(called.)41 b(The)30 b Fi(addr_op)f Fn(and)h
5220 Fi(set_addr_op)d Fn(metho)s(ds)j(access)i(this)150 3533
5221 y(op)s(erand)d(\014eld.)275 3669 y(The)i(actual)i(parameters)f(for)g
5222 (the)g(pro)s(cedure)f(are)i(stored)f(in)f(an)h(arra)m(y)g(of)h(op)s
5223 (erands.)44 b(The)32 b Fi(num_)150 3779 y(args)43 b Fn(metho)s(d)g
5224 (returns)f(the)i(n)m(um)m(b)s(er)f(of)h(elemen)m(ts)g(in)f(this)f(arra)
5225 m(y)-8 b(.)82 b(The)44 b(size)f(of)h(the)g(arra)m(y)h(can)150
5226 3888 y(b)s(e)36 b(c)m(hanged)h(at)g(an)m(y)g(time)g(using)e(the)h
5227 Fi(set_num_args)e Fn(metho)s(d.)58 b(If)37 b(necessary)-8
5228 b(,)39 b(the)e(arra)m(y)g(will)d(b)s(e)150 3998 y(reallo)s(cated.)77
5229 b(Elemen)m(ts)43 b(of)g(the)f(argumen)m(t)h(arra)m(y)g(ma)m(y)h(b)s(e)e
5230 (accessed)h(using)e(the)i Fi(argument)e Fn(and)150 4107
5231 y Fi(set_argument)28 b Fn(metho)s(ds.)41 b(Y)-8 b(ou)31
5232 b(m)m(ust)g(sp)s(ecify)f(the)h(arra)m(y)g(index.)41 b(The)30
5233 b(\014rst)g(argumen)m(t)i(is)e(at)h(index)150 4217 y(zero.)275
5234 4354 y(Call)g(instructions)g(m)m(ust)j(ob)s(ey)f(some)g(con)m(v)m(en)m
5235 (tions)i(on)e(the)g(t)m(yp)s(es)g(of)h(the)f(op)s(erands.)48
5236 b(The)33 b Fi(addr)150 4463 y Fn(op)s(erand)h(m)m(ust)g(hold)g(a)h(p)s
5237 (oin)m(ter)f(to)h(a)g(function)f(t)m(yp)s(e)h(whic)m(h)e(is)h
5238 (compatible)g(with)g(the)h(t)m(yp)s(e)g(of)g(the)150
5239 4573 y(pro)s(cedure)29 b(b)s(eing)g(called.)40 b(The)30
5240 b(result)f(t)m(yp)s(e)h(of)h(the)f(call)g(instruction)e(m)m(ust)i(matc)
5241 m(h)h(the)g(return)e(t)m(yp)s(e)150 4682 y(of)41 b(the)g(pro)s(cedure.)
5242 71 b(The)40 b(restrictions)g(on)h(instruction)e(result)g(t)m(yp)s(es)i
5243 (\(see)h(Section)f(4.1.3)h([Result)150 4792 y(T)m(yp)s(es],)27
5244 b(page)f(25\))h(guaran)m(tee)h(that)e(the)g(return)f(t)m(yp)s(e)h(will)
5245 d(either)i(b)s(e)h(v)m(oid)f(or)h(ha)m(v)m(e)h(kno)m(wn,)f(non-zero)150
5246 4902 y(size.)44 b(If)31 b(the)h(function)e(t)m(yp)s(e)i(sp)s(eci\014es)
5247 e(the)i(n)m(um)m(b)s(er)e(of)i(argumen)m(ts,)h(it)e(m)m(ust)g(matc)m(h)
5248 i(the)e(n)m(um)m(b)s(er)g(of)150 5011 y(actual)j(parameters)h(\(unless)
5249 d(the)j(function)d(tak)m(es)k(a)e(v)-5 b(ariable)33 b(n)m(um)m(b)s(er)g
5250 (of)h(argumen)m(ts\).)53 b(Moreo)m(v)m(er,)150 5121 y(eac)m(h)27
5251 b(op)s(erand)e(in)g(the)i(argumen)m(t)f(arra)m(y)h(m)m(ust)f(b)s(e)f
5252 (compatible)h(with)f(the)h(t)m(yp)s(e)g(of)h(the)f(corresp)s(onding)150
5253 5230 y(formal)42 b(parameter.)77 b(Whether)42 b(or)g(not)h(the)f
5254 (function)f(t)m(yp)s(e)i(sp)s(eci\014es)e(the)h(argumen)m(t)h(t)m(yp)s
5255 (es,)j(the)150 5340 y(restrictions)e(on)i(instruction)d(result)h(t)m
5256 (yp)s(es)i(\(see)g(Section)g(4.1.3)h([Result)e(T)m(yp)s(es],)k(page)d
5257 (25\))h(and)p eop
5258 %%Page: 34 36
5259 34 35 bop 150 -116 a Fn(34)2385 b(The)30 b(SUIF)g(V)-8
5260 b(ersion)30 b(1)h(Library)150 299 y(v)-5 b(ariables)36
5261 b(\(see)j(Section)e(6.4)h([V)-8 b(ariable)38 b(Sym)m(b)s(ols],)g(page)g
5262 (47\))g(guaran)m(tee)h(that)f(all)f(argumen)m(ts)h(will)150
5263 408 y(ha)m(v)m(e)32 b(kno)m(wn,)e(non-zero)h(size.)150
5264 722 y Fl(4.8)68 b(Arra)l(y)45 b(Instructions)275 938
5265 y Fn(Because)27 b(man)m(y)g(SUIF)f(passes)g(fo)s(cus)g(on)h(analyzing)e
5266 (and)h(optimizing)f(F)-8 b(ortran)27 b(co)s(de,)g(a)g(high-lev)m(el)150
5267 1047 y(represen)m(tation)g(of)h(arra)m(y)g(references)f(is)g(crucial.)
5268 38 b(SUIF)27 b(pro)m(vides)f Fi(array)g Fn(instructions)f(whic)m(h)h
5269 (retain)150 1157 y(all)33 b(of)i(the)g(high-lev)m(el)e(information)g
5270 (in)g(com)m(bination)h(with)f(other)h(\014elds)f(needed)i(to)g
5271 (generate)h(co)s(de)150 1267 y(for)30 b(the)f(address)g(computations.)
5272 41 b(The)29 b Fi(in_array)e Fn(class)j(is)f(used)g(to)h(hold)e(these)j
5273 (arra)m(y)f(instructions.)275 1424 y(Arra)m(y)j(instructions)e(include)
5274 h(a)i(n)m(um)m(b)s(er)e(of)h(\014elds.)49 b(First,)33
5275 b(a)h(p)s(oin)m(ter)f(to)h(the)g(base)f(of)h(the)f(arra)m(y)150
5276 1533 y(is)i(sp)s(eci\014ed)g(in)g(an)i(op)s(erand)e(\014eld)g(that)i
5277 (can)g(b)s(e)e(accessed)j(with)d(the)i Fi(base_op)d Fn(and)i
5278 Fi(set_base_op)150 1643 y Fn(metho)s(ds.)j(If)28 b(the)g(arra)m(y)h
5279 (elemen)m(ts)f(are)g(structures,)g(a)h(constan)m(t)g(o\013set)g(within)
5280 d(the)i(selected)g(elemen)m(t)150 1752 y(ma)m(y)34 b(b)s(e)f(included.)
5281 47 b(This)32 b(optional)g(in)m(teger)i(o\013set)h(can)e(b)s(e)g
5282 (accessed)i(using)d(the)i Fi(offset)d Fn(and)i Fi(set_)150
5283 1862 y(offset)22 b Fn(metho)s(ds.)38 b(The)23 b(elemen)m(t)g(size)h(is)
5284 e(needed)i(to)g(generate)h(lo)m(w-lev)m(el)e(co)s(de)h(for)f(the)h
5285 (arra)m(y)g(address)150 1972 y(calculation.)44 b(The)32
5286 b Fi(elem_size)d Fn(metho)s(d)j(returns)e(the)i(elemen)m(t)h(size)e(in)
5287 g(bits.)44 b(The)32 b Fi(set_elem_size)150 2081 y Fn(metho)s(d)e(ma)m
5288 (y)h(b)s(e)f(used)f(to)i(c)m(hange)h(the)e(elemen)m(t)h(size.)275
5289 2238 y(Because)c(F)-8 b(ortran)27 b(arra)m(ys)f(do)g(not)g(alw)m(a)m
5290 (ys)g(b)s(egin)f(with)g(index)f(zero,)k(an)e(optional)f(op)s(erand,)h
5291 (whic)m(h)150 2348 y(is)32 b(referenced)g(using)g(the)h
5292 Fi(offset_op)d Fn(and)i Fi(set_offset_op)d Fn(metho)s(ds,)k(is)f(pro)m
5293 (vided)f(to)j(sp)s(ecify)d(an)150 2458 y(o\013set.)54
5294 b(Since)33 b(there)i(is)f(a)g(single)g(o\013set)h(op)s(erand,)g(the)f
5295 (o\013sets)i(for)e(all)f(of)i(the)f(dimensions)e(m)m(ust)j(b)s(e)150
5296 2567 y(com)m(bined)i(in)m(to)g(a)h(single)e(v)-5 b(alue.)61
5297 b(The)37 b(arra)m(ys)g(are)h(stored)g(in)e(ro)m(w-ma)5
5298 b(jor)38 b(form,)h(so)e(the)h(o\013set)g(for)150 2677
5299 y(the)32 b(\014rst)g(dimension)e(is)h(m)m(ultiplied)e(b)m(y)j(the)g
5300 (size)g(of)h(the)f(remaining)f(dimensions,)f(etc.)48
5301 b(If)31 b(the)i(o\013set)150 2786 y(op)s(erand)c(is)h(pro)m(vided,)f
5302 (it)h(m)m(ust)g(ha)m(v)m(e)i(an)e(in)m(teger)h(t)m(yp)s(e.)275
5303 2943 y(Arra)m(y)37 b(instructions)d(can)j(treat)h(arra)m(ys)g(of)f
5304 (arra)m(ys)g(as)g(m)m(ultidimensional)c(arra)m(ys,)39
5305 b(ev)m(en)e(though)150 3053 y(the)d(t)m(yp)s(e)g(system)f(do)s(es)h
5306 (not)f(supp)s(ort)f(that)i(directly)-8 b(.)50 b(Eac)m(h)34
5307 b(arra)m(y)g(instruction)e(includes)f(a)j(\014eld)e(to)150
5308 3163 y(sp)s(ecify)h(the)i(n)m(um)m(b)s(er)f(of)h(dimensions)d(in)h(the)
5309 i(arra)m(y)-8 b(.)55 b(This)33 b(\014eld)g(ma)m(y)j(b)s(e)e(accessed)i
5310 (with)d(the)i Fi(dims)150 3272 y Fn(and)25 b Fi(set_dims)f
5311 Fn(metho)s(ds.)39 b(The)25 b(indexes)g(for)h(the)g(arra)m(y)h
5312 (reference)g(are)f(stored)g(in)f(an)h(arra)m(y)h(of)f(source)150
5313 3382 y(op)s(erands,)32 b(one)h(for)f(eac)m(h)i(dimension.)45
5314 b(These)32 b(index)f(op)s(erands)h(can)h(b)s(e)f(accessed)h(using)f
5315 (the)g Fi(index)150 3491 y Fn(and)38 b Fi(set_index)d
5316 Fn(metho)s(ds.)64 b(The)38 b(dimensions)d(are)k(n)m(um)m(b)s(ered)e(b)s
5317 (eginning)e(with)i(zero.)65 b(Similarly)-8 b(,)150 3601
5318 y(the)33 b(n)m(um)m(b)s(er)e(of)i(elemen)m(ts)f(in)g(eac)m(h)h
5319 (dimension)d(are)j(stored)g(in)e(another)i(arra)m(y)g(of)f(source)h(op)
5320 s(erands,)150 3711 y(whic)m(h)c(can)i(b)s(e)f(accessed)h(with)e(the)i
5321 Fi(bound)e Fn(and)g Fi(set_bound)f Fn(metho)s(ds.)275
5322 3868 y(The)40 b(result)f(t)m(yp)s(e)i(of)g(an)g(arra)m(y)g(instruction)
5323 e(m)m(ust)i(b)s(e)f(a)h(p)s(oin)m(ter.)71 b(Ho)m(w)m(ev)m(er,)46
5324 b(it)40 b(need)h(not)g(b)s(e)150 3977 y(a)f(p)s(oin)m(ter)e(to)i(the)g
5325 (elemen)m(t)g(t)m(yp)s(e.)68 b(If)39 b(the)g(elemen)m(ts)h(are)g
5326 (structures,)h(the)f(result)e(t)m(yp)s(e)i(ma)m(y)g(b)s(e)f(a)150
5327 4087 y(p)s(oin)m(ter)32 b(to)i(one)g(of)f(the)h(structure)f(\014elds.)
5328 48 b(SUIF)33 b(do)s(es)g(not)g(actually)g(require)f(that)i(the)g
5329 (result)e(t)m(yp)s(e)150 4197 y(matc)m(h)f(an)m(ything)e(within)e(the)j
5330 (arra)m(y)g(elemen)m(t)g(t)m(yp)s(e,)g(although)g(that)g(is)f(highly)e
5331 (recommended.)40 b(The)150 4306 y Fi(elem_type)20 b Fn(metho)s(d)i(can)
5332 h(b)s(e)f(used)g(to)h(determine)f(the)g(actual)h(t)m(yp)s(e)g(of)g(the)
5333 f(elemen)m(t)i(b)s(eing)d(addressed.)275 4463 y(The)34
5334 b(t)m(yp)s(es)g(of)h(the)g(arra)m(y)g(instruction)e(op)s(erands)g(m)m
5335 (ust)i(follo)m(w)f(some)h(con)m(v)m(en)m(tions.)54 b(The)34
5336 b(index)150 4573 y(and)f(b)s(ound)f(op)s(erands)h(m)m(ust)g(all)g(ha)m
5337 (v)m(e)i(in)m(teger)f(t)m(yp)s(es.)51 b(The)34 b(base)g(op)s(erand)e(m)
5338 m(ust)i(b)s(e)f(a)h(p)s(oin)m(ter)f(to)150 4682 y(an)d(arra)m(y)-8
5339 b(.)41 b(If)29 b(the)h(arra)m(y)h(instruction)c(has)j(m)m(ultiple)d
5340 (dimensions,)h(the)i(base)g(m)m(ust)f(p)s(oin)m(t)g(to)i(a)f(nested)150
5341 4792 y(arra)m(y)24 b(\(an)g(arra)m(y)g(of)g(arra)m(ys)g(of)g(arra)m
5342 (ys...\))39 b(with)23 b(the)h(same)g(depth)f(as)g(the)h(n)m(um)m(b)s
5343 (er)f(of)g(dimensions.)36 b(F)-8 b(or)150 4902 y(eac)m(h)31
5344 b(dimension,)c(if)h(the)i(b)s(ound)d(op)s(erand)h(is)h(a)h(constan)m
5345 (t,)h(it)e(m)m(ust)g(matc)m(h)h(the)g(n)m(um)m(b)s(er)e(of)i(elemen)m
5346 (ts)150 5011 y(sp)s(eci\014ed)c(in)g(the)i(corresp)s(onding)e(arra)m(y)
5347 i(t)m(yp)s(e.)40 b(\(If)27 b(the)h(lo)m(w)m(er)g(and)f(upp)s(er)e(b)s
5348 (ounds)h(in)g(the)i(arra)m(y)g(t)m(yp)s(e)150 5121 y(are)k(not)f(b)s
5349 (oth)f(constan)m(t,)j(then)e(the)h(b)s(ound)d(op)s(erand)h(ma)m(y)h(ha)
5350 m(v)m(e)i(an)m(y)e(v)-5 b(alue.\))43 b(The)31 b(b)s(ound)e(op)s(erand)
5351 150 5230 y(for)34 b(the)h(\014rst)e(dimension)f(is)h(optional)h(and)f
5352 (ma)m(y)i(b)s(e)f(n)m(ull.)50 b(Finally)-8 b(,)34 b(the)h(elemen)m(t)g
5353 (size)f(m)m(ust)g(matc)m(h)150 5340 y(the)d(size)f(of)g(the)h(elemen)m
5354 (ts)g(in)e(the)h(arra)m(y)h(t)m(yp)s(e.)p eop
5355 %%Page: 35 37
5356 35 36 bop 150 -116 a Fn(Chapter)30 b(4:)41 b(Instructions)29
5357 b(and)g(Expression)g(T)-8 b(rees)1694 b(35)150 299 y
5358 Fl(4.9)68 b(Multi-w)l(a)l(y)46 b(Branc)l(h)e(Instructions)275
5359 502 y Fn(F)-8 b(ortran)35 b(computed)f Fi(goto)g Fn(statemen)m(ts)i
5360 (and)e(C)h Fi(switch)e Fn(statemen)m(ts)j(are)f(represen)m(ted)g(in)e
5361 (SUIF)150 611 y(b)m(y)k(m)m(ulti-w)m(a)m(y)g(branc)m(h)g(\()p
5362 Fi(mbr)p Fn(\))g(instructions.)60 b(These)37 b(are)h(easier)f(to)h
5363 (analyze)g(than)f(the)g(equiv)-5 b(alen)m(t)150 721 y(series)30
5364 b(of)h(conditional)f(branc)m(hes,)h(and)f(they)h(can)g(easily)g(b)s(e)f
5365 (used)g(to)i(generate)g(e\016cien)m(t)g(jump)d(table)150
5366 830 y(co)s(de.)41 b(The)30 b Fi(in_mbr)e Fn(class)j(holds)d(these)j(m)m
5367 (ulti-w)m(a)m(y)g(branc)m(h)e(instructions.)275 975 y(The)41
5368 b Fi(in_mbr)f Fn(class)i(con)m(tains)g(a)g(\014eld)f(with)f(a)j(p)s
5369 (oin)m(ter)d(to)j(an)f(arra)m(y)g(of)g(lab)s(el)f(sym)m(b)s(ols.)73
5370 b(The)150 1085 y Fi(num_labs)38 b Fn(metho)s(d)i(returns)g(the)h(n)m
5371 (um)m(b)s(er)e(of)i(lab)s(els)e(in)g(the)i(arra)m(y)-8
5372 b(.)72 b(The)40 b(size)h(of)g(the)f(arra)m(y)i(can)150
5373 1194 y(b)s(e)d(c)m(hanged)i(at)f(an)m(y)g(time)g(using)e(the)i
5374 Fi(set_num_labs)c Fn(metho)s(d;)44 b(if)39 b(necessary)h(the)g(arra)m
5375 (y)g(will)e(b)s(e)150 1304 y(reallo)s(cated.)63 b(A)38
5376 b(particular)e(elemen)m(t)i(within)d(the)j(arra)m(y)h(can)f(b)s(e)f
5377 (accessed)i(using)d(the)i Fi(label)f Fn(and)150 1414
5378 y Fi(set_label)f Fn(metho)s(ds.)66 b(Y)-8 b(ou)39 b(m)m(ust)g(sp)s
5379 (ecify)e(the)j(arra)m(y)f(index,)h(and,)g(as)g(usual,)f(the)g(elemen)m
5380 (ts)h(are)150 1523 y(n)m(um)m(b)s(ered)29 b(b)s(eginning)f(with)h
5381 (zero.)275 1668 y(A)24 b(m)m(ulti-w)m(a)m(y)g(branc)m(h)f(instruction)f
5382 (transfers)i(con)m(trol)g(to)h(one)g(of)f(the)g(target)i(lab)s(els)c
5383 (dep)s(ending)g(on)150 1778 y(the)i(v)-5 b(alue)23 b(in)f(the)i(source)
5384 g(op)s(erand.)38 b(This)21 b(op)s(erand)i(m)m(ust)h(ha)m(v)m(e)h(an)e
5385 (in)m(teger)h(t)m(yp)s(e.)39 b(It)24 b(can)g(b)s(e)f(accessed)150
5386 1887 y(using)j(the)h Fi(src_op)f Fn(and)h Fi(set_src)e
5387 Fn(metho)s(ds.)39 b(The)27 b(v)-5 b(alue)27 b(of)g(the)h(source)f(op)s
5388 (erand)f(is)h(com)m(bined)f(with)150 1997 y(an)32 b(in)m(teger)h
5389 (o\013set)h(to)f(determine)f(the)h(target)h(lab)s(el.)46
5390 b(The)32 b(o\013set)i(can)e(b)s(e)g(accessed)i(with)e(the)g
5391 Fi(lower)150 2106 y Fn(and)26 b Fi(set_lower)e Fn(metho)s(ds.)38
5392 b(The)26 b(o\013set)i(is)d(subtracted)i(from)e(the)i(v)-5
5393 b(alue)26 b(in)f(the)i(source)f(op)s(erand)g(and)150
5394 2216 y(the)33 b(result)f(is)g(used)g(to)i(index)e(in)m(to)h(the)g(arra)
5395 m(y)h(of)f(target)h(lab)s(els.)47 b(If)33 b(the)g(index)f(is)g(within)e
5396 (the)k(range)150 2325 y(of)e(the)g(arra)m(y)-8 b(,)33
5397 b(the)f(instruction)e(branc)m(hes)i(to)g(the)g(lab)s(el)e(at)j(that)f
5398 (p)s(osition)e(in)h(the)h(arra)m(y;)h(otherwise,)150
5399 2435 y(it)g(branc)m(hes)f(to)i(the)f(default)f(target)j(lab)s(el.)47
5400 b(The)32 b Fi(default_lab)e Fn(and)j Fi(set_default_lab)c
5401 Fn(metho)s(ds)150 2545 y(access)e(this)e(default)g(lab)s(el)f(\014eld.)
5402 38 b(The)25 b(destination)g(op)s(erand)g(of)h(a)g(m)m(ulti-w)m(a)m(y)g
5403 (branc)m(h)f(is)g(un)m(used)g(and)150 2654 y(trying)k(to)j(set)e(it)g
5404 (will)e(cause)j(an)f(error.)41 b(The)30 b(result)f(t)m(yp)s(e)h(should)
5405 f(alw)m(a)m(ys)i(b)s(e)e(the)i(SUIF)f Fi(void)f Fn(t)m(yp)s(e.)150
5406 2937 y Fl(4.10)68 b(Lab)t(el)46 b(Instructions)275 3140
5407 y Fn(SUIF)38 b(uses)h(sp)s(ecial)f(pseudo-instructions)e(to)k(mark)f
5408 (the)g(p)s(ositions)e(of)i(lab)s(els)f(within)e(the)j(lists)150
5409 3250 y(of)33 b(instructions.)47 b(These)33 b(lab)s(el)e(\()p
5410 Fi(lab)p Fn(\))i(instructions)e(are)j(represen)m(ted)f(b)m(y)g(the)g
5411 Fi(in_lab)e Fn(class,)j(whic)m(h)150 3359 y(con)m(tains)e(a)h(single)e
5412 (\014eld)f(holding)g(the)j(sym)m(b)s(ol)d(for)i(a)h(lab)s(el.)44
5413 b(The)32 b Fi(label)f Fn(and)g Fi(set_label)f Fn(metho)s(ds)150
5414 3469 y(access)i(this)d(\014eld.)275 3614 y(No)23 b(op)s(eration)g(is)f
5415 (p)s(erformed)f(b)m(y)i(a)h(lab)s(el)d(instruction.)37
5416 b(Its)23 b(only)f(purp)s(ose)f(is)h(to)i(mark)f(the)g(lo)s(cation)150
5417 3723 y(of)34 b(a)h(lab)s(el)d(sym)m(b)s(ol)h(in)g(an)h(instruction)e
5418 (list.)50 b(The)34 b Fi(label)e Fn(\014eld)h(m)m(ust)h(b)s(e)g(a)g(p)s
5419 (oin)m(ter)f(to)i(the)f(sym)m(b)s(ol)150 3833 y(for)i(the)f(lab)s(el,)h
5420 (whic)m(h)f(m)m(ust)g(b)s(e)g(de\014ned)g(within)e(the)j(scop)s(e)g
5421 (where)f(the)h(lab)s(el)e(instruction)g(o)s(ccurs.)150
5422 3942 y(The)29 b(destination)g(op)s(erand)f(is)h(un)m(used)f(and)h
5423 (trying)g(to)i(set)f(it)f(will)e(cause)j(an)g(error.)40
5424 b(The)29 b(result)g(t)m(yp)s(e)150 4052 y(should)f(alw)m(a)m(ys)j(b)s
5425 (e)f(the)h(SUIF)f Fi(void)f Fn(t)m(yp)s(e.)150 4335 y
5426 Fl(4.11)68 b(Generic)45 b(Instructions)275 4538 y Fn(T)-8
5427 b(o)28 b(help)e(supp)s(ort)g(sp)s(ecial-purp)s(ose)f(extensions)j(to)g
5428 (SUIF,)g(w)m(e)h(ha)m(v)m(e)g(pro)m(vided)d(a)i(generic)g(class)g(of)
5429 150 4647 y(instructions.)48 b(This)31 b(is)i(implemen)m(ted)f(in)g(the)
5430 h Fi(in_gen)f Fn(class.)50 b(These)33 b(generic)g(instructions)f(con)m
5431 (tain)150 4757 y(arbitrarily)c(large)j(arra)m(ys)g(of)f(source)h(op)s
5432 (erands)f(and)g(a)h(c)m(haracter)h(string)e(\014eld)f(to)i(hold)e
5433 (user-de\014ned)150 4866 y(names)g(that)h(function)d(as)j(\\sub-op)s
5434 (co)s(des".)39 b(Generic)29 b(instructions)e(are)j(not)f(part)g(of)g
5435 (standard)f(SUIF)150 4976 y(and)i(most)g(SUIF)h(passes)f(will)e(not)i
5436 (handle)f(them.)275 5121 y(Because)i(it)f(is)g(di\016cult)e(to)j(add)f
5437 (new)g(op)s(co)s(des)g(to)h(SUIF)f(at)h(run-time,)e(the)i(generic)f
5438 (instructions)150 5230 y(all)42 b(share)g(the)h(same)g
5439 Fi(gen)f Fn(op)s(co)s(de.)77 b(Instead,)46 b(they)c(are)h
5440 (distinguished)c(b)m(y)k(user-de\014ned)e(names.)150
5441 5340 y(The)31 b Fi(name)f Fn(and)h Fi(set_name)e Fn(metho)s(ds)h(ma)m
5442 (y)i(b)s(e)f(used)g(to)h(access)g(these)g(c)m(haracter)h(string)d
5443 (\014elds.)42 b(The)p eop
5444 %%Page: 36 38
5445 36 37 bop 150 -116 a Fn(36)2385 b(The)30 b(SUIF)g(V)-8
5446 b(ersion)30 b(1)h(Library)150 299 y Fi(set_name)26 b
5447 Fn(metho)s(d)i(automatically)g(en)m(ters)h(the)g(name)f(in)f(the)i
5448 (lexicon)e(\(see)i(Section)g(12.3)g([Lexicon],)150 408
5449 y(page)i(84\).)275 543 y(A)g(generic)g(instruction)e(con)m(tains)i(a)g
5450 (p)s(oin)m(ter)f(to)i(an)f(arra)m(y)h(of)f(source)g(op)s(erands.)41
5451 b(The)31 b(base)g(class)150 653 y Fi(num_srcs)23 b Fn(metho)s(d)h(ma)m
5452 (y)i(b)s(e)e(used)g(to)i(determine)e(the)h(size)g(of)g(this)f(arra)m(y)
5453 -8 b(.)40 b(The)25 b(size)f(ma)m(y)i(b)s(e)e(c)m(hanged)150
5454 762 y(at)37 b(an)m(y)f(time)g(using)f(the)h Fi(set_num_srcs)d
5455 Fn(metho)s(d.)57 b(If)36 b(necessary)-8 b(,)39 b(the)d(arra)m(y)h(will)
5456 c(b)s(e)j(reallo)s(cated.)150 872 y(The)h(elemen)m(ts)h(of)g(the)g
5457 (source)g(op)s(erand)f(arra)m(y)i(can)f(b)s(e)f(accessed)i(using)d(the)
5458 i(standard)f(base)h(class)150 981 y Fi(src_op)29 b Fn(and)g
5459 Fi(set_src_op)f Fn(metho)s(ds.)40 b(See)31 b(Section)f(4.1.5)i([Source)
5460 e(Op)s(erands],)f(page)i(26.)p eop
5461 %%Page: 37 39
5462 37 38 bop 150 -116 a Fn(Chapter)30 b(5:)41 b(Sym)m(b)s(ol)29
5463 b(T)-8 b(ables)2462 b(37)150 299 y Fj(5)80 b(Sym)l(b)t(ol)54
5464 b(T)-13 b(ables)275 534 y Fn(Sym)m(b)s(ol)41 b(tables)i(con)m(tain)h
5465 (the)f(de\014nitions)e(of)j(the)f(sym)m(b)s(ols)f(and)h(t)m(yp)s(es)g
5466 (used)g(within)d(a)k(SUIF)150 644 y(program.)71 b(Eac)m(h)41
5467 b(sym)m(b)s(ol)f(table)g(is)g(asso)s(ciated)h(with)e(an)h(ob)5
5468 b(ject)42 b(corresp)s(onding)c(to)k(a)f(particular)150
5469 753 y(scop)s(e.)82 b(F)-8 b(or)45 b(example,)j(a)d(pro)s(cedure)e(sym)m
5470 (b)s(ol)g(table)h(is)f(attac)m(hed)j(to)f(the)f(abstract)h(syn)m(tax)g
5471 (tree)150 863 y(represen)m(ting)38 b(the)i(b)s(o)s(dy)d(of)i(the)g(pro)
5472 s(cedure.)66 b(The)38 b(sym)m(b)s(ol)g(tables)h(can)g(b)s(e)g(reac)m
5473 (hed)g(through)g(the)150 972 y(corresp)s(onding)28 b(ob)5
5474 b(jects)31 b(and)f(vice)h(v)m(ersa.)275 1107 y(This)k(section)j
5475 (describ)s(es)e(the)i(sym)m(b)s(ol)e(table)i(hierarc)m(h)m(y)f(and)g
5476 (the)h(details)f(of)h(the)g(sym)m(b)s(ol)e(table)150
5477 1217 y(op)s(erations,)27 b(suc)m(h)f(as)g(lo)s(oking)f(up)g(sym)m(b)s
5478 (ol)g(table)i(en)m(tries)f(and)f(adding)g(new)h(en)m(tries.)39
5479 b(It)27 b(also)f(explains)150 1327 y(ho)m(w)j(the)h(sym)m(b)s(ol)e
5480 (tables)h(handle)f(the)i(task)g(of)g(assigning)e(unique)f(ID)j(n)m(um)m
5481 (b)s(ers)e(to)i(the)g(sym)m(b)s(ols)e(and)150 1436 y(t)m(yp)s(es.)41
5482 b(The)30 b(`)p Fi(symtab.h)p Fn(')e(and)i(`)p Fi(symtab.cc)p
5483 Fn(')e(\014les)i(con)m(tain)g(the)h(co)s(de)g(for)f(sym)m(b)s(ol)f
5484 (tables.)150 1694 y Fl(5.1)68 b(Sym)l(b)t(ol)45 b(T)-11
5485 b(able)45 b(Hierarc)l(h)l(y)275 1887 y Fn(The)33 b(SUIF)h(sym)m(b)s(ol)
5486 e(tables)i(are)g(organized)g(in)f(a)h(hierarc)m(h)m(y)g(of)g(nested)g
5487 (scop)s(es)g(and)f(main)m(tained)150 1997 y(in)m(ternally)28
5488 b(within)g(a)j(tree)g(structure.)40 b(Ev)m(ery)30 b(table)h(con)m
5489 (tains)f(a)h(list)e(of)h(the)h(sym)m(b)s(ol)e(tables)h(that)h(are)150
5490 2107 y(its)38 b(c)m(hildren,)i(and)e(eac)m(h)i(table)f(also)g(has)g(a)h
5491 (p)s(oin)m(ter)e(bac)m(k)i(to)f(its)g(paren)m(t)g(in)f(the)h(tree)h
5492 (\(except)g(for)150 2216 y(the)c(global)e(sym)m(b)s(ol)g(table)i(whic)m
5493 (h)e(do)s(es)h(not)g(ha)m(v)m(e)i(a)e(paren)m(t\).)57
5494 b(The)35 b Fi(children)e Fn(metho)s(d)h(returns)h(a)150
5495 2326 y(p)s(oin)m(ter)26 b(to)i(the)f(list)e(of)i(c)m(hildren)e(and)i
5496 (the)g Fi(parent)e Fn(metho)s(d)h(gets)i(the)f(p)s(oin)m(ter)f(to)i
5497 (the)f(paren)m(t)g(sym)m(b)s(ol)150 2435 y(table.)39
5498 b(Th)m(us,)24 b(to)h(searc)m(h)f(through)g(all)f(of)h(the)g(enclosing)f
5499 (scop)s(es,)j(one)e(can)g(follo)m(w)g(the)g(paren)m(t)g(p)s(oin)m(ters)
5500 150 2545 y(bac)m(k)35 b(to)f(the)h(global)e(sym)m(b)s(ol)g(table,)i
5501 (visiting)d(all)g(of)j(the)f(sym)m(b)s(ol)e(tables)i(along)g(the)g(w)m
5502 (a)m(y)-8 b(.)53 b(The)34 b Fi(is_)150 2654 y(ancestor)26
5503 b Fn(metho)s(d)i(pro)m(vides)f(an)h(easy)h(w)m(a)m(y)h(to)f(c)m(hec)m
5504 (k)h(if)d(a)i(giv)m(en)f(sym)m(b)s(ol)f(table)i(is)e(an)h(ancestor)h
5505 (\(i.e.)150 2764 y(an)h(enclosing)g(scop)s(e\))g(of)h(the)g(curren)m(t)
5506 f(table.)275 2899 y(Note)c(that)f(the)g(sym)m(b)s(ol)f(table)g(hierarc)
5507 m(h)m(y)h(is)f(not)h(indep)s(enden)m(t.)37 b(The)24 b(primary)f(ob)5
5508 b(jects)25 b(in)f(a)h(SUIF)150 3009 y(program)32 b(are)h(the)f(\014les)
5509 f(and)h(the)g(abstract)h(syn)m(tax)g(trees)f(for)g(the)h(pro)s
5510 (cedures.)45 b(The)31 b(sym)m(b)s(ol)g(tables)150 3118
5511 y(are)g(alw)m(a)m(ys)g(attac)m(hed)h(to)g(these)f(primary)d(ob)5
5512 b(jects)31 b(and)f(are)h(generally)f(treated)h(as)g(if)f(they)g(are)h
5513 (parts)150 3228 y(of)f(those)h(ob)5 b(jects.)42 b(F)-8
5514 b(or)31 b(example,)f(when)g(a)g(blo)s(c)m(k)g(of)h(co)s(de)f(is)g
5515 (deleted)g(the)g(asso)s(ciated)h(sym)m(b)s(ol)e(table)150
5516 3337 y(is)g(automatically)i(remo)m(v)m(ed)g(from)f(the)g(hierarc)m(h)m
5517 (y)g(and)g(deleted.)275 3472 y(The)i Fi(base_symtab)e
5518 Fn(class)j(is)f(the)h(base)h(class)f(from)f(whic)m(h)g(the)h(other)h
5519 (sym)m(b)s(ol)d(table)i(classes)h(are)150 3582 y(deriv)m(ed,)k(but)e
5520 (it)h(is)f(an)h(abstract)h(class)f(and)g(cannot)g(b)s(e)g(used)f
5521 (directly)-8 b(.)60 b(There)37 b(are)g(four)f(di\013eren)m(t)150
5522 3691 y(deriv)m(ed)30 b(sym)m(b)s(ol)g(tables)h(classes.)44
5523 b(They)30 b(ha)m(v)m(e)j(m)m(uc)m(h)e(in)f(common,)i(but)f(eac)m(h)h
5524 (is)e(used)h(at)h(a)f(di\013eren)m(t)150 3801 y(lev)m(el)f(in)f(the)i
5525 (hierarc)m(h)m(y)f(and)f(th)m(us)h(has)h(sligh)m(tly)d(di\013eren)m(t)i
5526 (features.)150 4026 y Ff(5.1.1)63 b(The)41 b(Global)g(Sym)m(b)s(ol)g(T)
5527 -10 b(able)275 4219 y Fn(The)38 b(global)g(sym)m(b)s(ol)g(table)h(is)f
5528 (at)i(the)f(top)g(of)g(the)h(sym)m(b)s(ol)d(table)i(hierarc)m(h)m(y)g
5529 (and)f(corresp)s(onds)150 4328 y(to)e(the)f(outermost)h(global)f(scop)s
5530 (e.)55 b(It)35 b(con)m(tains)g(ob)5 b(jects)36 b(that)g(are)g(visible)c
5531 (across)k(source)f(\014les)f(\(i.e.)150 4438 y(shared)j(t)m(yp)s(es)h
5532 (and)f(global)g(sym)m(b)s(ols)f(with)g(external)i(link)-5
5533 b(age\).)62 b(F)-8 b(or)38 b(this)f(reason,)j(it)d(is)f(asso)s(ciated)
5534 150 4548 y(with)29 b(the)i Fi(file_set)d Fn(ob)5 b(ject.)41
5535 b(See)31 b(Section)f(2.1)i([File)d(Set],)j(page)f(7.)275
5536 4682 y(The)26 b(adv)-5 b(an)m(tage)29 b(of)f(using)d(a)j(shared)e
5537 (global)h(sym)m(b)s(ol)f(table)h(app)s(ears)f(when)h(p)s(erforming)e
5538 (in)m(terpro-)150 4792 y(cedural)31 b(analyses)i(and)e
5539 (transformations.)46 b(Without)33 b(a)f(common)h(sym)m(b)s(ol)e(table,)
5540 i(it)f(can)h(b)s(e)f(quite)g(a)150 4902 y(burden)e(to)j(deal)e(with)g
5541 (references)h(to)h(sym)m(b)s(ols)d(that)j(are)f(de\014ned)f(in)f(some)j
5542 (\014les)e(but)g(not)h(in)f(others.)150 5011 y(Ev)m(en)d(trying)e(to)j
5543 (determine)d(whic)m(h)g(sym)m(b)s(ols)h(from)g(di\013eren)m(t)g
5544 (\014les)f(corresp)s(ond)g(to)j(the)e(same)h(ob)5 b(jects)150
5545 5121 y(is)37 b(di\016cult.)60 b(In)37 b(essence,)k(eac)m(h)e(in)m
5546 (terpro)s(cedural)c(pass)j(w)m(ould)e(need)i(to)g(do)g(the)g(w)m(ork)f
5547 (of)h(a)g(link)m(er!)150 5230 y(The)j(shared)g(global)g(sym)m(b)s(ol)f
5548 (table)h(a)m(v)m(oids)h(all)f(of)g(these)h(problems)e(and)h(mak)m(es)h
5549 (in)m(terpro)s(cedural)150 5340 y(optimization)29 b(relativ)m(ely)h
5550 (easy)-8 b(.)p eop
5551 %%Page: 38 40
5552 38 39 bop 150 -116 a Fn(38)2385 b(The)30 b(SUIF)g(V)-8
5553 b(ersion)30 b(1)h(Library)275 299 y(Along)h(with)g(the)h(b)s(ene\014ts)
5554 f(of)h(the)g(global)g(sym)m(b)s(ol)f(table)g(come)i(a)g(few)e
5555 (di\016culties.)47 b(Sharing)31 b(the)150 408 y(global)38
5556 b(sym)m(b)s(ol)f(table)h(across)h(\014les)e(mak)m(es)j(it)e(di\016cult)
5557 e(to)j(supp)s(ort)e(separate)i(compilation.)63 b(Eac)m(h)150
5558 518 y(\014le)43 b(m)m(ust)h(con)m(tain)g(a)g(cop)m(y)h(of)f(the)g
5559 (global)f(sym)m(b)s(ol)g(table,)k(and)d(if)f(these)h(\014les)f(are)h
5560 (manipulated)150 628 y(individually)-8 b(,)29 b(their)j(copies)g(of)h
5561 (the)h(global)e(sym)m(b)s(ol)f(table)i(will)d(not)k(b)s(e)e(consisten)m
5562 (t.)48 b(Th)m(us,)33 b(b)s(efore)g(a)150 737 y(group)23
5563 b(of)h(\014les)e(can)i(b)s(e)f(com)m(bined)g(in)f(a)i(SUIF)g(\014le)e
5564 (set,)k(their)d(global)g(sym)m(b)s(ol)f(tables)h(m)m(ust)h(b)s(e)f
5565 (\\link)m(ed")150 847 y(together)30 b(using)c(the)j(SUIF)f(link)m(er)e
5566 (pass.)40 b(Whether)28 b(this)f(is)g(preferable)g(to)i(just)f(com)m
5567 (bining)e(all)h(of)i(the)150 956 y(source)i(\014les)e(in)m(to)h(one)h
5568 (big)e(SUIF)i(\014le)e(is)g(debatable.)275 1086 y(The)34
5569 b Fi(global_symtab)d Fn(class)k(is)f(used)h(to)g(represen)m(t)g(the)h
5570 (global)e(sym)m(b)s(ol)g(table.)54 b(It)36 b(is)e(also)h(used)150
5571 1196 y(as)30 b(the)f(base)h(class)f(for)g(\014le)g(sym)m(b)s(ol)f
5572 (tables.)40 b(Because)31 b(pro)s(cedure)e(sym)m(b)s(ols)f(ma)m(y)i
5573 (only)e(b)s(e)h(en)m(tered)h(in)150 1305 y(global)f(and)f(\014le)g(sym)
5574 m(b)s(ol)g(tables,)i(this)e(class)h(con)m(tains)g(the)h(metho)s(ds)e
5575 (to)i(deal)f(with)f(them.)40 b(The)29 b Fi(new_)150 1415
5576 y(proc)36 b Fn(metho)s(d)h(creates)i(a)f(new)f(pro)s(cedure)g(sym)m(b)s
5577 (ol)f(and)h(en)m(ters)h(it)f(in)g(the)g(table)h(\(see)g(Section)g(5.4)
5578 150 1525 y([Creating)g(New)g(En)m(tries],)i(page)f(41\),)i(and)d(the)g
5579 Fi(lookup_proc)d Fn(metho)s(d)i(searc)m(hes)i(for)f(an)g(existing)150
5580 1634 y(pro)s(cedure)44 b(sym)m(b)s(ol)g(\(see)i(Section)f(5.3)h([Lo)s
5581 (okup)f(Metho)s(ds],)k(page)d(40\).)86 b(The)45 b Fi(number_globals)150
5582 1744 y Fn(metho)s(d)29 b(in)g(this)g(class)g(handles)g(the)h(task)g(of)
5583 g(assigning)e(ID)j(n)m(um)m(b)s(ers)d(to)j(the)f(sym)m(b)s(ols)e(and)h
5584 (t)m(yp)s(es)h(in)150 1853 y(global)g(and)f(\014le)h(sym)m(b)s(ol)f
5585 (tables)h(\(see)h(Section)g(5.6)g([Num)m(b)s(ering)e(T)m(yp)s(es)h(and)
5586 f(Sym)m(b)s(ols],)g(page)j(42\).)150 2063 y Ff(5.1.2)63
5587 b(File)41 b(Sym)m(b)s(ol)g(T)-10 b(ables)275 2251 y Fn(A)22
5588 b(\014le)g(sym)m(b)s(ol)g(table)g(corresp)s(onds)g(to)h(the)g(global)f
5589 (scop)s(e)h(for)f(a)h(source)g(\014le.)37 b(It)23 b(con)m(tains)g(pro)s
5590 (cedure)150 2361 y(sym)m(b)s(ols)j(and)h(global)h(v)-5
5591 b(ariable)26 b(sym)m(b)s(ols)g(with)h(static)h(link)-5
5592 b(age,)28 b(as)g(w)m(ell)f(as)h(t)m(yp)s(es)f(that)i(are)f(only)f(used)
5593 150 2470 y(within)36 b(the)j(\014le.)64 b(Eac)m(h)40
5594 b(\014le)d(sym)m(b)s(ol)h(table)g(is)g(asso)s(ciated)h(with)e(a)i
5595 (particular)e(\014le)h(set)h(en)m(try)-8 b(.)66 b(See)150
5596 2580 y(Section)30 b(2.2)i([File)d(Set)i(En)m(tries],)f(page)h(8.)275
5597 2710 y(The)i Fi(file_symtab)e Fn(class)j(is)f(deriv)m(ed)g(from)h(the)g
5598 Fi(global_symtab)c Fn(class)k(to)h(implemen)m(t)e(the)h(\014le)150
5599 2819 y(sym)m(b)s(ol)20 b(tables.)37 b(Besides)21 b(the)h(features)f
5600 (that)h(this)e(class)h(inherits)e(from)i(its)f(base)i(class,)h(it)e
5601 (also)g(con)m(tains)150 2929 y(a)28 b(\014eld)e(to)j(record)f(the)f
5602 (\014le)g(set)i(en)m(try)f(with)e(whic)m(h)g(it)i(is)e(asso)s(ciated.)
5603 41 b(This)26 b(\014eld)g(is)h(set)h(automatically)150
5604 3039 y(when)35 b(the)g(\014le)g(sym)m(b)s(ol)f(table)i(is)e(created)j
5605 (b)m(y)e(the)h(\014le)e(set)i(en)m(try)-8 b(.)57 b(The)35
5606 b Fi(fse)g Fn(metho)s(d)g(retriev)m(es)h(the)150 3148
5607 y(v)-5 b(alue)30 b(of)g(this)g(\014eld.)150 3358 y Ff(5.1.3)63
5608 b(Pro)s(cedure)41 b(Sym)m(b)s(ol)g(T)-10 b(ables)275
5609 3546 y Fn(Pro)s(cedure)23 b(sym)m(b)s(ol)h(tables)g(represen)m(t)h(the)
5610 g(top-lev)m(el)g(scop)s(es)g(within)d(pro)s(cedures)i(and)g(are)h(asso)
5611 s(ci-)150 3656 y(ated)f(with)e(the)h Fi(tree_proc)e Fn(ob)5
5612 b(jects)24 b(at)g(the)f(ro)s(ots)h(of)f(the)h(abstract)g(syn)m(tax)g
5613 (trees)g(for)f(the)g(pro)s(cedures.)150 3765 y(See)37
5614 b(Section)f(3.1.8)j([Pro)s(cedure)d(No)s(des],)i(page)g(20.)60
5615 b(Because)38 b(the)f(pro)s(cedure)e(sym)m(b)s(ol)h(tables)g(pro-)150
5616 3875 y(vide)31 b(a)h(sup)s(erset)f(of)g(the)h(blo)s(c)m(k)f(sym)m(b)s
5617 (ol)g(table)h(functions,)e(they)i(are)g(implemen)m(ted)f(b)m(y)g
5618 (deriving)f(the)150 3985 y Fi(proc_symtab)f Fn(class)k(from)f(the)g
5619 Fi(block_symtab)d Fn(class.)47 b(Th)m(us,)32 b(all)f(of)i(the)g
5620 Fi(block_symtab)c Fn(metho)s(ds)150 4094 y(can)i(also)f(b)s(e)g
5621 (applied)e(to)j Fi(proc_symtab)c Fn(ob)5 b(jects.)275
5622 4224 y(Besides)32 b(the)h(inherited)d(metho)s(ds,)j(the)f(pro)s(cedure)
5623 g(sym)m(b)s(ol)f(tables)i(ha)m(v)m(e)g(some)g(added)f(features.)150
5624 4333 y(Eac)m(h)39 b(pro)s(cedure)e(sym)m(b)s(ol)f(table)i(con)m(tains)h
5625 (a)f(list)f(of)h(the)g(formal)f(parameters)i(for)f(the)g(pro)s(cedure.)
5626 150 4443 y(The)29 b Fi(params)f Fn(metho)s(d)g(returns)h(a)g(p)s(oin)m
5627 (ter)g(to)h(this)e(list.)39 b(The)29 b(en)m(tries)g(on)h(this)e(list)g
5628 (m)m(ust)h(b)s(e)g(p)s(oin)m(ters)150 4553 y(to)39 b(sym)m(b)s(ols)f
5629 (for)g(v)-5 b(ariables)37 b(that)i(are)g(con)m(tained)g(within)d(the)j
5630 (pro)s(cedure)f(sym)m(b)s(ol)f(table.)65 b(\(F)-8 b(ormal)150
5631 4662 y(parameters)32 b(cannot)g(b)s(e)e(global)h(v)-5
5632 b(ariables)30 b(or)h(lo)s(cal)g(v)-5 b(ariables)30 b(in)g(inner)f(scop)
5633 s(es.\))44 b(The)31 b(sym)m(b)s(ols)f(are)150 4772 y(listed)j(in)g
5634 (order.)53 b(If)34 b(the)h(function)e(t)m(yp)s(e)i(for)g(the)f(pro)s
5635 (cedure)g(sp)s(eci\014es)f(the)i(parameter)g(t)m(yp)s(es,)h(they)150
5636 4881 y(should)28 b(matc)m(h)k(the)e(t)m(yp)s(es)h(of)f(the)h(v)-5
5637 b(ariables)29 b(on)h(the)h(parameter)f(list.)275 5011
5638 y(The)36 b(pro)s(cedure)g(sym)m(b)s(ol)g(table)h(also)h(records)e(the)i
5639 (next)f(instruction)e(ID)j(n)m(um)m(b)s(er)e(for)h(the)g(pro-)150
5640 5121 y(cedure)j(\(see)h(Section)f(3.1.1)h([ID)g(Num)m(b)s(ers],)h(page)
5641 e(11\).)71 b(The)40 b Fi(number_locals)c Fn(metho)s(d)k(handles)150
5642 5230 y(the)g(task)f(of)h(assigning)e(ID)h(n)m(um)m(b)s(ers)f(to)i(the)g
5643 (sym)m(b)s(ols)e(and)g(t)m(yp)s(es)i(in)e(sym)m(b)s(ol)g(tables)h
5644 (within)e(the)150 5340 y(pro)s(cedure)29 b(\(see)j(Section)e(5.6)h
5645 ([Num)m(b)s(ering)e(T)m(yp)s(es)h(and)f(Sym)m(b)s(ols],)h(page)h(42\).)
5646 p eop
5647 %%Page: 39 41
5648 39 40 bop 150 -116 a Fn(Chapter)30 b(5:)41 b(Sym)m(b)s(ol)29
5649 b(T)-8 b(ables)2462 b(39)150 299 y Ff(5.1.4)63 b(Blo)s(c)m(k)41
5650 b(Sym)m(b)s(ol)f(T)-10 b(ables)275 491 y Fn(The)27 b
5651 Fi(block_symtab)e Fn(class)j(is)f(used)h(for)g(nested)g(blo)s(c)m(k)g
5652 (sym)m(b)s(ol)e(tables)i(and)g(as)g(the)h(base)f(class)g(for)150
5653 601 y(pro)s(cedure)33 b(sym)m(b)s(ol)g(tables.)53 b(Eac)m(h)35
5654 b(one)f(is)g(asso)s(ciated)h(with)e(a)h(particular)f
5655 Fi(tree_block)f Fn(\(or)i Fi(tree_)150 711 y(proc)p Fn(\))24
5656 b(no)s(de)g(in)g(an)g(abstract)i(syn)m(tax)f(tree.)40
5657 b(See)25 b(Section)f(3.1.7)j([Blo)s(c)m(k)e(No)s(des],)i(page)e(19.)40
5658 b(Eac)m(h)25 b(blo)s(c)m(k)150 820 y(sym)m(b)s(ol)f(table)i(con)m
5659 (tains)f(a)h(p)s(oin)m(ter)f(to)h(the)g(corresp)s(onding)d
5660 Fi(tree_block)g Fn(no)s(de.)38 b(The)25 b Fi(block)f
5661 Fn(metho)s(d)150 930 y(retriev)m(es)31 b(the)g(v)-5 b(alue)30
5662 b(of)g(this)g(p)s(oin)m(ter.)40 b(When)30 b(a)h(sym)m(b)s(ol)f(table)g
5663 (is)g(connected)h(to)h(a)e Fi(tree_block)p Fn(,)f(its)150
5664 1039 y Fi(block)g Fn(p)s(oin)m(ter)g(is)h(set)h(automatically)-8
5665 b(.)275 1174 y(Since)26 b(lab)s(el)g(sym)m(b)s(ols)g(ma)m(y)i(not)g(b)s
5666 (e)e(declared)h(in)f(global)h(scop)s(es,)h(the)g Fi(block_symtab)c
5667 Fn(class)j(is)g(the)150 1284 y(natural)k(place)g(to)h(pro)m(vide)f
5668 (metho)s(ds)g(for)g(w)m(orking)g(with)f(lab)s(els.)43
5669 b(The)31 b Fi(new_label)e Fn(metho)s(d)i(creates)150
5670 1393 y(a)44 b(new)f(lab)s(el)f(sym)m(b)s(ol)h(and)g(en)m(ters)h(it)f
5671 (in)f(the)i(table)g(\(see)h(Section)e(5.4)i([Creating)e(New)h(En)m
5672 (tries],)150 1503 y(page)27 b(41\).)40 b(The)25 b Fi(new_unique_label)d
5673 Fn(do)s(es)j(the)h(same)g(thing)f(but)g(it)g(\014rst)g(mak)m(es)i(sure)
5674 e(that)i(the)f(lab)s(el)150 1612 y(will)h(ha)m(v)m(e)k(a)g(unique)d
5675 (name.)40 b(The)30 b Fi(lookup_label)c Fn(metho)s(d)k(searc)m(hes)h
5676 (for)e(an)h(existing)f(lab)s(el)f(sym)m(b)s(ol)150 1722
5677 y(\(see)j(Section)g(5.3)g([Lo)s(okup)f(Metho)s(ds],)h(page)g(40\).)275
5678 1856 y(Blo)s(c)m(k)j(sym)m(b)s(ol)e(tables)i(also)f(pro)m(vide)g(a)h
5679 (metho)s(d)f(to)i(create)g(a)f(new)f(c)m(hild)f(sym)m(b)s(ol)h(table,)h
5680 (i.e.)51 b(an)150 1966 y(inner)20 b(scop)s(e.)38 b(The)22
5681 b Fi(new_unique_child)17 b Fn(metho)s(d)k(can)i(b)s(e)e(used)g(to)i
5682 (create)g(a)f(new)g(c)m(hild)e(blo)s(c)m(k)i(sym)m(tab)150
5683 2076 y(with)29 b(a)i(unique)d(name)j(\(see)g(Section)f(5.4)i([Creating)
5684 e(New)h(En)m(tries],)f(page)h(41\).)42 b(This)28 b(metho)s(d)i(is)g
5685 (not)150 2185 y(pro)m(vided)35 b(for)h(global)g(sym)m(b)s(ol)f(tables,)
5686 j(b)s(ecause)e(their)f(c)m(hildren)g(m)m(ust)h(corresp)s(ond)f(to)i
5687 (pro)s(cedures,)150 2295 y(whic)m(h)29 b(already)h(ha)m(v)m(e)i(unique)
5688 c(names.)150 2552 y Fl(5.2)68 b(Basic)45 b(F)-11 b(eatures)275
5689 2745 y Fn(Sym)m(b)s(ol)24 b(tables)j(con)m(tain)f(three)h(di\013eren)m
5690 (t)f(kinds)e(of)j(ob)5 b(jects:)40 b(t)m(yp)s(es,)27
5691 b(sym)m(b)s(ols,)f(and)g(v)-5 b(ariable)25 b(de\014-)150
5692 2854 y(nitions.)37 b(The)26 b(en)m(tries)g(within)d(a)j(sym)m(b)s(ol)f
5693 (table)h(ma)m(y)g(only)f(b)s(e)h(referenced)f(within)f(the)i(corresp)s
5694 (onding)150 2964 y(scop)s(e.)40 b(This)26 b(includes)f(references)j
5695 (within)d(registered)j(annotations.)40 b(Violating)26
5696 b(this)h(condition)f(ma)m(y)150 3073 y(lead)k(to)h(strange)g(and)f
5697 (unexp)s(ected)g(errors.)275 3208 y(F)-8 b(or)24 b(simplicit)m(y)-8
5698 b(,)23 b(the)h(sym)m(b)s(ol)e(table)i(en)m(tries)f(are)h(stored)g(on)f
5699 (lists)g(instead)g(of)g(using)g(hash)f(tables.)39 b(In)150
5700 3318 y(theory)-8 b(,)30 b(the)f(actual)f(implemen)m(tation)g(\(lists)f
5701 (or)i(hash)e(tables\))i(should)e(not)h(b)s(e)g(visible)e(in)h(the)i
5702 (sym)m(b)s(ol)150 3427 y(table)34 b(in)m(terface.)53
5703 b(Unfortunately)33 b(that)i(is)f(not)g(completely)g(true)g(for)g(the)g
5704 (curren)m(t)g(implemen)m(tation)150 3537 y(of)g(SUIF|the)f(lists)f(can)
5705 i(b)s(e)f(accessed)i(directly)-8 b(.)49 b(The)33 b Fi(types)p
5706 Fn(,)g Fi(symbols)p Fn(,)f(and)h Fi(var_defs)f Fn(metho)s(ds)150
5707 3646 y(return)k(p)s(oin)m(ters)f(to)j(the)f(lists.)58
5708 b(Ho)m(w)m(ev)m(er,)41 b(these)c(lists)f(should)f(only)g(b)s(e)i
5709 (accessed)h(to)f(examine)g(the)150 3756 y(en)m(tries)45
5710 b(and)f(should)f(nev)m(er)i(b)s(e)f(mo)s(di\014ed)e(directly)-8
5711 b(.)83 b(The)45 b(sym)m(b)s(ol)e(table)i(classes)g(pro)m(vide)f(other)
5712 150 3866 y(metho)s(ds)d(to)h(add)e(and)h(remo)m(v)m(e)i(en)m(tries)e
5713 (from)g(the)g(lists)f(and)h(those)h(metho)s(ds)e(should)g(alw)m(a)m(ys)
5714 i(b)s(e)150 3975 y(used.)d(If)29 b(the)f(list)g(implemen)m(tation)f(b)s
5715 (ecomes)i(a)g(p)s(erformance)f(b)s(ottlenec)m(k,)h(w)m(e)h(ma)m(y)f
5716 (need)f(to)h(switc)m(h)150 4085 y(to)i(hash)f(tables,)g(and)g(co)s(de)g
5717 (that)h(mo)s(di\014es)e(the)i(lists)d(directly)i(will)d(b)s(e)j
5718 (relativ)m(ely)g(hard)f(to)i(con)m(v)m(ert.)275 4219
5719 y(T)-8 b(o)31 b(distinguish)d(the)j(sym)m(b)s(ol)f(tables)h(nested)g
5720 (within)e(a)i(particular)f(scop)s(e,)i(eac)m(h)g(table)f(is)f(giv)m(en)
5721 i(a)150 4329 y(name.)48 b(The)33 b Fi(name)e Fn(and)i
5722 Fi(set_name)d Fn(metho)s(ds)j(retriev)m(e)g(and)f(mo)s(dify)f(this)h
5723 (name.)48 b(If)33 b(a)g(scop)s(e)g(in)f(the)150 4438
5724 y(source)24 b(program)g(has)f(a)h(name)g(asso)s(ciated)h(with)d(it,)j
5725 (that)g(name)f(ma)m(y)g(b)s(e)f(used)g(for)h(the)g(corresp)s(onding)150
5726 4548 y(sym)m(b)s(ol)i(table.)40 b(F)-8 b(or)29 b(example,)f(the)g(name)
5727 f(of)h(a)g(pro)s(cedure-lev)m(el)f(sym)m(b)s(ol)f(table)i(should)e
5728 (generally)h(b)s(e)150 4658 y(the)d(same)h(as)g(the)f(name)g(of)h(the)f
5729 (pro)s(cedure.)38 b(On)23 b(the)i(other)f(hand,)h(nested)f(scop)s(es)g
5730 (within)e(pro)s(cedures)150 4767 y(are)30 b(t)m(ypically)e(unnamed,)h
5731 (and)g(names)g(m)m(ust)h(b)s(e)f(generated)h(for)f(the)h(corresp)s
5732 (onding)e(sym)m(b)s(ol)g(tables.)275 4902 y(The)f(sym)m(b)s(ol)g(table)
5733 i(names)f(are)h(used)e(when)h(prin)m(ting)e(a)j(reference)f(to)h(a)g
5734 (sym)m(b)s(ol)e(or)i(named)f(t)m(yp)s(e.)150 5011 y(Because)37
5735 b(the)f(sym)m(b)s(ol)e(or)i(t)m(yp)s(e)f(name)h(alone)g(ma)m(y)g(not)f
5736 (b)s(e)g(su\016cien)m(t)g(to)i(iden)m(tify)d(it)h(uniquely)-8
5737 b(,)35 b(the)150 5121 y Fi(chain_name)23 b Fn(metho)s(d)i(is)g(used)g
5738 (to)h(iden)m(tify)f(the)h(sym)m(b)s(ol)e(table.)39 b(The)25
5739 b(c)m(hain)h(name)f(of)h(a)h(sym)m(b)s(ol)d(table)150
5740 5230 y(includes)d(the)j(names)g(of)g(all)e(of)i(the)g(sym)m(b)s(ol)e
5741 (tables)i(from)f(the)h(pro)s(cedure-lev)m(el)e(do)m(wn)m(w)m(ard,)j
5742 (separated)150 5340 y(b)m(y)35 b(slashes)e(\(as)j(in)d(a)i(Unix)f
5743 (path\).)54 b(The)34 b(\014le-lev)m(el)g(name)h(is)e(not)i(included)d
5744 (since)i(it)h(should)d(alw)m(a)m(ys)p eop
5745 %%Page: 40 42
5746 40 41 bop 150 -116 a Fn(40)2385 b(The)30 b(SUIF)g(V)-8
5747 b(ersion)30 b(1)h(Library)150 299 y(b)s(e)j(clear)h(from)g(the)g(con)m
5748 (text.)56 b(The)34 b(c)m(hain)g(name)h(for)g(a)g(global)f(or)h(\014le)f
5749 (sym)m(b)s(ol)g(table)h(is)e(the)j(empt)m(y)150 408 y(string.)275
5750 553 y(Duplicate)27 b(names)g(within)e(a)j(sym)m(b)s(ol)e(table)i
5751 (should)d(b)s(e)i(a)m(v)m(oided)h(whenev)m(er)f(p)s(ossible.)38
5752 b(Eac)m(h)28 b(kind)150 662 y(of)35 b(sym)m(b)s(ol)f(has)g(a)i
5753 (separate)f(name)g(space.)55 b(A)35 b(v)-5 b(ariable,)35
5754 b(for)g(example,)h(ma)m(y)f(ha)m(v)m(e)i(the)e(same)g(name)150
5755 772 y(as)f(a)g(lab)s(el)e(in)h(the)h(same)g(sym)m(b)s(ol)e(table.)51
5756 b(Named)34 b(t)m(yp)s(es)g(and)f(c)m(hild)f(sym)m(b)s(ol)h(table)g
5757 (names)h(are)g(also)150 881 y(in)k(separate)j(name)e(spaces.)69
5758 b(Duplicate)39 b(names)h(ma)m(y)g(b)s(e)f(temp)s(orarily)e(in)m(tro)s
5759 (duced)h(but)h(to)h(a)m(v)m(oid)150 991 y(problems)35
5760 b(they)i(should)e(b)s(e)i(renamed)f(as)h(so)s(on)g(as)g(p)s(ossible.)58
5761 b(The)36 b Fi(rename_duplicates)c Fn(metho)s(d)150 1101
5762 y(is)40 b(pro)m(vided)g(to)j(c)m(hec)m(k)g(for)e(and)g(rename)g(an)m(y)
5763 h(duplicates)e(in)g(a)i(sym)m(b)s(ol)e(table.)73 b(This)40
5764 b(metho)s(d)h(is)150 1210 y(automatically)30 b(called)g(b)s(efore)g
5765 (writing)e(out)j(eac)m(h)g(sym)m(b)s(ol)e(table.)150
5766 1492 y Fl(5.3)68 b(Lo)t(okup)44 b(Metho)t(ds)275 1694
5767 y Fn(SUIF)33 b(sym)m(b)s(ol)f(tables)h(pro)m(vide)f(a)i(n)m(um)m(b)s
5768 (er)e(of)h(metho)s(ds)g(to)h(searc)m(h)g(for)f(and)g(retriev)m(e)h
5769 (particular)150 1804 y(t)m(yp)s(es,)46 b(sym)m(b)s(ols,)f(and)e(v)-5
5770 b(ariable)41 b(de\014nitions.)76 b(Most)44 b(of)f(these)h(lo)s(okup)d
5771 (metho)s(ds)h(will)f(optionally)150 1914 y(searc)m(h)29
5772 b(all)e(the)i(ancestor)h(sym)m(b)s(ol)d(tables,)i(making)e(it)h(easy)i
5773 (to)f(determine)e(if)h(an)g(ob)5 b(ject)30 b(is)d(de\014ned)g(in)150
5774 2023 y(the)k(curren)m(t)f(scop)s(e.)275 2167 y(The)22
5775 b Fi(lookup_type)f Fn(metho)s(d)i(is)f(a)m(v)-5 b(ailable)23
5776 b(at)h(all)e(lev)m(els)h(in)f(the)i(sym)m(b)s(ol)e(table)h(hierarc)m(h)
5777 m(y)g(to)h(searc)m(h)150 2277 y(for)34 b(SUIF)f(t)m(yp)s(es.)51
5778 b(Giv)m(en)34 b(an)f(existing)g(t)m(yp)s(e,)i(the)f(metho)s(d)f(searc)m
5779 (hes)i(for)e(a)h(t)m(yp)s(e)g(that)h(is)d(the)i(same.)150
5780 2387 y(It)k(uses)f(the)h Fi(is_same)e Fn(metho)s(d)i(from)f(the)h
5781 Fi(type_node)d Fn(class)j(to)g(p)s(erform)f(these)h(comparisons.)62
5782 b(If)150 2496 y(a)33 b(matc)m(hing)h(t)m(yp)s(e)f(is)f(not)h(found)f
5783 (within)e(the)k(curren)m(t)f(sym)m(b)s(ol)e(table,)j
5784 Fi(lookup_type)c Fn(will)h(con)m(tin)m(ue)150 2606 y(searc)m(hing)h(in)
5785 e(the)j(ancestor)f(sym)m(b)s(ol)f(tables)h(b)m(y)g(default.)44
5786 b(Ho)m(w)m(ev)m(er,)35 b(if)c(the)h(optional)f Fi(up)g
5787 Fn(parameter)150 2715 y(is)e(set)i(to)g Fi(FALSE)p Fn(,)f(it)g(will)d
5788 (giv)m(e)k(up)e(after)i(searc)m(hing)g(the)f(\014rst)g(table.)275
5789 2860 y(Sev)m(eral)21 b(metho)s(ds)g(are)i(pro)m(vided)d(to)j(lo)s(okup)
5790 d(sym)m(b)s(ols.)36 b(Eac)m(h)23 b(di\013eren)m(t)e(kind)f(of)i(sym)m
5791 (b)s(ol)f(\(v)-5 b(ariable,)150 2969 y(pro)s(cedure,)26
5792 b(and)g(lab)s(el\))f(has)h(its)g(o)m(wn)g(name)g(space,)i(so)f(the)g
5793 Fi(lookup_sym)c Fn(metho)s(d)j(requires)f(that)i(y)m(ou)150
5794 3079 y(sp)s(ecify)34 b(b)s(oth)g(the)h(name)g(and)f(the)h(kind)f(of)h
5795 (sym)m(b)s(ol)e(for)i(whic)m(h)f(to)h(searc)m(h.)55 b(This)34
5796 b(metho)s(d)g(ma)m(y)i(b)s(e)150 3188 y(used)22 b(with)g(all)g(sym)m(b)
5797 s(ol)g(tables.)38 b(F)-8 b(or)24 b(con)m(v)m(enience,)i(other)d(metho)s
5798 (ds)g(are)g(de\014ned)f(as)i(wrapp)s(ers)d(around)150
5799 3298 y Fi(lookup_sym)p Fn(.)37 b(Eac)m(h)30 b(of)f(these)g(wrapp)s(ers)
5800 e(searc)m(hes)j(for)f(a)g(particular)e(kind)g(of)i(sym)m(b)s(ol:)39
5801 b Fi(lookup_var)150 3408 y Fn(searc)m(hes)25 b(for)e(v)-5
5802 b(ariables,)24 b Fi(lookup_proc)c Fn(searc)m(hes)25 b(for)e(pro)s
5803 (cedures,)h(and)f Fi(lookup_label)e Fn(searc)m(hes)j(for)150
5804 3517 y(lab)s(els.)36 b(Because)23 b(pro)s(cedure)e(sym)m(b)s(ols)f(ma)m
5805 (y)i(only)f(b)s(e)g(de\014ned)g(in)f(global)h(sym)m(b)s(ol)g(tables,)i
5806 (the)f Fi(lookup_)150 3627 y(proc)k Fn(metho)s(d)h(is)g(declared)g(in)f
5807 (the)i Fi(global_symtab)c Fn(class.)39 b(Similarly)-8
5808 b(,)26 b(the)h Fi(lookup_label)d Fn(metho)s(d)150 3736
5809 y(is)c(declared)h(in)f(the)i Fi(block_symtab)c Fn(class,)23
5810 b(b)s(ecause)e(lab)s(els)f(ma)m(y)i(only)e(b)s(e)h(de\014ned)f(within)f
5811 (pro)s(cedures.)150 3846 y(By)j(default,)g(all)f(of)g(these)h(metho)s
5812 (ds)f(searc)m(h)h(the)f(curren)m(t)g(sym)m(b)s(ol)g(table)g(and,)i(if)d
5813 (unsuccessful,)h(pro)s(ceed)150 3956 y(to)33 b(searc)m(h)f(the)g
5814 (ancestor)h(sym)m(b)s(ol)e(tables.)45 b(The)32 b(optional)f
5815 Fi(up)g Fn(parameters)i(ma)m(y)f(b)s(e)f(set)i(to)g Fi(FALSE)d
5816 Fn(to)150 4065 y(turn)f(o\013)i(this)e(default)h(b)s(eha)m(vior)f(and)h
5817 (only)g(searc)m(h)h(the)f(curren)m(t)g(sym)m(b)s(ol)f(table.)275
5818 4209 y(A)22 b(sym)m(b)s(ol)g(for)g(a)h(global)f(v)-5
5819 b(ariable)22 b(is)f(just)h(a)h(declaration)g(of)f(that)i(v)-5
5820 b(ariable)21 b(and)h(do)s(es)g(not)h(automat-)150 4319
5821 y(ically)31 b(ha)m(v)m(e)j(an)m(y)e(storage)i(allo)s(cated.)47
5822 b(V)-8 b(ariable)32 b(de\014nitions)e(are)j(required)e(to)i(allo)s
5823 (cate)g(storage)h(and)150 4429 y(to)f(sp)s(ecify)e(alignmen)m(t)h
5824 (requiremen)m(ts)f(and)h(an)m(y)h(initial)c(data)k(for)f(the)h(v)-5
5825 b(ariable.)45 b(Since)32 b(the)g(v)-5 b(ariable)150 4538
5826 y(de\014nitions)24 b(are)i(not)h(directly)e(connected)i(to)g(the)f(v)-5
5827 b(ariable)25 b(sym)m(b)s(ols,)h(the)g Fi(lookup_var_def)c
5828 Fn(metho)s(d)150 4648 y(is)27 b(pro)m(vided)g(to)i(searc)m(h)g(a)g(sym)
5829 m(b)s(ol)e(table)h(for)g(the)g(de\014nition)e(of)j(a)f(particular)f(v)
5830 -5 b(ariable)27 b(sym)m(b)s(ol.)39 b(This)150 4757 y(metho)s(d)27
5831 b(do)s(es)f(not)i(searc)m(h)f(the)h(paren)m(t)f(sym)m(b)s(ol)f(table.)
5832 39 b(In)27 b(general)g(the)g Fi(definition)d Fn(metho)s(d)j(in)f(the)
5833 150 4867 y Fi(var_sym)i Fn(class)j(is)e(a)i(b)s(etter)f(w)m(a)m(y)h(to)
5834 h(lo)s(cate)f(a)g(v)-5 b(ariable)29 b(de\014nition.)275
5835 5011 y(Sym)m(b)s(ols)38 b(and)j(t)m(yp)s(es)f(are)h(assigned)f(ID)h(n)m
5836 (um)m(b)s(ers)e(\(see)j(Section)f(5.6)g([Num)m(b)s(ering)e(T)m(yp)s(es)
5837 i(and)150 5121 y(Sym)m(b)s(ols],)32 b(page)h(42\))h(that)f(uniquely)d
5838 (iden)m(tify)i(them)g(within)e(a)j(particular)e(con)m(text.)50
5839 b(The)32 b Fi(lookup_)150 5230 y(type_id)h Fn(metho)s(d)h(searc)m(hes)i
5840 (the)f(t)m(yp)s(es)g(de\014ned)e(within)f(a)k(sym)m(b)s(ol)d(table)i
5841 (and)f(its)g(ancestors)i(for)f(a)150 5340 y(t)m(yp)s(e)c(with)e(the)h
5842 (sp)s(eci\014ed)f(ID)h(n)m(um)m(b)s(er.)40 b(The)30 b
5843 Fi(lookup_sym_id)c Fn(do)s(es)31 b(the)f(same)h(thing)e(for)h(sym)m(b)s
5844 (ols.)p eop
5845 %%Page: 41 43
5846 41 42 bop 150 -116 a Fn(Chapter)30 b(5:)41 b(Sym)m(b)s(ol)29
5847 b(T)-8 b(ables)2462 b(41)275 299 y(Besides)34 b(searc)m(hing)i(for)f
5848 (one)g(of)h(the)f(en)m(tries)g(in)g(a)g(sym)m(b)s(ol)f(table,)j(y)m(ou)
5849 f(can)f(also)h(searc)m(h)g(for)f(one)150 408 y(of)c(its)g(c)m(hildren)e
5850 (in)h(the)h(sym)m(b)s(ol)f(table)h(hierarc)m(h)m(y)-8
5851 b(.)43 b(The)31 b Fi(lookup_child)d Fn(metho)s(d)j(searc)m(hes)h
5852 (through)150 518 y(the)d(list)f(of)h(c)m(hildren)e(for)i(a)h(sym)m(b)s
5853 (ol)e(table)h(with)e(a)j(giv)m(en)f(name.)40 b(This)28
5854 b(ma)m(y)h(not)h(b)s(e)e(v)m(ery)i(useful,)e(but)150
5855 628 y(it)i(is)f(included)f(for)i(completeness.)150 923
5856 y Fl(5.4)68 b(Creating)46 b(New)g(En)l(tries)275 1130
5857 y Fn(T)-8 b(o)21 b(mak)m(e)i(it)e(easier)g(to)i(add)e(new)g(en)m
5858 (tries,)i(the)f(sym)m(b)s(ol)e(tables)h(pro)m(vide)g(metho)s(ds)f(that)
5859 j(com)m(bine)e(the)150 1240 y(steps)29 b(of)g(creating)g(new)f(ob)5
5860 b(jects)30 b(and)e(then)h(en)m(tering)f(them)h(in)f(the)h(tables.)39
5861 b(Some)29 b(of)g(these)h(metho)s(ds)150 1350 y(automatically)k(mak)m(e)
5862 i(sure)e(that)h(the)g(new)f(en)m(tries)g(ha)m(v)m(e)i(unique)c(names)j
5863 (and)f(that)h(is)e(particularly)150 1459 y(useful.)275
5864 1609 y(New)27 b(v)-5 b(ariables)25 b(can)i(b)s(e)g(added)f(to)h(tables)
5865 g(an)m(ywhere)g(in)f(the)h(sym)m(b)s(ol)e(table)i(hierarc)m(h)m(y)-8
5866 b(.)40 b(The)26 b Fi(new_)150 1718 y(var)35 b Fn(metho)s(d)f(creates)j
5867 (a)f(new)f(v)-5 b(ariable)34 b(with)h(a)g(giv)m(en)h(name)f(and)g(t)m
5868 (yp)s(e)h(and)f(then)g(en)m(ters)h(the)f(new)150 1828
5869 y(v)-5 b(ariable)36 b(sym)m(b)s(ol)f(in)h(the)h(table.)61
5870 b(The)36 b Fi(new_unique_var)d Fn(metho)s(d)k(is)f(similar,)g(but)g(it)
5871 h(also)f(c)m(hec)m(ks)150 1938 y(that)e(the)g(name)f(of)g(the)h(new)f
5872 (v)-5 b(ariable)32 b(is)g(unique.)48 b(If)33 b(not,)i(it)e(app)s(ends)e
5873 (a)j(n)m(um)m(b)s(er)e(to)i(the)g(sp)s(eci\014ed)150
5874 2047 y(name)e(un)m(til)e(it)i(is)f(unique.)44 b(With)32
5875 b(this)f(metho)s(d,)h(the)g(base)g(name)g(is)f(optional;)i(the)f
5876 (default)f(v)-5 b(alue)32 b(is)150 2157 y(`)p Fi(suif_tmp)p
5877 Fn('.)275 2306 y(Pro)s(cedure)g(sym)m(b)s(ols)g(can)i(b)s(e)e(created)j
5878 (in)d(global)g(and)h(\014le)g(sym)m(b)s(ol)f(tables)h(using)f(the)h
5879 Fi(new_proc)150 2416 y Fn(metho)s(d.)47 b(The)33 b(name)f(of)h(the)g
5880 (pro)s(cedure,)g(its)f(t)m(yp)s(e,)i(and)e(the)h(source)f(language)i(m)
5881 m(ust)e(b)s(e)g(sp)s(eci\014ed.)150 2525 y(There)23 b(is)f(curren)m
5882 (tly)h(no)g(metho)s(d)g(to)h(automatically)g(create)h(a)e(new)g(pro)s
5883 (cedure)g(sym)m(b)s(ol)f(with)g(a)i(unique)150 2635 y(name.)275
5884 2785 y(Because)h(lab)s(el)e(sym)m(b)s(ols)h(ma)m(y)h(only)e(b)s(e)h
5885 (declared)h(within)d(pro)s(cedures,)i(the)h Fi(new_label)d
5886 Fn(and)i Fi(new_)150 2894 y(unique_label)34 b Fn(metho)s(ds)j(are)i
5887 (pro)m(vided)d(in)g(the)i Fi(block_symtab)d Fn(class.)62
5888 b(The)38 b(only)f(parameter)h(of)150 3004 y(these)d(metho)s(ds)e(is)h
5889 (the)g(name)h(of)f(the)h(lab)s(el.)51 b(The)34 b(name)g(is)g(optional)f
5890 (for)h Fi(new_unique_label)p Fn(;)f(its)150 3113 y(default)38
5891 b(v)-5 b(alue)39 b(is)f(`)p Fi(L)p Fn('.)67 b(Just)39
5892 b(as)g(with)f(v)-5 b(ariables,)40 b(unique)e(lab)s(el)f(names)i(are)h
5893 (created)g(b)m(y)f(adding)f(a)150 3223 y(n)m(um)m(b)s(er)29
5894 b(to)i(the)g(end)e(of)i(the)g(base)f(names.)275 3373
5895 y(Within)d(a)j(pro)s(cedure,)f(new)g(inner)f(scop)s(es)h(ma)m(y)h(b)s
5896 (e)f(created)i(to)f(b)s(e)f(used)g(with)f(new)h Fi(tree_block)150
5897 3482 y Fn(no)s(des.)52 b(The)34 b Fi(block_symtab)e Fn(class)i(pro)m
5898 (vides)f(the)i Fi(new_unique_child)30 b Fn(metho)s(d)k(to)h(create)i(a)
5899 d(new)150 3592 y(sym)m(b)s(ol)28 b(table,)i(giv)m(e)g(it)f(a)h(unique)d
5900 (name,)j(and)f(add)g(it)g(to)h(the)g(list)e(of)i(c)m(hildren.)38
5901 b(The)29 b(unique)e(name)j(is)150 3701 y(created)d(b)m(y)g(app)s
5902 (ending)d(a)j(n)m(um)m(b)s(er)e(to)i(the)g(optional)e(base)i(name.)39
5903 b(If)26 b(the)h(base)f(name)h(is)e(not)i(giv)m(en,)g(it)150
5904 3811 y(defaults)e(to)i(`)p Fi(block)p Fn('.)38 b(This)24
5905 b(metho)s(d)h(is)g(not)i(needed)e(at)i(the)f(global)f(lev)m(el,)i(b)s
5906 (ecause)f(the)g(c)m(hild)e(sym)m(b)s(ol)150 3921 y(tables)30
5907 b(there)h(corresp)s(ond)e(to)i(pro)s(cedures)e(whic)m(h)g(should)g
5908 (already)g(ha)m(v)m(e)j(unique)d(names.)275 4070 y(Finally)-8
5909 b(,)24 b(new)h(v)-5 b(ariable)23 b(de\014nitions)g(can)i(b)s(e)f(added)
5910 g(to)i(an)m(y)f(sym)m(b)s(ol)f(table)g(using)g(the)h
5911 Fi(define_var)150 4180 y Fn(metho)s(d.)49 b(The)33 b(parameters)g(are)h
5912 (the)f(v)-5 b(ariable)32 b(sym)m(b)s(ol)g(and)h(the)h(alignmen)m(t)e
5913 (for)h(the)h(storage)h(to)f(b)s(e)150 4289 y(de\014ned.)49
5914 b(It)33 b(returns)f(a)i(p)s(oin)m(ter)f(to)h(the)f(new)g(v)-5
5915 b(ariable)32 b(de\014nition)g(ob)5 b(ject,)35 b(so)f(that)g(y)m(ou)f
5916 (can)h(attac)m(h)150 4399 y(initial)28 b(data)j(annotations)f(to)h(it.)
5917 150 4694 y Fl(5.5)68 b(Adding)44 b(and)h(Remo)l(ving)h(En)l(tries)275
5918 4902 y Fn(En)m(tries)33 b(in)g(sym)m(b)s(ol)g(tables)h(should)e(alw)m
5919 (a)m(ys)j(b)s(e)f(added)f(and)h(remo)m(v)m(ed)h(using)e(the)i(metho)s
5920 (ds)e(pro-)150 5011 y(vided)e(b)m(y)i(the)g(sym)m(b)s(ol)f(tables.)48
5921 b(Although)32 b(it)h(is)f(p)s(ossible)e(to)k(add)e(and)g(remo)m(v)m(e)j
5922 (en)m(tries)d(b)m(y)h(directly)150 5121 y(manipulating)d(the)j(lists,)g
5923 (that)g(should)e(nev)m(er)i(b)s(e)g(done.)48 b(The)32
5924 b(metho)s(ds)h(for)f(adding)g(and)g(remo)m(ving)150 5230
5925 y(en)m(tries)g(hide)e(the)j(underlying)c(represen)m(tation)j(and)f
5926 (using)g(them)h(will)d(mak)m(e)k(it)f(m)m(uc)m(h)g(easier)g(to)h(up-)
5927 150 5340 y(date)g(y)m(our)f(co)s(de)h(if)e(that)i(represen)m(tation)f
5928 (c)m(hanges.)48 b(Ev)m(en)32 b(more)h(imp)s(ortan)m(tly)-8
5929 b(,)31 b(most)i(sym)m(b)s(ol)e(table)p eop
5930 %%Page: 42 44
5931 42 43 bop 150 -116 a Fn(42)2385 b(The)30 b(SUIF)g(V)-8
5932 b(ersion)30 b(1)h(Library)150 299 y(en)m(tries)37 b(con)m(tain)g(bac)m
5933 (k)h(p)s(oin)m(ters)e(to)i(the)f(tables)g(whic)m(h)f(hold)f(them,)k
5934 (and)e(the)g(adding)f(and)g(remo)m(v-)150 408 y(ing)30
5935 b(metho)s(ds)g(are)h(resp)s(onsible)d(for)i(main)m(taining)f(those)i(p)
5936 s(oin)m(ters)f(and)g(for)h(p)s(erforming)d(a)j(few)g(other)150
5937 518 y(automatic)g(c)m(hec)m(ks)h(and)e(up)s(dates.)275
5938 652 y(T)m(yp)s(es,)35 b(sym)m(b)s(ols,)g(and)f(c)m(hild)f(sym)m(b)s(ol)
5939 h(tables)h(ma)m(y)g(b)s(e)f(added)g(using)g(the)h Fi(add_type)p
5940 Fn(,)f Fi(add_sym)p Fn(,)150 762 y(and)c Fi(add_child)d
5941 Fn(metho)s(ds,)j(resp)s(ectiv)m(ely)-8 b(.)41 b(Eac)m(h)31
5942 b(of)f(these)h(en)m(tries)f(con)m(tains)h(a)f(p)s(oin)m(ter)g(bac)m(k)h
5943 (to)g(the)150 872 y(paren)m(t)23 b(sym)m(b)s(ol)e(table,)k(and)d(these)
5944 h(metho)s(ds)f(automatically)h(set)g(those)g(bac)m(k)h(p)s(oin)m(ters.)
5945 37 b(They)22 b(do)g(not,)150 981 y(ho)m(w)m(ev)m(er,)32
5946 b(p)s(erform)c(an)m(y)i(other)h(sanit)m(y)e(c)m(hec)m(ks,)j(suc)m(h)e
5947 (as)g(c)m(hec)m(king)g(for)g(duplicate)f(names.)40 b(Similarly)-8
5948 b(,)150 1091 y(the)39 b Fi(remove_type)p Fn(,)g Fi(remove_sym)p
5949 Fn(,)g(and)f Fi(remove_child)e Fn(metho)s(ds)j(remo)m(v)m(e)i(t)m(yp)s
5950 (es,)g(sym)m(b)s(ols,)g(and)150 1200 y(c)m(hild)31 b(sym)m(b)s(ol)g
5951 (table)h(en)m(tries.)47 b(These)32 b(metho)s(ds)g(clear)h(the)f(paren)m
5952 (t)h(p)s(oin)m(ters)e(but)h(do)g(not)h(delete)g(the)150
5953 1310 y(en)m(tries)d(that)h(are)g(remo)m(v)m(ed.)275 1444
5954 y(V)-8 b(ariable)25 b(de\014nitions)e(are)k(treated)f(a)h(bit)e
5955 (di\013eren)m(tly)f(from)h(other)i(kinds)c(of)k(sym)m(b)s(ol)d(table)i
5956 (en)m(tries.)150 1554 y(They)i(do)g(not)h(ha)m(v)m(e)h(paren)m(t)e(p)s
5957 (oin)m(ters)g(so)g(the)h Fi(add_def)d Fn(and)i Fi(remove_def)e
5958 Fn(metho)s(ds)i(do)g(not)h(ha)m(v)m(e)g(to)150 1663 y(deal)i(with)e
5959 (that.)44 b(Ho)m(w)m(ev)m(er,)33 b(adding)d(and)g(remo)m(ving)h(v)-5
5960 b(ariable)30 b(de\014nitions)f(c)m(hange)j(some)f(attributes)150
5961 1773 y(of)e(the)h(corresp)s(onding)d(v)-5 b(ariables,)28
5962 b(and)h(those)h(attributes)f(m)m(ust)g(b)s(e)f(automatically)h(up)s
5963 (dated.)39 b(First,)150 1883 y(eac)m(h)e(v)-5 b(ariable)35
5964 b(has)h(a)g(\015ag)g(to)h(indicate)e(whether)g(a)h(v)-5
5965 b(ariable)35 b(de\014nition)f(exists)h(for)h(it.)57 b(A)36
5966 b(v)-5 b(ariable)150 1992 y(cannot)28 b(ha)m(v)m(e)h(more)e(than)g(one)
5967 h(de\014nition,)e(so)i(the)f Fi(add_def)f Fn(metho)s(d)h(will)d(fail)i
5968 (if)h(this)f(\015ag)i(is)e(already)150 2102 y(set.)41
5969 b(Otherwise,)30 b(it)f(sets)i(the)g(\015ag)g(when)e(the)h(new)g
5970 (de\014nition)e(is)i(added.)40 b(Second,)30 b(v)-5 b(ariable)29
5971 b(sym)m(b)s(ols)150 2211 y(also)22 b(ha)m(v)m(e)h(a)f(\015ag)g(to)h
5972 (indicate)d(whether)i(they)g(are)g(actual)g(de\014nitions)d(or)j(just)f
5973 (declarations)g(of)h(sym)m(b)s(ols)150 2321 y(with)36
5974 b(external)h(link)-5 b(age.)59 b(This)35 b Fi(extern)h
5975 Fn(\015ag)h(m)m(ust)g(b)s(e)f(set)i(to)g Fi(FALSE)d Fn(when)h(a)h(v)-5
5976 b(ariable)36 b(de\014nition)150 2430 y(is)h(added)g(for)g(a)h(global)f
5977 (v)-5 b(ariable.)61 b(When)37 b(remo)m(ving)h(a)g(v)-5
5978 b(ariable)36 b(de\014nition,)h(these)h(\015ags)g(m)m(ust)g(b)s(e)150
5979 2540 y(rev)m(ersed.)275 2674 y(Unlik)m(e)24 b(sym)m(b)s(ol)g(no)s(des)g
5980 (whic)m(h)g(alw)m(a)m(ys)i(de\014ne)e(separate)i(sym)m(b)s(ols,)f(m)m
5981 (ultiple)e(t)m(yp)s(e)i(no)s(des)g(can)g(rep-)150 2784
5982 y(resen)m(t)h(the)f(same)g(t)m(yp)s(e.)39 b(The)25 b(basic)f
5983 Fi(add_type)f Fn(metho)s(d)i(will)d(add)j(a)g(new)g(t)m(yp)s(e)g(ev)m
5984 (en)h(if)e(an)g(equiv)-5 b(alen)m(t)150 2894 y(t)m(yp)s(e)37
5985 b(w)m(as)h(already)e(de\014ned)g(in)g(the)h(same)g(scop)s(e.)61
5986 b(In)36 b(most)h(cases,)j(what)d(is)f(actually)h(needed)g(is)f(a)150
5987 3003 y(metho)s(d)28 b(to)g(\014rst)g(c)m(hec)m(k)h(if)e(an)h(equiv)-5
5988 b(alen)m(t)28 b(t)m(yp)s(e)g(exists)g(and)f(if)g(so)i(to)g(thro)m(w)f
5989 (a)m(w)m(a)m(y)i(the)e(duplicate)f(and)150 3113 y(return)37
5990 b(the)h(existing)f(t)m(yp)s(e.)64 b(The)38 b Fi(install_type)c
5991 Fn(metho)s(d)k(pro)m(vides)f(this)g(functionalit)m(y)-8
5992 b(.)63 b(It)38 b(\014rst)150 3222 y(c)m(hec)m(ks)33 b(if)e(a)h(t)m(yp)s
5993 (e)g(has)g(already)f(b)s(een)g(en)m(tered)i(in)d(the)i(sym)m(b)s(ol)f
5994 (table)h(or)f(one)i(of)f(its)f(ancestors)h(using)150
5995 3332 y(the)g Fi(lookup_type)d Fn(metho)s(d.)46 b(If)31
5996 b(so,)i(it)f(deletes)g(the)g(new)g(t)m(yp)s(e)g(and)g(returns)e(the)j
5997 (existing)e(one.)46 b(If)32 b(a)150 3441 y(t)m(yp)s(e)g(is)e(not)i
5998 (found,)e(it)h(is)g(en)m(tered)h(in)m(to)f(the)h(sym)m(b)s(ol)e(table)h
5999 (and)g(returned.)43 b(All)30 b(of)h(the)h(comp)s(onen)m(ts)150
6000 3551 y(of)h(a)h(t)m(yp)s(e)f(are)h(recursiv)m(ely)e(installed)f(b)s
6001 (efore)h(the)i(t)m(yp)s(e)f(itself.)48 b(This)31 b(mak)m(es)j(it)f
6002 (easy)h(to)g(create)g(new)150 3661 y(t)m(yp)s(es)c(without)g(w)m
6003 (orrying)f(ab)s(out)h(duplicate)f(en)m(tries)h(in)f(the)i(sym)m(b)s(ol)
6004 e(tables.)150 3917 y Fl(5.6)68 b(Num)l(b)t(ering)45 b(T)l(yp)t(es)g
6005 (and)f(Sym)l(b)t(ols)275 4110 y Fn(Ev)m(ery)38 b(sym)m(b)s(ol)g(and)f
6006 (t)m(yp)s(e)i(is)f(assigned)f(an)i(ID)f(n)m(um)m(b)s(er)g(that)h
6007 (uniquely)d(iden)m(ti\014es)h(it)h(within)e(a)150 4219
6008 y(particular)j(con)m(text.)74 b(These)41 b(ID)g(n)m(um)m(b)s(ers)e
6009 (should)g(b)s(e)h(used)g(to)i(refer)e(to)i(sym)m(b)s(ols)d(and)h(t)m
6010 (yp)s(es)h(in)150 4329 y(annotations)32 b(that)h(will)d(b)s(e)i
6011 (written)f(to)j(the)e(output)g(\014les)f(and)h(in)f(other)i(situations)
6012 e(where)h(p)s(oin)m(ters)150 4439 y(to)26 b(the)g(sym)m(b)s(ol)e(and)h
6013 (t)m(yp)s(e)h(no)s(des)f(cannot)h(b)s(e)f(used.)38 b(The)25
6014 b Fi(sym_id)f Fn(metho)s(d)h(retriev)m(es)h(the)f(ID)h(n)m(um)m(b)s(er)
6015 150 4548 y(for)k(a)h(sym)m(b)s(ol,)e(and)h(the)h Fi(type_id)d
6016 Fn(metho)s(d)i(gets)h(the)g(n)m(um)m(b)s(er)e(for)h(a)h(t)m(yp)s(e.)275
6017 4682 y(F)-8 b(or)30 b(sym)m(b)s(ols)e(and)h(t)m(yp)s(es)h(within)d(a)j
6018 (pro)s(cedure,)f(the)h(ID)g(n)m(um)m(b)s(ers)e(are)i(only)f(unique)e
6019 (within)g(that)150 4792 y(pro)s(cedure.)39 b(Similarly)-8
6020 b(,)27 b(the)j(ID)g(n)m(um)m(b)s(ers)e(for)i(sym)m(b)s(ols)e(and)h(t)m
6021 (yp)s(es)h(in)f(a)h(\014le)f(sym)m(b)s(ol)f(table)i(are)g(only)150
6022 4902 y(unique)g(within)f(that)k(\014le.)44 b(Only)31
6023 b(in)f(the)i(global)g(sym)m(b)s(ol)e(table)i(are)g(the)g(ID)h(n)m(um)m
6024 (b)s(ers)d(truly)h(unique.)150 5011 y(This)e(is)h(implemen)m(ted)f(b)m
6025 (y)h(dividing)e(the)i(ID)h(n)m(um)m(b)s(ers)e(in)m(to)i(three)g
6026 (ranges.)42 b(Eac)m(h)31 b(range)g(is)f(reserv)m(ed)150
6027 5121 y(for)25 b(a)h(particular)e(lev)m(el)h(in)f(the)i(sym)m(b)s(ol)e
6028 (table)h(hierarc)m(h)m(y)-8 b(.)39 b(T)-8 b(o)26 b(mak)m(e)g(it)f
6029 (easier)h(to)g(read)f(an)g(ID)h(n)m(um)m(b)s(er,)150
6030 5230 y(the)k Fi(print_id_number)c Fn(function)i(prin)m(ts)h(it)g(as)h
6031 (a)h(c)m(haracter)g(to)g(iden)m(tify)d(the)i(range)g(\(`)p
6032 Fi(g)p Fn(')h(for)e(global,)150 5340 y(`)p Fi(f)p Fn(')i(for)f(\014le,)
6033 f(`)p Fi(p)p Fn(')i(for)f(pro)s(cedure\))g(com)m(bined)f(with)g(the)i
6034 (o\013set)g(of)g(the)f(n)m(um)m(b)s(er)f(within)f(that)j(range.)p
6036 %%Page: 43 45
6037 43 44 bop 150 -116 a Fn(Chapter)30 b(5:)41 b(Sym)m(b)s(ol)29
6038 b(T)-8 b(ables)2462 b(43)275 299 y(The)24 b(sym)m(b)s(ol)g(and)g(t)m
6039 (yp)s(e)h(ID)g(n)m(um)m(b)s(ers)f(cannot)h(b)s(e)g(assigned)f
6040 (individually)-8 b(,)21 b(but)j(the)h(sym)m(b)s(ol)f(tables)150
6041 408 y(pro)m(vide)42 b(metho)s(ds)g(to)h(set)g(them.)78
6042 b(The)42 b Fi(number_globals)d Fn(metho)s(d)j(is)f(de\014ned)h(in)f
6043 (the)i Fi(global_)150 518 y(symtab)24 b Fn(class)h(to)h(n)m(um)m(b)s
6044 (er)e(the)h(en)m(tries)g(in)f(global)h(and)g(\014le)f(sym)m(b)s(ol)g
6045 (tables,)i(and)f(the)h Fi(number_locals)150 628 y Fn(metho)s(d)34
6046 b(is)f(de\014ned)g(in)g(the)i Fi(proc_symtab)c Fn(class)j(to)h(n)m(um)m
6047 (b)s(er)e(all)g(of)i(the)f(en)m(tries)h(in)e(the)h(pro)s(cedure)150
6048 737 y(sym)m(b)s(ol)d(table)g(and)h(its)f(descenden)m(ts.)45
6049 b(These)32 b(metho)s(ds)f(only)g(assign)g(ID)h(n)m(um)m(b)s(ers)e(to)j
6050 (sym)m(b)s(ols)e(and)150 847 y(t)m(yp)s(es)37 b(that)g(do)f(not)h
6051 (already)f(ha)m(v)m(e)i(n)m(um)m(b)s(ers.)58 b(These)36
6052 b(metho)s(ds)g(are)h(called)f(automatically)g(b)s(efore)150
6053 956 y(writing)23 b(things)i(out)g(to)i(\014les,)e(but)g(they)h(can)f
6054 (also)h(b)s(e)e(called)h(whenev)m(er)g(y)m(ou)h(w)m(an)m(t)g(to)h
6055 (assign)d(n)m(um)m(b)s(ers)150 1066 y(to)31 b(new)f(sym)m(b)s(ols)f
6056 (and)h(t)m(yp)s(es.)275 1200 y(The)35 b Fi(clear_sym_id)f
6057 Fn(sym)m(b)s(ol)h(metho)s(d)h(and)g Fi(clear_type_id)c
6058 Fn(metho)s(d)k(are)h(pro)m(vided)e(to)i(reset)150 1310
6059 y(the)31 b(ID)g(n)m(um)m(b)s(ers)e(to)i(zero)h(man)m(ually)-8
6060 b(,)30 b(but)g(as)h(far)f(as)h(the)g(library)d(itself)i(is)f
6061 (concerned,)i(this)f(is)g(nev)m(er)150 1420 y(necessary)-8
6062 b(.)63 b(The)37 b(library)f(automatically)h(c)m(hanges)i(ID)e(n)m(um)m
6063 (b)s(ers)g(when)f(necessary)-8 b(,)41 b(suc)m(h)c(as)h(when)150
6064 1529 y(mo)m(ving)30 b(from)g(one)h(sym)m(b)s(ol)e(table)h(to)h
6065 (another.)p eop
6066 %%Page: 44 46
6067 44 45 bop 150 -116 a Fn(44)2385 b(The)30 b(SUIF)g(V)-8
6068 b(ersion)30 b(1)h(Library)p eop
6069 %%Page: 45 47
6070 45 46 bop 150 -116 a Fn(Chapter)30 b(6:)41 b(Sym)m(b)s(ols)2711
6071 b(45)150 299 y Fj(6)80 b(Sym)l(b)t(ols)275 503 y Fn(SUIF)29
6072 b(sym)m(b)s(ols)f(are)i(stored)f(in)f(the)i(sym)m(b)s(ol)e(tables)i
6073 (\(see)g(Chapter)f(5)h([Sym)m(b)s(ol)e(T)-8 b(ables],)30
6074 b(page)g(37\))150 613 y(to)j(represen)m(t)f(v)-5 b(ariables,)32
6075 b(lab)s(els,)f(and)h(pro)s(cedures.)45 b(The)32 b Fi(sym_node)e
6076 Fn(class)i(is)g(the)g(base)h(class)f(for)g(all)150 722
6077 y(SUIF)38 b(sym)m(b)s(ols.)65 b(This)37 b(is)g(an)i(abstract)h(class)e
6078 (so)h(it)f(cannot)i(b)s(e)e(used)g(directly)-8 b(.)64
6079 b(The)39 b(library)d(also)150 832 y(de\014nes)c(the)h
6080 Fi(sym_node_list)c Fn(class)k(for)g(lists)e(of)i(p)s(oin)m(ters)f(to)i
6081 (sym)m(b)s(ols.)47 b(Classes)32 b(are)h(deriv)m(ed)f(from)150
6082 942 y(the)g Fi(sym_node)e Fn(class)i(for)g(eac)m(h)h(kind)e(of)h(sym)m
6083 (b)s(ol.)45 b(Giv)m(en)32 b(an)g(arbitrary)f(sym)m(b)s(ol,)g(the)i
6084 Fi(kind)d Fn(metho)s(d)150 1051 y(iden)m(ti\014es)i(the)h(kind)e(of)i
6085 (sym)m(b)s(ol)f(and)g(th)m(us)h(the)g(deriv)m(ed)g(class)f(to)i(whic)m
6086 (h)e(it)h(b)s(elongs.)47 b(This)31 b(metho)s(d)150 1161
6087 y(returns)g(a)i(v)-5 b(alue)32 b(from)f(the)i Fi(sym_kinds)d
6088 Fn(en)m(umerated)i(t)m(yp)s(e.)47 b(The)32 b(follo)m(wing)f(v)-5
6089 b(alues)31 b(are)i(de\014ned)e(in)150 1270 y(that)g(en)m(umeration:)150
6090 1418 y Fi(SYM_VAR)84 b Fn(V)-8 b(ariable)30 b(sym)m(b)s(ol.)39
6091 b(The)30 b Fi(var_sym)f Fn(class)h(represen)m(ts)g(v)-5
6092 b(ariable)29 b(sym)m(b)s(ols.)150 1565 y Fi(SYM_LABEL)630
6093 1675 y Fn(Lab)s(el)g(sym)m(b)s(ol.)40 b(The)30 b Fi(label_sym)d
6094 Fn(class)k(represen)m(ts)f(lab)s(el)f(sym)m(b)s(ols.)150
6095 1822 y Fi(SYM_PROC)36 b Fn(Pro)s(cedure)30 b(sym)m(b)s(ol.)39
6096 b(The)30 b Fi(proc_sym)e Fn(class)i(represen)m(ts)g(pro)s(cedure)g(sym)
6097 m(b)s(ols.)275 1970 y(All)25 b(sym)m(b)s(ols)g(share)h(some)h(common)f
6098 (\014elds)f(including)e(the)k(sym)m(b)s(ol)e(names.)39
6099 b(These)26 b(are)h(describ)s(ed)150 2079 y(in)d(the)i(\014rst)f
6100 (section)g(b)s(elo)m(w.)39 b(Eac)m(h)26 b(kind)d(of)j(sym)m(b)s(ol)e
6101 (also)i(uses)f(additional)e(\014elds)h(that)i(are)g(sp)s(eci\014c)e(to)
6102 150 2189 y(that)i(kind.)37 b(F)-8 b(or)25 b(example,)h(v)-5
6103 b(ariable)24 b(sym)m(b)s(ols)g(sp)s(ecify)f(the)i(t)m(yp)s(es)g(of)g
6104 (the)h(v)-5 b(ariables.)37 b(The)25 b(subsequen)m(t)150
6105 2299 y(sections)30 b(describ)s(e)f(the)i(sp)s(eci\014c)e(features)i(of)
6106 f(eac)m(h)i(kind)c(of)j(sym)m(b)s(ol.)275 2427 y(The)e(`)p
6107 Fi(symbols.h)p Fn(')g(and)h(`)p Fi(symbols.cc)p Fn(')e(\014les)h(con)m
6108 (tain)i(the)f(source)h(co)s(de)f(for)g(SUIF)h(sym)m(b)s(ols.)150
6109 2667 y Fl(6.1)68 b(Basic)45 b(F)-11 b(eatures)45 b(of)h(Sym)l(b)t(ols)
6110 275 2853 y Fn(The)24 b Fi(sym_node)e Fn(class)j(de\014nes)f(sev)m(eral)
6111 h(\014elds)e(that)i(are)g(used)f(b)m(y)h(all)e(kinds)g(of)i(sym)m(b)s
6112 (ols.)37 b(The)25 b(most)150 2963 y(ob)m(vious)g(of)g(these)h(is)f(the)
6113 g(sym)m(b)s(ol)f(name.)39 b(Eac)m(h)26 b(sym)m(b)s(ol)f(has)g(a)g(name)
6114 h(that)g(should)d(b)s(e)i(unique)e(within)150 3072 y(the)37
6115 b(sym)m(b)s(ol)f(table)i(where)e(it)h(is)f(de\014ned.)60
6116 b(The)37 b Fi(name)f Fn(and)h Fi(set_name)e Fn(metho)s(ds)h(access)j
6117 (this)d(\014eld.)150 3182 y(The)26 b(names)h(are)g(automatically)g(en)m
6118 (tered)g(in)f(the)h(lexicon)f(\(see)i(Section)e(12.3)i([Lexicon],)g
6119 (page)g(84\))g(b)m(y)150 3292 y Fi(set_name)p Fn(.)37
6120 b(Because)29 b(the)f(name)f(of)g(a)h(sym)m(b)s(ol)e(alone)h(is)g
6121 (generally)f(insu\016cien)m(t)g(to)i(uniquely)c(iden)m(tify)150
6122 3401 y(it,)h(the)g(sym)m(b)s(ols)e(are)i(also)f(giv)m(en)g(ID)h(n)m(um)
6123 m(b)s(ers.)37 b(See)25 b(Section)f(5.6)h([Num)m(b)s(ering)e(T)m(yp)s
6124 (es)g(and)h(Sym)m(b)s(ols],)150 3511 y(page)31 b(42.)275
6125 3639 y(When)g(a)h(sym)m(b)s(ol)f(is)f(en)m(tered)j(in)d(a)i(sym)m(b)s
6126 (ol)f(table,)h(it)f(automatically)h(records)f(a)h(p)s(oin)m(ter)f(to)h
6127 (that)150 3749 y(paren)m(t)42 b(table.)74 b(Similarly)-8
6128 b(,)41 b(when)f(the)i(sym)m(b)s(ol)e(is)h(remo)m(v)m(ed)h(from)f(the)h
6129 (sym)m(b)s(ol)e(table,)45 b(its)c(paren)m(t)150 3858
6130 y(p)s(oin)m(ter)29 b(is)h(cleared.)40 b(The)30 b Fi(parent)f
6131 Fn(metho)s(d)h(retriev)m(es)g(this)g(paren)m(t)g(p)s(oin)m(ter.)275
6132 3987 y(All)39 b(sym)m(b)s(ols)g(con)m(tain)h(\015ags)h(to)g(sp)s(ecify)
6133 e(v)-5 b(arious)40 b(attributes.)71 b(The)40 b Fi(sym_node)e
6134 Fn(class)i(pro)m(vides)150 4097 y(metho)s(ds)35 b(to)h(access)h(these)f
6135 (\015ags.)57 b(The)35 b Fi(is_userdef)e Fn(metho)s(d)i(tests)h(a)g
6136 (\015ag)g(to)h(see)f(if)e(it)i(is)e(a)i(user-)150 4206
6137 y(de\014ned)d(sym)m(b)s(ol)g(\(from)h(the)h(source)f(co)s(de\))h(or)f
6138 (a)h(new)e(sym)m(b)s(ol)g(in)m(tro)s(duced)g(b)m(y)h(the)h(compiler.)50
6139 b(The)150 4316 y Fi(set_userdef)27 b Fn(and)j Fi(reset_userdef)d
6140 Fn(metho)s(ds)i(c)m(hange)j(the)f(v)-5 b(alue)29 b(of)i(this)e(\015ag.)
6141 275 4444 y(Another)38 b(\015ag)h(is)e(used)h(to)h(mark)f(sym)m(b)s(ols)
6142 f(that)i(are)g(only)e(declarations)h(of)h(external)f(sym)m(b)s(ols,)150
6143 4554 y(rather)44 b(than)g(actual)g(de\014nitions.)80
6144 b(This)42 b(\015ag)i(is)g(set)g(automatically)-8 b(.)82
6145 b(The)44 b Fi(is_extern)d Fn(metho)s(d)150 4663 y(retriev)m(es)32
6146 b(its)e(v)-5 b(alue.)43 b(Lab)s(el)30 b(sym)m(b)s(ols)g(are)i(nev)m(er)
6147 f Fi(extern)p Fn(.)42 b(A)32 b(pro)s(cedure)e(sym)m(b)s(ol)g(is)g
6148 Fi(extern)g Fn(unless)150 4773 y(the)c(pro)s(cedure)e(b)s(o)s(dy)g(is)g
6149 (de\014ned)g(in)g(the)i(input)d(\014le\(s\).)39 b(A)26
6150 b(global)e(v)-5 b(ariable)24 b(sym)m(b)s(ol)h(is)f Fi(extern)g
6151 Fn(unless)150 4883 y(it)42 b(has)h(a)g(separate)g(de\014nition)e(\(see)
6152 i(Section)g(6.4.3)h([V)-8 b(ariable)43 b(De\014nitions],)h(page)g
6153 (51\);)50 b(no)43 b(other)150 4992 y(v)-5 b(ariables)29
6154 b(are)i Fi(extern)p Fn(.)275 5121 y(Since)d(sym)m(b)s(ols)g(ma)m(y)h(b)
6155 s(e)g(treated)h(di\013eren)m(tly)e(dep)s(ending)f(on)i(their)f(scop)s
6156 (es,)i(the)f Fi(sym_node)e Fn(class)150 5230 y(includes)37
6157 b(metho)s(ds)h(to)i(determine)f(whic)m(h)f(kind)f(of)j(sym)m(b)s(ol)e
6158 (table)h(con)m(tains)g(a)h(sym)m(b)s(ol.)66 b(The)39
6159 b Fi(is_)150 5340 y(global)d Fn(metho)s(d)h(c)m(hec)m(ks)j(if)c(the)i
6160 (paren)m(t)g(table)g(is)f(a)h(global)f(or)h(\014le)f(sym)m(b)s(ol)f
6161 (table.)63 b(This)36 b(is)h(really)p eop
6162 %%Page: 46 48
6163 46 47 bop 150 -116 a Fn(46)2385 b(The)30 b(SUIF)g(V)-8
6164 b(ersion)30 b(1)h(Library)150 299 y(only)d(useful)g(for)h(v)-5
6165 b(ariable)28 b(sym)m(b)s(ols,)g(b)s(ecause)i(pro)s(cedures)e(are)h(alw)
6166 m(a)m(ys)h(global)f(and)f(lab)s(els)g(are)i(nev)m(er)150
6167 408 y(global.)43 b(The)31 b Fi(is_private)d Fn(metho)s(d)j(c)m(hec)m
6168 (ks)i(if)d(a)i(sym)m(b)s(ol)e(is)g(global)h(but)g(priv)-5
6169 b(ate)31 b(to)h(one)f(source)h(\014le)150 518 y(b)m(y)j(c)m(hec)m(king)
6170 h(if)e(the)h(paren)m(t)h(sym)m(b)s(ol)e(table)h(is)f(a)h(\014le)g(sym)m
6171 (b)s(ol)f(table.)54 b(This)34 b(is)g(ob)m(viously)g(irrelev)-5
6172 b(an)m(t)150 628 y(for)30 b(lab)s(el)f(sym)m(b)s(ols.)275
6173 765 y(The)22 b Fi(add_to_table)d Fn(and)j Fi(remove_from_table)c
6174 Fn(metho)s(ds)k(are)h(pro)m(vided)f(for)g(con)m(v)m(enience)i(when)150
6175 875 y(adding)i(or)i(remo)m(ving)f(sym)m(b)s(ols)g(from)g(sym)m(b)s(ol)f
6176 (tables.)40 b(In)26 b(the)i(case)h(of)f(v)-5 b(ariable)26
6177 b(sym)m(b)s(ols,)h(the)h(en)m(tire)150 984 y(hierarc)m(h)m(y)j(of)h
6178 (sub-v)-5 b(ariables)29 b(\(see)k(Section)e(6.4.2)j([Sub-V)-8
6179 b(ariables],)31 b(page)h(49\))h(is)d(added)h(or)h(remo)m(v)m(ed)150
6180 1094 y(at)f(one)g(time)f(b)m(y)g(this)f(metho)s(d.)275
6181 1232 y(The)i Fi(copy)f Fn(metho)s(d)i(mak)m(es)g(a)g(cop)m(y)h(of)f(a)g
6182 (sym)m(b)s(ol.)43 b(This)30 b(is)h(a)h(virtual)e(function)h(so)h(it)f
6183 (copies)h(the)150 1341 y(\014elds)j(that)h(are)h(sp)s(eci\014c)e(to)i
6184 (eac)m(h)g(kind)d(of)i(sym)m(b)s(ol.)57 b(Ho)m(w)m(ev)m(er,)40
6185 b(it)c(only)f(copies)h(the)g(sym)m(b)s(ol)f(itself:)150
6186 1451 y(cop)m(ying)23 b(a)g(pro)s(cedure)f(sym)m(b)s(ol)g(will)e(not)j
6187 (cop)m(y)h(the)f(pro)s(cedure)f(b)s(o)s(dy)f(and)h(cop)m(ying)h(a)g(v)
6188 -5 b(ariable)22 b(sym)m(b)s(ol)150 1560 y(will)31 b(not)j(cop)m(y)g
6189 (the)g(v)-5 b(ariable)32 b(de\014nition.)48 b(The)34
6190 b Fi(copy)e Fn(metho)s(d)h(do)s(es)g(not)h(cop)m(y)h(annotations)e(on)h
6191 (the)150 1670 y(sym)m(b)s(ol,)h(either.)53 b(Since)33
6192 b(the)i(cop)m(y)g(will)d(ha)m(v)m(e)k(the)f(same)g(name)g(as)g(the)f
6193 (original)f(sym)m(b)s(ol,)i(it)f(should)150 1780 y(generally)c(b)s(e)f
6194 (renamed)h(or)h(used)e(in)g(a)i(di\013eren)m(t)f(sym)m(b)s(ol)f(table.)
6195 275 1917 y(Tw)m(o)d(di\013eren)m(t)g(metho)s(ds)g(are)h(a)m(v)-5
6196 b(ailable)25 b(for)i(prin)m(ting)d(sym)m(b)s(ols.)38
6197 b(The)26 b Fi(print)f Fn(metho)s(d)h(just)f(prin)m(ts)150
6198 2027 y(the)k(name)g(of)g(the)g(sym)m(b)s(ol.)39 b(Lab)s(el)27
6199 b(sym)m(b)s(ols)h(are)h(pre\014xed)f(b)m(y)g(`)p Fi(L:)p
6200 Fn(')h(and)f(pro)s(cedure)g(sym)m(b)s(ols)f(b)m(y)i(`)p
6201 Fi(P:)p Fn(')150 2137 y(to)h(distinguish)25 b(them)k(from)g(v)-5
6202 b(ariable)28 b(sym)m(b)s(ols.)39 b(The)29 b Fi(print_full)d
6203 Fn(metho)s(d)i(is)h(used)f(b)m(y)h(the)g(library)150
6204 2246 y(when)g(listing)g(the)h(con)m(ten)m(ts)i(of)f(sym)m(b)s(ol)e
6205 (tables.)40 b(It)31 b(includes)d(all)h(the)i(\014elds)e(from)g(the)i
6206 Fi(sym_node)p Fn(.)150 2511 y Fl(6.2)68 b(Pro)t(cedure)45
6207 b(Sym)l(b)t(ols)275 2707 y Fn(Pro)s(cedure)38 b(sym)m(b)s(ols)g(are)h
6208 (represen)m(ted)h(b)m(y)f(ob)5 b(jects)40 b(of)f(the)h
6209 Fi(proc_sym)d Fn(class.)67 b(SUIF)39 b(do)s(es)g(not)150
6210 2817 y(supp)s(ort)28 b(nested)h(pro)s(cedures,)g(so)g(these)h(sym)m(b)s
6211 (ols)e(ma)m(y)i(only)e(b)s(e)h(en)m(tered)h(in)e(global)h(and)g(\014le)
6212 f(sym)m(b)s(ol)150 2926 y(tables.)50 b(The)33 b(\014elds)f(in)g(a)i
6213 (pro)s(cedure)e(sym)m(b)s(ol)g(hold)g(information)g(ab)s(out)h(the)h
6214 (pro)s(cedure,)f(including)150 3036 y(a)40 b(p)s(oin)m(ter)e(to)i(the)g
6215 (b)s(o)s(dy)d(if)i(it)g(is)f(in)g(memory)-8 b(.)68 b(The)39
6216 b Fi(proc_sym)e Fn(class)i(also)g(pro)m(vides)g(metho)s(ds)f(to)150
6217 3146 y(read)29 b(pro)s(cedure)e(b)s(o)s(dies)g(from)i(input)e(\014les,)
6218 h(write)g(them)h(to)g(the)g(output)g(\014les,)f(and)g(\015ush)g(them)g
6219 (from)150 3255 y(memory)-8 b(.)275 3393 y(Eac)m(h)42
6220 b(pro)s(cedure)e(sym)m(b)s(ol)g(con)m(tains)h(a)h(\014eld)e(to)i
6221 (record)f(the)h(source)f(language)h(for)f(the)h(pro)s(ce-)150
6222 3502 y(dure.)c(The)26 b Fi(src_lang)e Fn(and)i Fi(set_src_lang)d
6223 Fn(metho)s(ds)i(access)j(this)d(\014eld,)h(whic)m(h)f(holds)g(a)i(v)-5
6224 b(alue)25 b(from)150 3612 y Fi(src_lang_type)i Fn(en)m(umeration:)40
6225 b Fi(src_unknown)p Fn(,)28 b Fi(src_c)p Fn(,)h Fi(src_fortran)p
6226 Fn(,)f(or)i Fi(src_verilog)p Fn(.)38 b(Other)150 3722
6227 y(v)-5 b(alues)30 b(ma)m(y)h(b)s(e)e(added)h(in)f(the)i(future.)275
6228 3859 y(A)g(pro)s(cedure)g(sym)m(b)s(ol)f(also)i(has)f(a)h(\014eld)e
6229 (that)i(sp)s(eci\014es)f(the)g(t)m(yp)s(e)h(of)g(the)g(pro)s(cedure.)43
6230 b(The)31 b Fi(type)150 3969 y Fn(and)i Fi(set_type)f
6231 Fn(metho)s(ds)h(retriev)m(e)i(and)e(c)m(hange)i(this)e(\014eld.)50
6232 b(The)33 b(t)m(yp)s(e)h(m)m(ust)g(b)s(e)g(a)g(function)f(t)m(yp)s(e.)
6233 150 4078 y(See)e(Section)f(7.5)h([F)-8 b(unction)31 b(T)m(yp)s(es],)f
6234 (page)h(57.)275 4216 y(The)42 b(b)s(o)s(dy)g(of)h(a)h(pro)s(cedure)e
6235 (is)g(represen)m(ted)i(b)m(y)f(its)f(abstract)j(syn)m(tax)e(tree.)80
6236 b(See)44 b(Chapter)f(3)150 4326 y([T)-8 b(rees],)39 b(page)f(11.)60
6237 b(The)36 b(pro)s(cedure)g(sym)m(b)s(ol)f(con)m(tains)i(a)g(p)s(oin)m
6238 (ter)f(to)i(the)e(ro)s(ot)i(no)s(de)e(of)g(this)g(tree.)150
6239 4435 y(The)31 b Fi(block)f Fn(and)g Fi(set_block)f Fn(metho)s(ds)h
6240 (access)j(this)d(p)s(oin)m(ter.)42 b(If)31 b(the)g(b)s(o)s(dy)f(is)g
6241 (not)i(in)e(memory)-8 b(,)32 b(the)150 4545 y Fi(block)c
6242 Fn(p)s(oin)m(ter)h(will)e(b)s(e)i Fi(NULL)p Fn(;)h(the)g
6243 Fi(is_in_memory)c Fn(metho)s(d)j(is)g(pro)m(vided)f(to)j(c)m(hec)m(k)g
6244 (this)e(condition.)275 4682 y(The)34 b Fi(proc_sym)e
6245 Fn(class)j(con)m(tains)g(the)g(metho)s(ds)f(to)i(read)e(pro)s(cedure)g
6246 (b)s(o)s(dies)f(from)h(binary)f(SUIF)150 4792 y(\014les)k(and)g(to)i
6247 (write)e(them)h(out)h(again.)64 b(The)37 b(details)g(of)h(SUIF)g(I/O)g
6248 (are)h(th)m(us)e(hidden)f(from)i(users;)150 4902 y(only)30
6249 b(en)m(tire)h(pro)s(cedures)e(can)j(b)s(e)e(read)h(and)f(written.)41
6250 b(If)30 b(one)i(of)f(the)g(input)e(\014les)g(con)m(tains)i(the)h(b)s(o)
6251 s(dy)150 5011 y(for)e(a)h(pro)s(cedure,)e(a)i(p)s(oin)m(ter)e(to)i(the)
6252 f(\014le)g(set)h(en)m(try)f(\(see)h(Section)f(2.2)i([File)d(Set)i(En)m
6253 (tries],)f(page)h(8\))g(is)150 5121 y(recorded)f(in)f(the)i(pro)s
6254 (cedure)e(sym)m(b)s(ol.)40 b(The)30 b Fi(file)f Fn(metho)s(d)h(retriev)
6255 m(es)h(this)e(p)s(oin)m(ter)h(for)g(a)h(particular)150
6256 5230 y Fi(proc_sym)p Fn(.)41 b(The)31 b(same)g(pro)s(cedure)f(can)i(b)s
6257 (e)e(read)h(in)f(and)h(\015ushed)e(from)i(memory)g(man)m(y)g(times,)h
6258 (but)150 5340 y(once)41 b(it)f(has)f(b)s(een)h(written)f(out)h(it)g
6259 (can)h(no)f(longer)f(b)s(e)h(read)g(or)g(written)f(again.)70
6260 b(The)40 b(pro)s(cedure)p eop
6261 %%Page: 47 49
6262 47 48 bop 150 -116 a Fn(Chapter)30 b(6:)41 b(Sym)m(b)s(ols)2711
6263 b(47)150 299 y(sym)m(b)s(ol)30 b(con)m(tains)i(a)g(\015ag)f(to)h
6264 (indicate)f(if)f(it)h(has)g(b)s(een)g(written)f(out)i(y)m(et.)45
6265 b(The)31 b Fi(is_written)d Fn(metho)s(d)150 408 y(returns)d(the)h(v)-5
6266 b(alue)25 b(of)h(this)f(\015ag.)39 b(The)26 b Fi(is_readable)d
6267 Fn(metho)s(d)i(c)m(hec)m(ks)i(if)e(the)h(pro)s(cedure)f(b)s(o)s(dy)f
6268 (exists)150 518 y(in)39 b(one)i(of)g(the)f(input)f(\014les)h(and)f(if)h
6269 (it)g(has)g(not)h(y)m(et)h(b)s(een)e(written)f(out.)72
6270 b(If)40 b(this)f(metho)s(d)h(returns)150 628 y Fi(TRUE)p
6271 Fn(,)33 b(the)g Fi(read_proc)e Fn(metho)s(d)h(can)i(b)s(e)e(used)h(to)h
6272 (read)f(the)g(b)s(o)s(dy)f(of)h(the)g(pro)s(cedure.)48
6273 b(By)33 b(default,)150 737 y Fi(read_proc)26 b Fn(also)i(con)m(v)m
6274 (erts)i(the)e(pro)s(cedure)f(to)i(expression)e(tree)i(form)f(\(see)h
6275 (Section)f(4.3)h([Expression)150 847 y(T)-8 b(rees],)27
6276 b(page)e(28\))h(but)e(it)g(do)s(es)h(not)g(con)m(v)m(ert)h(to)g(F)-8
6277 b(ortran)25 b(form)f(\(see)i(Chapter)e(10)i([F)-8 b(ortran],)27
6278 b(page)e(77\).)150 956 y(The)31 b Fi(exp_trees)f Fn(and)h
6279 Fi(use_fortran_form)c Fn(parameters)32 b(to)h Fi(read_proc)c
6280 Fn(can)j(b)s(e)f(used)g(to)i(o)m(v)m(erride)150 1066
6281 y(these)e(defaults.)275 1217 y(After)d(a)h(pro)s(cedure)e(b)s(o)s(dy)f
6282 (has)i(b)s(een)f(read)i(in)d(and)i(p)s(ossibly)d(mo)s(di\014ed,)i(it)h
6283 (can)g(b)s(e)g(written)f(to)i(the)150 1326 y(output)e(\014le)g(using)f
6284 (the)i(pro)s(cedure)e(sym)m(b)s(ol's)g Fi(write_proc)f
6285 Fn(metho)s(d.)39 b(Y)-8 b(ou)28 b(m)m(ust)g(sp)s(ecify)e(the)i(\014le)e
6286 (set)150 1436 y(en)m(try)34 b(to)h(whic)m(h)e(the)i(pro)s(cedure)e
6287 (should)f(b)s(e)i(written.)51 b(In)34 b(most)g(cases,)j(the)d(input)e
6288 (and)i(output)g(\014le)150 1546 y(set)c(en)m(try)g(will)d(b)s(e)j(the)g
6289 (same,)g(and)f(y)m(ou)h(will)e(just)h(use)g(the)h Fi(file)f
6290 Fn(metho)s(d)g(to)h(determine)f(the)h(output)150 1655
6291 y(\014le)38 b(set)h(en)m(try)-8 b(.)66 b(As)39 b(men)m(tioned)f(ab)s(o)
6292 m(v)m(e,)k(once)e(a)f(pro)s(cedure)e(has)i(b)s(een)e(written)h(out)h
6293 (it)f(cannot)i(b)s(e)150 1765 y(rewritten)25 b(or)h(read)f(in)g(again.)
6294 39 b(Ob)m(viously)-8 b(,)25 b(it)h(should)e(not)i(b)s(e)f(c)m(hanged)h
6295 (after)h(that)f(p)s(oin)m(t)f(b)s(ecause)h(the)150 1874
6296 y(c)m(hanges)35 b(could)d(not)i(b)s(e)f(sa)m(v)m(ed.)51
6297 b(Besides)33 b(a)m(v)m(oiding)g(c)m(hanges)i(directly)d(to)i(the)g(pro)
6298 s(cedure,)f(ho)m(w)m(ev)m(er,)150 1984 y(y)m(ou)28 b(m)m(ust)g(also)f
6299 (b)s(e)g(careful)h(to)g(a)m(v)m(oid)g(certain)g(c)m(hanges)h(to)f(the)g
6300 (global)f(sym)m(b)s(ol)g(tables.)39 b(The)27 b(sym)m(b)s(ols)150
6301 2093 y(and)36 b(t)m(yp)s(es)h(within)d(the)j(pro)s(cedure)f(are)h
6302 (written)f(out)h(using)f(their)f(ID)i(n)m(um)m(b)s(ers.)59
6303 b(See)37 b(Section)g(5.6)150 2203 y([Num)m(b)s(ering)32
6304 b(T)m(yp)s(es)g(and)h(Sym)m(b)s(ols],)g(page)h(42.)51
6305 b(Th)m(us,)33 b(y)m(ou)h(m)m(ust)f(not)h(do)f(an)m(ything)g(to)h(the)g
6306 (global)150 2313 y(sym)m(b)s(ol)25 b(tables)h(that)h(w)m(ould)f(cause)h
6307 (the)f(ID)h(n)m(um)m(b)s(ers)e(for)h(those)h(sym)m(b)s(ols)e(and)h(t)m
6308 (yp)s(es)g(to)i(c)m(hange.)40 b(F)-8 b(or)150 2422 y(example,)26
6309 b(mo)m(ving)f(a)h(sym)m(b)s(ol)e(from)g(a)i(\014le)e(sym)m(b)s(ol)g
6310 (table)h(to)h(the)g(global)e(sym)m(b)s(ol)g(table)h(w)m(ould)f(require)
6311 150 2532 y(that)38 b(its)e(ID)h(n)m(um)m(b)s(er)f(c)m(hange.)62
6312 b(The)36 b(b)s(est)h(solution)f(to)h(this)f(is)g(to)i(not)f(write)g
6313 (out)g(the)g(pro)s(cedures)150 2641 y(un)m(til)29 b(y)m(ou)h(are)h
6314 (certain)f(that)h(suc)m(h)f(c)m(hanges)i(to)f(the)f(sym)m(b)s(ol)g
6315 (tables)g(will)d(not)k(b)s(e)f(needed.)275 2792 y(When)39
6316 b(a)h(pro)s(cedure)f(b)s(o)s(dy)f(is)h(no)h(longer)f(needed,)j(t)m
6317 (ypically)d(after)h(it)g(has)f(b)s(een)h(written)e(out,)150
6318 2902 y(call)f(the)h Fi(flush_proc)d Fn(metho)s(d)j(for)f(the)h(pro)s
6319 (cedure)f(sym)m(b)s(ol)g(to)h(deallo)s(cate)h(the)f(storage)h(used)e(b)
6320 m(y)150 3011 y(the)h(pro)s(cedure.)61 b(In)37 b(some)h(cases,)i(y)m(ou)
6321 e(ma)m(y)g(w)m(an)m(t)h(to)f(\015ush)e(the)h(pro)s(cedure)g(b)s(efore)g
6322 (it)g(is)g(written.)150 3121 y(F)-8 b(or)31 b(example,)f(in)m(terpro)s
6323 (cedural)e(analysis)h(requires)g(that)i(all)e(pro)s(cedures)g(b)s(e)g
6324 (read)h(in)f(and)h(analyzed)150 3230 y(together.)40 b(T)-8
6325 b(o)24 b(sa)m(v)m(e)h(space,)h(the)e(pro)s(cedures)e(can)i(b)s(e)f
6326 (summarized)f(for)h(the)h(purp)s(ose)e(of)i(the)g(particular)150
6327 3340 y(analysis)e(and)g(then)h(\015ushed.)37 b(After)23
6328 b(the)g(analysis)f(is)g(complete,)k(they)d(can)g(b)s(e)g(re-read)g(and)
6329 g(the)g(results)150 3450 y(can)31 b(b)s(e)e(attac)m(hed)k(to)e(the)f
6330 (co)s(de.)150 3748 y Fl(6.3)68 b(Lab)t(el)45 b(Sym)l(b)t(ols)275
6331 3956 y Fn(The)38 b Fi(label_sym)f Fn(class)i(represen)m(ts)h(lab)s(el)d
6332 (sym)m(b)s(ols.)67 b(Lab)s(els)38 b(are)i(used)e(within)f(pro)s
6333 (cedures)h(to)150 4066 y(sp)s(ecify)h(targets)i(of)f(branc)m(h)g(and)f
6334 (jump)g(instructions.)67 b(They)40 b(ma)m(y)h(not)f(b)s(e)f(en)m(tered)
6335 i(in)e(global)g(or)150 4176 y(\014le)34 b(sym)m(b)s(ol)g(tables.)55
6336 b(The)35 b(p)s(osition)e(of)i(a)h(lab)s(el)d(is)h(usually)f(indicated)h
6337 (b)m(y)h(a)g(lab)s(el)f(instruction)f(\(see)150 4285
6338 y(Section)j(4.10)h([Lab)s(el)f(Instructions],)g(page)h(35\),)h(but)e
6339 (for)g(lab)s(els)e(asso)s(ciated)i(with)f(high-lev)m(el)g(AST)150
6340 4395 y(no)s(des,)i(the)g(lab)s(el)d(p)s(ositions)h(ma)m(y)i(b)s(e)e
6341 (implicit.)56 b(The)36 b Fi(label_sym)e Fn(class)i(con)m(tains)g(no)g
6342 (extra)h(\014elds)150 4504 y(b)s(ey)m(ond)30 b(those)h(in)e(the)h(base)
6343 h Fi(sym_node)d Fn(class.)150 4802 y Fl(6.4)68 b(V)-11
6344 b(ariable)46 b(Sym)l(b)t(ols)275 5011 y Fn(In)31 b(SUIF,)h(v)-5
6345 b(ariable)31 b(sym)m(b)s(ols)g(represen)m(t)i(data)f(ob)5
6346 b(jects.)48 b(V)-8 b(ariable)31 b(sym)m(b)s(ols)g(are)i(represen)m(ted)
6347 f(b)m(y)150 5121 y(ob)5 b(jects)34 b(of)f(the)h Fi(var_sym)d
6348 Fn(class.)49 b(This)31 b(class)i(adds)g(a)g(\014eld)f(to)i(sp)s(ecify)e
6349 (the)i(t)m(yp)s(e)f(of)g(the)h(v)-5 b(ariable)32 b(as)150
6350 5230 y(w)m(ell)25 b(as)i(some)f(additional)e(\015ags.)40
6351 b(Unlik)m(e)25 b(pro)s(cedures)g(and)g(lab)s(els,)h(v)-5
6352 b(ariables)25 b(ma)m(y)h(b)s(e)g(de\014ned)f(in)g(an)m(y)150
6353 5340 y(scop)s(e.)p eop
6354 %%Page: 48 50
6355 48 49 bop 150 -116 a Fn(48)2385 b(The)30 b(SUIF)g(V)-8
6356 b(ersion)30 b(1)h(Library)275 299 y(SUIF)h(pro)m(vides)f(optional)g
6357 Fh(sub-v)-5 b(ariables)34 b Fn(to)f(mak)m(e)h(it)d(easier)i(to)g(deal)e
6358 (with)g(pieces)i(of)f(aggregate)150 408 y(ob)5 b(jects)46
6359 b(that)g(ma)m(y)g(or)f(ma)m(y)h(not)g(o)m(v)m(erlap,)k(in)44
6360 b(particular)g(F)-8 b(ortran)46 b(equiv)-5 b(alences)44
6361 b(and)h(reshap)s(ed)150 518 y(common)31 b(blo)s(c)m(ks.)41
6362 b(Instead)30 b(of)h(referring)e(to)i(a)g(piece)g(of)g(an)f(aggregate)k
6363 (b)m(y)c(an)h(o\013set)g(com)m(bined)f(with)150 628 y(the)35
6364 b(aggregate)j(sym)m(b)s(ol,)c(a)h(sub-v)-5 b(ariable)33
6365 b(can)i(b)s(e)f(created)i(to)f(represen)m(t)g(the)g(data)g(at)h(a)f
6366 (particular)150 737 y(o\013set)g(within)c(the)j(aggregate,)k(so)c(that)
6367 g(it)f(can)h(b)s(e)g(referenced)f(in)g(the)h(same)g(w)m(a)m(y)g(as)g
6368 (if)f(it)g(w)m(ere)i(not)150 847 y(con)m(tained)c(within)c(an)k
6369 (aggregate)i(structure.)150 1058 y Ff(6.4.1)63 b(Basic)40
6370 b(F)-10 b(eatures)41 b(of)g(V)-10 b(ariables)275 1246
6371 y Fn(The)31 b(t)m(yp)s(e)i(of)g(a)f(v)-5 b(ariable)32
6372 b(can)g(b)s(e)g(accessed)i(via)e(the)g Fi(type)g Fn(and)g
6373 Fi(set_type)e Fn(metho)s(ds.)46 b(The)32 b(t)m(yp)s(e)150
6374 1355 y(m)m(ust)41 b(b)s(e)g(visible)d(in)i(the)i(scop)s(e)f(where)g
6375 (the)g(v)-5 b(ariable)40 b(is)h(de\014ned.)72 b(Since)40
6376 b(the)h(t)m(yp)s(e)h(sp)s(eci\014es)e(the)150 1465 y(amoun)m(t)d(of)g
6377 (storage)i(o)s(ccupied)c(b)m(y)i(the)g(v)-5 b(ariable,)37
6378 b(the)g(size)g(of)g(the)g(t)m(yp)s(e)g(m)m(ust)g(not)g(b)s(e)f(zero.)61
6379 b(This)150 1574 y(means)39 b(that)h(function)e(t)m(yp)s(es,)j(v)m(oid)e
6380 (t)m(yp)s(es,)i(incomplete)e(structure)g(and)f(union)f(t)m(yp)s(es,)42
6381 b(and)c(arra)m(y)150 1684 y(t)m(yp)s(es)j(with)f(unkno)m(wn)g(b)s
6382 (ounds)f(cannot)j(b)s(e)e(used)h(for)g(v)-5 b(ariables)2506
6383 1651 y Fg(1)2542 1684 y Fn(.)73 b(P)m(oin)m(ters)42 b(to)g(those)f(t)m
6384 (yp)s(es)h(are)150 1794 y(acceptable,)30 b(of)f(course.)40
6385 b(Sub-v)-5 b(ariables)26 b(ma)m(y)j(ha)m(v)m(e)h(an)m(y)e(t)m(yp)s(e)h
6386 (so)g(long)f(as)g(the)h(size)f(of)h(that)g(t)m(yp)s(e)g(and)150
6387 1903 y(the)i(sub-v)-5 b(ariable's)28 b(o\013set)j(allo)m(w)f(it)g(to)h
6388 (remain)f(within)d(the)k(paren)m(t)g(v)-5 b(ariable.)275
6389 2033 y(V)d(ariable)31 b(sym)m(b)s(ols)f(ma)m(y)j(also)f(b)s(e)f(allo)s
6390 (cated)h(to)g(mac)m(hine)g(registers.)45 b(A)32 b(\015ag)g(is)f(used)g
6391 (to)i(indicate)150 2143 y(v)-5 b(ariables)32 b(that)h(are)h(con)m
6392 (tained)f(in)f(registers;)i(the)g Fi(is_reg)d Fn(metho)s(d)i(returns)e
6393 (the)j(v)-5 b(alue)32 b(of)i(this)e(\015ag)150 2252 y(and)i(the)g
6394 Fi(set_reg)e Fn(and)i Fi(reset_reg)e Fn(metho)s(ds)h(c)m(hange)j(its)d
6395 (v)-5 b(alue.)52 b(The)34 b Fi(reg_num)e Fn(annotation)j(can)150
6396 2362 y(b)s(e)25 b(attac)m(hed)i(to)f(a)g(register)g(v)-5
6397 b(ariable)24 b(to)i(sp)s(ecify)e(the)i(corresp)s(onding)d(mac)m(hine)i
6398 (register)h(n)m(um)m(b)s(er)e(\(see)150 2472 y(Section)31
6399 b(8.5.4)i([Miscellaneous)d(Annotes],)i(page)g(67\).)44
6400 b(V)-8 b(ariables)30 b(cannot)i(b)s(e)f(registers)f(if)g(they)i(ha)m(v)
6401 m(e)150 2581 y(v)-5 b(ariable)26 b(de\014nitions.)38
6402 b(Whether)28 b(a)g(sub-v)-5 b(ariable)25 b(is)i(a)h(register)f(or)h
6403 (not)g(is)e(sla)m(v)m(ed)i(to)h(this)d(prop)s(ert)m(y)h(in)150
6404 2691 y(its)j(paren)m(t.)275 2821 y(Sym)m(b)s(ols)k(for)j(v)-5
6405 b(ariables)35 b(that)i(are)g(not)g(allo)s(cated)f(on)h(the)f(stac)m(k)i
6406 (m)m(ust)f(ha)m(v)m(e)h(separate)f(v)-5 b(ariable)150
6407 2930 y(de\014nitions)29 b(\(see)j(Section)f(6.4.3)i([V)-8
6408 b(ariable)31 b(De\014nitions],)g(page)h(51\))g(or)g(else)f(they)g(are)h
6409 (merely)f(decla-)150 3040 y(rations)36 b(of)g(external)g(sym)m(b)s
6410 (ols.)56 b(The)36 b Fi(has_var_def)d Fn(metho)s(d)j(c)m(hec)m(ks)h(if)e
6411 (a)i(v)-5 b(ariable)35 b(sym)m(b)s(ol)g(has)h(a)150 3150
6412 y(separate)27 b(de\014nition,)e(and)g(the)i Fi(definition)c
6413 Fn(metho)s(d)i(returns)g(a)i(p)s(oin)m(ter)e(to)i(the)f(de\014nition.)
6414 37 b(It)26 b(is)f(an)150 3259 y(error)30 b(to)i(call)d
6415 Fi(definition)f Fn(for)i(a)h(v)-5 b(ariable)30 b(that)h(do)s(es)f(not)h
6416 (ha)m(v)m(e)h(a)f(de\014nition,)d(so)j(b)s(e)f(sure)g(to)h(c)m(hec)m(k)
6417 150 3369 y(\014rst.)40 b(Sub-v)-5 b(ariables)28 b(are)j(nev)m(er)f
6418 (allo)m(w)m(ed)g(to)i(ha)m(v)m(e)f(their)f(o)m(wn)g(de\014nitions.)275
6419 3499 y(The)39 b Fi(var_sym)f Fn(class)i(includes)e(sev)m(eral)i(metho)s
6420 (ds)f(to)i(c)m(hec)m(k)h(v)-5 b(arious)39 b(attributes)g(and)h(\015ags)
6421 g(for)150 3608 y(v)-5 b(ariables.)83 b(The)45 b Fi(is_auto)e
6422 Fn(metho)s(d)h(c)m(hec)m(ks)j(if)c(a)j(v)-5 b(ariable)44
6423 b(is)g(in)f(the)j(automatic)f(storage)i(class,)150 3718
6424 y(i.e.)57 b(if)35 b(it)h(will)d(b)s(e)i(allo)s(cated)h(on)g(the)g(stac)
6425 m(k.)59 b(Global)36 b(v)-5 b(ariables)34 b(and)i(static)g(lo)s(cal)f(v)
6426 -5 b(ariables)35 b(\(those)150 3827 y(with)j(v)-5 b(ariable)37
6427 b(de\014nitions\))g(are)i(not)g(automatic)h(and)e Fi(is_auto)f
6428 Fn(returns)g Fi(FALSE)h Fn(for)g(them;)44 b(other)150
6429 3937 y(v)-5 b(ariables)34 b(are)i(automatic.)57 b(The)36
6430 b Fi(is_static)d Fn(metho)s(d)i(is)f(the)i(opp)s(osite)f(of)h
6431 Fi(is_auto)p Fn(,)f(except)h(that)150 4047 y(register)30
6432 b(v)-5 b(ariables)29 b(are)i(not)g(considered)e(to)i(b)s(e)f(static.)
6433 275 4177 y(The)j(formal)g(parameters)h(of)g(a)g(pro)s(cedure)f(are)h
6434 (represen)m(ted)g(b)m(y)f(v)-5 b(ariables)33 b(that)h(ha)m(v)m(e)h(a)f
6435 (sp)s(ecial)150 4286 y(\015ag)43 b(set.)78 b(The)42 b
6436 Fi(is_param)e Fn(metho)s(d)i(returns)g(the)g(v)-5 b(alue)42
6437 b(of)h(this)f(\015ag,)k(and)c(the)g Fi(set_param)f Fn(and)150
6438 4396 y Fi(reset_param)31 b Fn(metho)s(ds)j(c)m(hange)i(its)e(v)-5
6439 b(alue.)52 b(Iden)m(tifying)33 b(the)h(formals)g(with)f(\015ags)i(do)s
6440 (es)f(not)g(allo)m(w)150 4505 y(their)i(order)f(to)j(b)s(e)e(sp)s
6441 (eci\014ed,)g(so)h(the)f(pro)s(cedure)g(sym)m(b)s(ol)f(table)h(main)m
6442 (tains)g(a)g(list)g(of)g(the)h(formals)150 4615 y(\(see)c(Section)f
6443 (5.1.3)i([Pro)s(cedure)e(Sym)m(b)s(ol)e(T)-8 b(ables],)33
6444 b(page)g(38\).)47 b(All)31 b(of)h(the)g(v)-5 b(ariables)31
6445 b(for)h(whic)m(h)f Fi(is_)150 4725 y(param)26 b Fn(returns)h
6446 Fi(TRUE)g Fn(should)f(b)s(e)h(on)h(the)g(list)e(of)j(parameters,)g(and)
6447 e(con)m(v)m(ersely)-8 b(,)30 b(all)c(v)-5 b(ariables)27
6448 b(on)h(the)150 4834 y(parameter)38 b(list)f(should)f(ha)m(v)m(e)j(the)f
6449 (\015ag)h(set.)64 b(Sub-v)-5 b(ariables)35 b(are)j(not)h(allo)m(w)m(ed)
6450 e(to)i(b)s(e)e(parameters;)150 4944 y(sub-v)-5 b(ariables)19
6451 b(of)j(parameters)f(are)h(allo)m(w)m(ed,)h(but)e(these)g(are)h(not)g
6452 (considered)e(parameters)h(themselv)m(es.)p 150 5022
6453 1200 4 v 192 5088 a Fg(1)275 5121 y Fn(This)39 b(rule)i(ma)m(y)h(app)s
6454 (ear)f(to)i(b)s(e)e(violated)g(when)f(using)h(F)-8 b(ortran)42
6455 b(form)f(with)g(call-b)m(y-reference)275 5230 y(arra)m(ys)32
6456 b(with)e(unkno)m(wn)g(b)s(ounds,)g(but)h(the)h(actual)g(t)m(yp)s(e)g
6457 (of)f(suc)m(h)h(a)g(v)-5 b(ariable)30 b(is)h(a)h(p)s(oin)m(ter)e(to)j
6458 (the)275 5340 y(arra)m(y)d(t)m(yp)s(e)h(\(see)g(Section)f(10.1)i
6459 ([Call-By-Ref)f(P)m(arameters],)h(page)f(77\).)p eop
6460 %%Page: 49 51
6461 49 50 bop 150 -116 a Fn(Chapter)30 b(6:)41 b(Sym)m(b)s(ols)2711
6462 b(49)275 299 y(Because)49 b(man)m(y)f(compiler)f(optimizations)g(are)i
6463 (only)e(applicable)f(to)j(v)-5 b(ariables)47 b(that)i(are)g(not)150
6464 408 y(aliased,)43 b(it)d(is)g(imp)s(ortan)m(t)g(to)i(iden)m(tify)d(suc)
6465 m(h)i(v)-5 b(ariables.)71 b(Eac)m(h)41 b(v)-5 b(ariable)40
6466 b(sym)m(b)s(ol)g(includes)e(a)k(\015ag)150 518 y(to)27
6467 b(indicate)e(whether)g(the)i(v)-5 b(ariable)25 b(has)h(its)f(address)g
6468 (tak)m(en,)k(and)c(th)m(us)h(whether)f(it)h(could)f(b)s(e)h(aliased.)
6469 150 628 y(The)31 b Fi(is_addr_taken)e Fn(metho)s(d)i(returns)g(the)h(v)
6470 -5 b(alue)32 b(of)g(this)f(\015ag.)46 b(The)31 b(fron)m(t-end)h(should)
6471 e(set)i(these)150 737 y(\015ags,)37 b(but)d(they)i(ma)m(y)g(also)f
6472 (need)g(to)h(b)s(e)f(up)s(dated)e(as)j(the)f(co)s(de)h(is)e
6473 (transformed.)55 b(The)34 b Fi(set_addr_)150 847 y(taken)41
6474 b Fn(and)g Fi(reset_addr_taken)d Fn(metho)s(ds)j(can)h(b)s(e)g(used)f
6475 (to)i(c)m(hange)g(the)f(\015ag)g(for)g(a)h(particular)150
6476 956 y(v)-5 b(ariable)35 b(sym)m(b)s(ol.)57 b(F)-8 b(or)37
6477 b(sub-v)-5 b(ariables,)36 b(this)g(prop)s(ert)m(y)f(is)h(sla)m(v)m(ed)g
6478 (to)h(this)f(prop)s(ert)m(y)f(in)g(the)i(paren)m(t)150
6479 1066 y(v)-5 b(ariable.)275 1199 y(Besides)29 b(requiring)e(that)k(v)-5
6480 b(ariables)28 b(not)i(b)s(e)f(aliased,)h(most)g(optimizations)e(also)i
6481 (do)g(not)g(apply)e(to)150 1308 y(aggregate)f(data)e(structures.)38
6482 b(The)24 b Fi(is_scalar)e Fn(metho)s(d)i(c)m(hec)m(ks)h(the)g(t)m(yp)s
6483 (e)f(of)h(a)f(v)-5 b(ariable)24 b(sym)m(b)s(ol)f(and)150
6484 1418 y(returns)33 b Fi(TRUE)f Fn(if)h(it)g(is)g(not)h(an)g(aggregate)j
6485 (t)m(yp)s(e.)51 b(Arra)m(ys,)35 b(structures,)g(and)e(unions)f(are)i
6486 (considered)150 1527 y(to)d(b)s(e)f(aggregates.)275 1660
6487 y(In)41 b(general,)46 b(most)d(optimizations)e(target)j(scalar)f(v)-5
6488 b(ariables)41 b(that)i(are)g(guaran)m(teed)h(not)e(to)i(b)s(e)150
6489 1770 y(aliased.)71 b(Since)40 b(it)h(is)f(di\016cult)f(to)i(guaran)m
6490 (tee)i(that)e(global)f(v)-5 b(ariables)40 b(with)g(external)g(link)-5
6491 b(age)41 b(are)150 1879 y(not)i(addressed,)j(those)e(v)-5
6492 b(ariables)41 b(ma)m(y)j(b)s(e)f(aliased)f(ev)m(en)i(if)e(their)g
6493 (\015ags)h(indicate)g(that)g(they)h(are)150 1989 y(not)34
6494 b(addressed.)48 b(Rather)33 b(than)h(c)m(hec)m(king)g(these)f
6495 (conditions)f(separately)-8 b(,)35 b(the)f(library)c(pro)m(vides)j(one)
6496 150 2098 y(metho)s(d)38 b(to)h(c)m(hec)m(k)i(them)d(all.)65
6497 b(The)38 b Fi(is_spilled)e Fn(metho)s(d)i(returns)f Fi(TRUE)h
6498 Fn(for)g(v)-5 b(ariables)37 b(that)j(are)150 2208 y(static,)j
6499 (addressed,)e(or)e(aggregates.)71 b(V)-8 b(ariables)39
6500 b(that)h(are)f(not)h(spilled)d(can)i(then)g(b)s(e)g(targeted)i(for)150
6501 2318 y(optimization.)150 2536 y Ff(6.4.2)63 b(Sub-V)-10
6502 b(ariables)275 2727 y Fn(The)31 b(data)i(ob)5 b(jects)33
6503 b(represen)m(ted)g(b)m(y)f(v)-5 b(ariable)31 b(sym)m(b)s(ols)g(are)i
6504 (allo)m(w)m(ed)f(to)h(o)m(v)m(erlap,)g(but)f(only)g(in)f(a)150
6505 2837 y(carefully)f(con)m(trolled)i(w)m(a)m(y)-8 b(.)46
6506 b(The)31 b(mec)m(hanism)h(that)g(allo)m(ws)f(this)g(is)g(the)h
6507 (existence)g(of)g(sub-v)-5 b(ariables.)150 2946 y(One)30
6508 b(v)-5 b(ariable)30 b(sym)m(b)s(ol)f(is)h(allo)m(w)m(ed)h(to)h(b)s(e)e
6509 (a)h(sub-v)-5 b(ariable)29 b(of)i(another,)g(o)s(ccup)m(ying)f(a)h(p)s
6510 (ortion)f(of)h(the)150 3056 y(paren)m(t)26 b(v)-5 b(ariable)25
6511 b(sym)m(b)s(ol)g(sp)s(eci\014ed)f(b)m(y)i(an)g(o\013set)h(and)e(the)h
6512 (t)m(yp)s(es)g(of)g(the)g(t)m(w)m(o)i(v)-5 b(ariables.)37
6513 b(This)25 b(allo)m(ws)150 3165 y(arbitrary)36 b(hierarc)m(hies)h(of)g
6514 (v)-5 b(ariable)37 b(sym)m(b)s(ols)f(and)h(the)g(relations)g(among)h
6515 (them)g(are)g(kno)m(wn)f(at)h(all)150 3275 y(times.)275
6516 3408 y(F)-8 b(or)34 b(an)m(y)g(hierarc)m(h)m(y)-8 b(,)35
6517 b(there)e(will)e(alw)m(a)m(ys)k(b)s(e)e(one)h(ro)s(ot)f(ancestor)i(in)d
6518 (terms)i(of)g(whic)m(h)e(ev)m(erything)150 3517 y(else)g(can)g(b)s(e)g
6519 (sp)s(eci\014ed.)44 b(If)31 b(neither)g(of)h(t)m(w)m(o)i(v)-5
6520 b(ariables)31 b(is)g(a)h(sub-v)-5 b(ariable)30 b(of)i(an)m(ything)g
6521 (else,)g(the)h(t)m(w)m(o)150 3627 y(v)-5 b(ariables)29
6522 b(are)i(guaran)m(teed)g(to)g(b)s(e)f(completely)g(indep)s(enden)m(t)e
6523 (ob)5 b(jects.)275 3760 y(Use)27 b(of)g(sub-v)-5 b(ariables)24
6524 b(is)i(optional.)39 b(An)m(ything)25 b(that)j(can)f(b)s(e)f(represen)m
6525 (ted)h(with)e(the)i(sub-v)-5 b(ariable)150 3869 y(can)25
6526 b(b)s(e)f(represen)m(ted)g(in)f(terms)h(of)h(its)f(paren)m(t)g(b)m(y)h
6527 (loading)e(from)h(the)g(paren)m(t's)h(address)f(plus)e(the)j(o\013set)
6528 150 3979 y(and)30 b(with)f(the)h(t)m(yp)s(e)h(of)f(the)h(c)m(hild)e(v)
6529 -5 b(ariable.)275 4111 y(Sub-v)g(ariable)32 b(names)j(are)g(indep)s
6530 (enden)m(t)e(of)i(their)e(paren)m(t)j(v)-5 b(ariable)33
6531 b(sym)m(b)s(ols.)53 b(Whether)35 b(or)g(not)150 4221
6532 y(they)f(ha)m(v)m(e)g(the)g Fi(userdef)d Fn(\015ag)j(set)g(is)e(also)i
6533 (indep)s(enden)m(t)d(of)i(the)h(paren)m(t.)50 b(There)33
6534 b(is)f(nothing)h(incon-)150 4331 y(sisten)m(t)k(in)g(ha)m(ving)g(a)g
6535 (paren)m(t)h(whic)m(h)e(is)h(user-de\014ned)e(and)i(a)h(sub-v)-5
6536 b(ariable)35 b(whic)m(h)i(is)f(not)i(\(if)f(some)150
6537 4440 y(stage)k(of)e(the)g(compiler)f(decides)h(a)g(particular)f(piece)h
6538 (of)g(a)h(larger)f(user-de\014ned)e(ob)5 b(ject)41 b(has)e(some)150
6539 4550 y(sp)s(ecial)30 b(prop)s(ert)m(y)g(and)h(w)m(an)m(ts)h(a)g(handle)
6540 d(on)j(it\),)f(and)g(neither)f(is)g(there)i(an)m(ything)e(inconsisten)m
6541 (t)h(in)f(a)150 4659 y(sub-v)-5 b(ariable)35 b(that)i(is)e
6542 (user-de\014ned)g(in)g(a)i(paren)m(t)g(whic)m(h)e(is)h(not)h
6543 (\(user-de\014ned)e(v)-5 b(ariables)35 b(that)j(are)150
6544 4769 y(equiv)-5 b(alenced)29 b(cause)i(the)g(system)f(to)h(create)h(a)f
6545 (new)f(aggregate)j(ob)5 b(ject\).)275 4902 y(Among)32
6546 b(the)h(prop)s(erties)e(general)h(to)i(the)e Fi(sym_node)f
6547 Fn(class)h(that)h(ma)m(y)g(b)s(e)f(c)m(hanged)h(b)m(y)g(the)f(user,)150
6548 5011 y(the)24 b(only)f(one)h(for)f(whic)m(h)f(sub-v)-5
6549 b(ariables)22 b(ha)m(v)m(e)j(an)m(y)f(sp)s(ecial)e(restriction)g(is)h
6550 (the)h(sym)m(b)s(ol)e(table)i(in)e(whic)m(h)150 5121
6551 y(they)35 b(reside.)55 b(A)35 b(sub-v)-5 b(ariable)33
6552 b(should)h(b)s(e)g(in)g(the)i(same)g(sym)m(b)s(ol)e(table)h(as)g(its)g
6553 (paren)m(t.)56 b(They)34 b(ma)m(y)150 5230 y(b)s(e)29
6554 b(temp)s(orarily)f(in)g(di\013eren)m(t)h(sym)m(b)s(ol)f(tables)i(while)
6555 d(b)s(eing)i(mo)m(v)m(ed)h(around,)f(so)h(the)g(library)d(do)s(esn't)
6556 150 5340 y(enforce)41 b(the)h(restriction)e(that)h(they)g(alw)m(a)m(ys)
6557 h(b)s(e)e(in)g(the)h(same)g(sym)m(b)s(ol)f(table)h(at)h(all)d(times.)72
6558 b(The)p eop
6559 %%Page: 50 52
6560 50 51 bop 150 -116 a Fn(50)2385 b(The)30 b(SUIF)g(V)-8
6561 b(ersion)30 b(1)h(Library)150 299 y(library)d(do)s(es)j(enforce)g(the)g
6562 (restrictions)f(that)h(they)g(m)m(ust)g(b)s(e)f(in)f(the)i(same)h
6563 (table)e(when)g(a)h(sym)m(b)s(ol)f(is)150 408 y(\014rst)f(link)m(ed)f
6564 (in)g(as)i(a)f(sub-v)-5 b(ariable)28 b(b)m(y)h(the)h
6565 Fi(var_sym::add_child)25 b Fn(metho)s(d)k(and)f(when)h(the)h(o)m(wning)
6566 150 518 y(sym)m(b)s(ol)f(table)h(of)h(the)f(paren)m(t)h(or)f(c)m(hild)f
6567 (v)-5 b(ariable)29 b(is)h(written)f(out.)275 664 y(Among)g(prop)s
6568 (erties)f(sp)s(eci\014c)g(to)j(v)-5 b(ariable)28 b(sym)m(b)s(ols)g
6569 (that)i(the)f(user)g(has)g(con)m(trol)h(o)m(v)m(er,)h(some)f(ma)m(y)150
6570 774 y(b)s(e)i(set)h(indep)s(enden)m(tly)d(in)h(sub-v)-5
6571 b(ariables,)31 b(and)h(some)h(are)g(k)m(ept)g(consisten)m(t)g(b)s(et)m
6572 (w)m(een)g(sub-v)-5 b(ariables)150 883 y(and)37 b(their)f(paren)m(ts.)
6573 61 b(F)-8 b(or)38 b(the)f(prop)s(erties)f(that)h(are)h(k)m(ept)g
6574 (consisten)m(t,)h(the)e(v)-5 b(alue)37 b(of)g(the)h(prop)s(ert)m(y)150
6575 993 y(in)d(the)h(sub-v)-5 b(ariable)34 b(is)h(sla)m(v)m(ed)h(to)h(that)
6576 f(in)f(the)h(paren)m(t.)57 b(In)36 b(that)g(case,)j(either)c(setting)h
6577 (or)g(getting)150 1103 y(the)30 b(prop)s(ert)m(y)f(from)g(the)g(sub-v)
6578 -5 b(ariable)28 b(has)h(exactly)h(the)g(same)g(e\013ect)h(as)f(getting)
6579 g(or)g(setting)f(it)g(from)150 1212 y(the)40 b(paren)m(t)g(v)-5
6580 b(ariable.)69 b(If)40 b(and)f(when)g(the)h(sub-v)-5 b(ariable)38
6581 b(is)h(remo)m(v)m(ed)i(from)f(b)s(eing)f(a)h(sub-v)-5
6582 b(ariable)150 1322 y(b)m(y)29 b(the)g Fi(var_sym::remove_child)24
6583 b Fn(metho)s(d,)29 b(the)g(curren)m(t)g(v)-5 b(alues)29
6584 b(of)g(those)h(prop)s(erties)e(in)f(the)j(sub-)150 1431
6585 y(v)-5 b(ariable)34 b(are)h(set)g(to)h(the)f(v)-5 b(alues)34
6586 b(of)h(the)g(paren)m(t)g(at)g(the)g(time)f(of)h(separation)g(and)f(can)
6587 h(b)s(e)f(c)m(hanged)150 1541 y(indep)s(enden)m(tly)27
6588 b(from)j(then)g(on.)275 1687 y(Sub-v)-5 b(ariables)25
6589 b(are)j(attac)m(hed)h(to)g(paren)m(t)f(v)-5 b(ariables)26
6590 b(b)m(y)h(the)h Fi(add_child)d Fn(metho)s(d.)40 b(The)27
6591 b(user)g(tells)150 1797 y(the)41 b(paren)m(t)g(whic)m(h)f(v)-5
6592 b(ariable)39 b(sym)m(b)s(ol)h(is)g(to)h(b)s(e)g(the)g(sub-v)-5
6593 b(ariable)39 b(and)h(at)h(what)g(o\013set)h(it)e(b)s(egins)150
6594 1906 y(and)d(the)g(library)e(mak)m(es)j(it)f(a)h(sub-v)-5
6595 b(ariable.)59 b(If)37 b(it)g(is)f(ev)m(er)i(necessary)g(to)g(remo)m(v)m
6596 (e)h(a)f(sub-v)-5 b(ariable,)150 2016 y(the)34 b Fi(remove_child)d
6597 Fn(metho)s(d)i(ma)m(y)i(b)s(e)e(used.)50 b(It)34 b(undo)s(es)f(what)h
6598 Fi(add_child)d Fn(did)h(making)i(the)g(sub-)150 2125
6599 y(v)-5 b(ariable)26 b(in)m(to)g(a)i(fully)c(indep)s(enden)m(t)h(v)-5
6600 b(ariable.)38 b(The)27 b(argumen)m(t)g(of)g Fi(remove_child)c
6601 Fn(m)m(ust)k(already)g(b)s(e)150 2235 y(a)32 b(sub-v)-5
6602 b(ariable)29 b(of)j(the)f(giv)m(en)g(v)-5 b(ariable.)43
6603 b(This)29 b(metho)s(d)i(should)f(b)s(e)g(called)h(b)s(efore)g(a)h
6604 (sub-v)-5 b(ariable)29 b(is)150 2345 y(deleted,)h(or)h(else)f(there)h
6605 (will)c(b)s(e)j(dangling)f(p)s(oin)m(ters)g(from)h(the)g(paren)m(t.)275
6606 2491 y(Tw)m(o)38 b(metho)s(ds,)h Fi(parent_var)c Fn(and)i
6607 Fi(offset)p Fn(,)h(pro)m(vide)f(a)i(w)m(a)m(y)f(to)h(see)g(whether)e(a)
6608 h(v)-5 b(ariable)37 b(is)g(a)150 2600 y(sub-v)-5 b(ariable,)28
6609 b(and)i(if)f(so)h(what)g(v)-5 b(ariable)29 b(it)h(is)f(a)h(sub-v)-5
6610 b(ariable)28 b(of)j(and)e(where)h(it)f(is)g(in)g(that)i(v)-5
6611 b(ariable.)150 2710 y(If)29 b(a)h(v)-5 b(ariable)28 b(is)h(not)g(a)h
6612 (sub-v)-5 b(ariable,)28 b Fi(parent_var)f Fn(will)f(return)j
6613 Fi(NULL)p Fn(.)39 b(If)29 b(it)g(is)f(a)i(sub-v)-5 b(ariable,)28
6614 b(this)150 2819 y(metho)s(d)33 b(will)e(return)h(the)i(v)-5
6615 b(ariable)32 b(sym)m(b)s(ol)h(for)g(the)g(v)-5 b(ariable)33
6616 b(of)g(whic)m(h)g(it)g(is)f(a)i(sub-v)-5 b(ariable.)48
6617 b(If)33 b(it)150 2929 y(is)g(a)h(sub-v)-5 b(ariable,)33
6618 b(the)i Fi(offset)d Fn(metho)s(d)h(will)f(return)g(the)j(o\013set)g(in)
6619 d(bits)h(of)h(the)g(b)s(eginning)e(of)i(the)150 3039
6620 y(sub-v)-5 b(ariable)28 b(from)h(the)i(b)s(eginning)c(of)j(the)g(paren)
6621 m(t)h(v)-5 b(ariable.)39 b(If)29 b(called)h(on)g(a)g(v)-5
6622 b(ariable)29 b(that)h(is)f(not)i(a)150 3148 y(sub-v)-5
6623 b(ariable,)29 b Fi(offset)f Fn(will)g(return)h(zero.)275
6624 3294 y(There)k(are)i(also)g(metho)s(ds)e(pro)m(vided)g(to)i(access)h
6625 (all)d(the)i(v)-5 b(ariables)33 b(that)i(are)g(sub-v)-5
6626 b(ariables)32 b(of)j(a)150 3404 y(giv)m(en)i(v)-5 b(ariable.)60
6627 b(The)37 b Fi(num_children)d Fn(metho)s(d)i(will)f(return)h(the)h(n)m
6628 (um)m(b)s(er)f(of)i(sub-v)-5 b(ariables)35 b(for)i(a)150
6629 3513 y(giv)m(en)30 b(v)-5 b(ariable)30 b(sym)m(b)s(ol.)39
6630 b(Giv)m(en)31 b(a)f(non-negativ)m(e)i(n)m(um)m(b)s(er)d(less)h(than)g
6631 (the)g(n)m(um)m(b)s(er)g(of)g(c)m(hildren,)f(the)150
6632 3623 y Fi(child_var)23 b Fn(metho)s(d)i(will)e(return)i(one)h(of)f(the)
6633 h(sub-v)-5 b(ariables.)37 b(The)25 b(ordering)g(of)h(the)f(sub-v)-5
6634 b(ariables)24 b(is)150 3733 y(the)g(order)f(in)f(whic)m(h)h(they)g(w)m
6635 (ere)i(added,)f(starting)g(with)e(zero)i(for)g(the)g(oldest)f
6636 (remaining)f(sub-v)-5 b(ariable.)150 3842 y(F)d(or)31
6637 b(example,)g Fi(child_var\(2\))c Fn(will)h(return)i(the)g(sub-v)-5
6638 b(ariable)29 b(that)i(w)m(as)g(the)g(third)e(added)h(of)g(those)150
6639 3952 y(that)24 b(are)g(still)d(sub-v)-5 b(ariables.)36
6640 b(Hence)24 b(calling)e(this)h(metho)s(d)f(for)i(eac)m(h)g(in)m(teger)g
6641 (from)f(zero)h(through)f(the)150 4061 y(n)m(um)m(b)s(er)h(of)h(c)m
6642 (hildren)e(min)m(us)g(one)j(will)c(giv)m(e)k(all)e(the)h(sub-v)-5
6643 b(ariables.)37 b(It)25 b(is)f(an)h(error)g(to)h(call)e
6644 Fi(child_var)150 4171 y Fn(with)29 b(an)h(argumen)m(t)h(greater)h(than)
6645 e(or)g(equal)g(to)h(the)g(n)m(um)m(b)s(er)e(of)h(sub-v)-5
6646 b(ariables)29 b(or)h(less)g(than)g(zero.)275 4317 y(Giv)m(en)e(a)g(v)-5
6647 b(ariable)27 b(that)i(ma)m(y)g(or)g(ma)m(y)f(not)h(b)s(e)f(a)g(sub-v)-5
6648 b(ariable,)27 b(the)i Fi(root_ancestor)24 b Fn(will)i(return)150
6649 4427 y(the)32 b(unique)e(ancestor)j(of)f(a)g(sub-v)-5
6650 b(ariable)30 b(that)i(is)f(not)h(itself)f(a)h(sub-v)-5
6651 b(ariable,)31 b(or)g(the)h(v)-5 b(ariable)31 b(itself)150
6652 4536 y(if)i(it)h(is)f(not)h(a)g(sub-v)-5 b(ariable.)50
6653 b(The)34 b Fi(root_offset)d Fn(metho)s(d)i(will)e(return)i(the)i
6654 (o\013set)g(of)f(the)g(v)-5 b(ariable)150 4646 y(within)30
6655 b(that)j(ro)s(ot)g(ancestor,)h(whic)m(h)d(will)f(b)s(e)h(the)i(sum)f
6656 (of)g(all)f(the)i(o\013sets)g(along)g(the)f(path)h(up.)45
6657 b(The)150 4755 y Fi(overlaps)22 b Fn(metho)s(d)h(is)g(pro)m(vided)f(to)
6658 j(determine)e(whether)g(an)m(y)h(t)m(w)m(o)i(v)-5 b(ariables)22
6659 b(o)m(v)m(erlap)i(to)h(an)m(y)f(exten)m(t.)150 4865 y(If)33
6660 b(the)h(result)f(is)g Fi(TRUE)p Fn(,)h(then)f(they)h(de\014nitely)e(o)m
6661 (v)m(erlap,)j(at)g(least)f(in)e(part;)k(otherwise,)e(the)g(result)f(is)
6662 150 4975 y Fi(FALSE)p Fn(,)c(and)h(the)h(v)-5 b(ariables)29
6663 b(do)h(not)g(o)m(v)m(erlap)h(at)g(all.)275 5121 y(It)h(is)f(often)i
6664 (useful)d(to)j(kno)m(w)f(whether)g(a)g(giv)m(en)h(p)s(ortion)d(of)j(a)f
6665 (v)-5 b(ariable)31 b(treated)j(as)e(a)h(giv)m(en)f(t)m(yp)s(e)150
6666 5230 y(has)k(a)g(corresp)s(onding)d(sub-v)-5 b(ariable.)55
6667 b(The)36 b Fi(find_child)d Fn(metho)s(d)i(will)e(answ)m(er)j(that)g
6668 (question.)56 b(If)150 5340 y(suc)m(h)30 b(a)h(sub-v)-5
6669 b(ariable)28 b(exists,)i(it)g(will)e(return)h(a)i(p)s(oin)m(ter)e(to)j
6670 (it,)e(otherwise)g(it)f(will)f(return)h(NULL.)p eop
6671 %%Page: 51 53
6672 51 52 bop 150 -116 a Fn(Chapter)30 b(6:)41 b(Sym)m(b)s(ols)2711
6673 b(51)275 299 y(As)32 b(an)g(alternativ)m(e)g(to)h(attac)m(hing)g(an)f
6674 (existing)f(v)-5 b(ariable)31 b(sym)m(b)s(ol)g(as)h(a)h(sub-v)-5
6675 b(ariable)30 b(to)j(another)150 408 y(v)-5 b(ariable,)26
6676 b(the)h Fi(build_child)d Fn(metho)s(d)i(is)f(pro)m(vided.)39
6677 b(Giv)m(en)26 b(a)h(lo)s(cation)f(and)g(t)m(yp)s(e)h(within)d(a)j(v)-5
6678 b(ariable)150 518 y(and)32 b(a)h(name,)h(it)e(creates)i(an)f(sub-v)-5
6679 b(ariable,)31 b(installs)f(it)j(in)e(the)i(prop)s(er)e(sym)m(b)s(ol)h
6680 (table)g(if)g(the)h(paren)m(t)150 628 y(v)-5 b(ariable)29
6681 b(w)m(as)i(in)e(a)i(sym)m(b)s(ol)e(table,)h(and)g(adds)g(it)g(as)g(a)h
6682 (sub-v)-5 b(ariable,)29 b(all)g(at)i(once.)150 852 y
6683 Ff(6.4.3)63 b(V)-10 b(ariable)40 b(De\014nitions)275
6684 1044 y Fn(V)-8 b(ariable)31 b(de\014nitions)e(are)j(used)f(to)i(allo)s
6685 (cate)f(storage)h(for)f(v)-5 b(ariables)30 b(that)i(are)h(not)f(on)f
6686 (the)h(stac)m(k.)150 1154 y(These)k(v)-5 b(ariable)36
6687 b(de\014nitions)e(are)j(implemen)m(ted)e(b)m(y)i(the)g
6688 Fi(var_def)e Fn(class,)j(whic)m(h)d(is)h(de\014ned)f(in)h(the)150
6689 1264 y(`)p Fi(vardef.h)p Fn(')d(and)i(`)p Fi(vardef.cc)p
6690 Fn(')e(\014les.)54 b(Eac)m(h)36 b(v)-5 b(ariable)33 b(de\014nition)g
6691 (con)m(tains)i(a)h(\014eld)e(with)f(a)j(p)s(oin)m(ter)150
6692 1373 y(to)30 b(the)f(corresp)s(onding)f(v)-5 b(ariable.)39
6693 b(The)28 b Fi(variable)f Fn(and)i Fi(set_variable)d Fn(metho)s(ds)i
6694 (access)j(this)d(\014eld.)275 1508 y(The)37 b(e\013ects)i(of)f(a)g(v)-5
6695 b(ariable)36 b(de\014nition)g(dep)s(end)g(on)h(the)h(kind)e(of)i(v)-5
6696 b(ariable.)61 b(Without)38 b(separate)150 1617 y(v)-5
6697 b(ariable)41 b(de\014nitions,)h(the)g(sym)m(b)s(ols)e(for)i(global)f(v)
6698 -5 b(ariables)41 b(are)h(merely)f(declarations)g(of)h(external)150
6699 1727 y(sym)m(b)s(ols.)77 b(Adding)41 b(a)i(de\014nition)d(for)j(a)g
6700 (global)f(v)-5 b(ariable)42 b(c)m(hanges)h(it)g(from)f(a)h(declaration)
6701 g(to)g(an)150 1836 y(actual)35 b(de\014nition.)53 b(The)34
6702 b(lo)s(cal)h(v)-5 b(ariables)33 b(in)h(a)h(pro)s(cedure)f(or)h(nested)g
6703 (scop)s(e)g(are)h(allo)s(cated)f(on)g(the)150 1946 y(stac)m(k)g(b)m(y)e
6704 (default.)48 b(Adding)31 b(a)i(de\014nition)e(for)i(a)h(lo)s(cal)e(v)-5
6705 b(ariable)32 b(mak)m(es)i(it)e(static.)50 b(Similarly)-8
6706 b(,)31 b(if)h(y)m(ou)150 2056 y(remo)m(v)m(e)j(a)e(de\014nition)e(of)i
6707 (a)h(lo)s(cal)e(v)-5 b(ariable,)33 b(it)g(rev)m(erts)h(to)g(b)s(eing)d
6708 (allo)s(cated)j(on)f(the)g(stac)m(k.)51 b(Because)150
6709 2165 y(of)29 b(their)f(sp)s(ecial)f(status,)i(register)g(v)-5
6710 b(ariables)27 b(cannot)i(ha)m(v)m(e)h(de\014nitions.)38
6711 b(Sub-v)-5 b(ariables)26 b(are)j(also)g(not)150 2275
6712 y(allo)m(w)m(ed)h(to)h(ha)m(v)m(e)h(their)d(o)m(wn)i(de\014nitions.)275
6713 2409 y(The)j(lo)s(cation)g(of)h(a)h Fi(var_def)d Fn(iden)m(ti\014es)g
6714 (the)i(place)g(where)f(the)h(v)-5 b(ariable)34 b(is)g(de\014ned.)53
6715 b(F)-8 b(or)36 b(most)150 2519 y(v)-5 b(ariables,)27
6716 b(the)i Fi(var_def)d Fn(will)f(b)s(e)i(in)g(the)h(same)h(sym)m(b)s(ol)d
6717 (table)i(as)h(the)f(v)-5 b(ariable.)39 b(Ho)m(w)m(ev)m(er,)30
6718 b(v)-5 b(ariables)150 2628 y(in)37 b(the)i(global)e(sym)m(b)s(ol)g
6719 (table)h(m)m(ust)h(b)s(e)e(de\014ned)g(in)g(exactly)j(one)e(of)h(the)f
6720 (source)h(\014les.)63 b(Th)m(us,)40 b(the)150 2738 y
6721 Fi(var_def)28 b Fn(for)j(a)f(v)-5 b(ariable)29 b(in)h(the)g(global)g
6722 (sym)m(b)s(ol)f(table)h(m)m(ust)g(b)s(e)g(in)f(one)i(of)f(the)h(\014le)
6723 e(sym)m(b)s(ol)h(tables.)275 2873 y(Besides)42 b(iden)m(tifying)f(the)i
6724 (lo)s(cation)g(of)g(the)g(de\014nition,)h(a)g Fi(var_def)d
6725 Fn(also)i(sp)s(eci\014es)f(the)h(align-)150 2982 y(men)m(t)30
6726 b(restriction)e(for)h(the)h(v)-5 b(ariable's)28 b(storage.)42
6727 b(The)29 b Fi(alignment)d Fn(metho)s(d)j(retriev)m(es)h(the)f(size)g
6728 (of)h(the)150 3092 y(alignmen)m(t)j(unit)f(in)h(bits,)g(and)g(the)h
6729 Fi(set_alignment)c Fn(metho)s(d)k(sets)g(the)g(alignmen)m(t)f(unit)f
6730 (size.)50 b(The)150 3201 y(alignmen)m(t)40 b(unit)g(should)f(b)s(e)h
6731 (at)i(least)f(as)g(big)f(as)h(the)g(smallest)f(addressable)g(unit)g
6732 (for)g(the)h(target)150 3311 y(arc)m(hitecture.)275 3445
6733 y(The)36 b(initial)f(data)j(for)f(a)h(static)g(v)-5 b(ariable)36
6734 b(can)h(b)s(e)g(sp)s(eci\014ed)f(b)m(y)h(attac)m(hing)h(annotations)g
6735 (to)g(the)150 3555 y(v)-5 b(ariable)30 b(de\014nition.)41
6736 b(These)31 b(annotations)g(are)h(optional.)42 b(If)31
6737 b(omitted,)h(the)f(initial)d(data)k(is)f(assumed)150
6738 3665 y(to)36 b(b)s(e)f(all)g(zeros.)57 b(The)35 b(initial)e(data)j
6739 (annotations)g(are)g(describ)s(ed)d(elsewhere)i(in)f(this)h(man)m(ual.)
6740 56 b(See)150 3774 y(Section)30 b(8.5.1)i([Initial)d(Data)j(Annotes],)f
6741 (page)g(65.)275 3909 y(V)-8 b(ariable)30 b(de\014nitions)e(are)k(prin)m
6742 (ted)d(out)i(as)h(part)e(of)h(eac)m(h)i(sym)m(b)s(ol)c(table.)43
6743 b(The)30 b Fi(print)g Fn(metho)s(d)g(is)150 4018 y(used)f(for)g(this.)
6744 39 b(Y)-8 b(ou)30 b(ma)m(y)g(also)f(use)g(this)f(metho)s(d)h(for)g
6745 (debugging.)39 b(The)29 b(optional)g Fi(depth)e Fn(parameter)150
6746 4128 y(sp)s(eci\014es)i(the)i(inden)m(tation)e(lev)m(el)h(for)g(the)h
6747 (output.)p eop
6748 %%Page: 52 54
6749 52 53 bop 150 -116 a Fn(52)2385 b(The)30 b(SUIF)g(V)-8
6750 b(ersion)30 b(1)h(Library)p eop
6751 %%Page: 53 55
6752 53 54 bop 150 -116 a Fn(Chapter)30 b(7:)41 b(T)m(yp)s(es)2803
6753 b(53)150 299 y Fj(7)80 b(T)l(yp)t(es)275 533 y Fn(SUIF)27
6754 b(t)m(yp)s(es)g(are)h(used)f(to)h(describ)s(e)d(the)j(results)e(of)i
6755 (instructions)d(and)i(the)g(con)m(ten)m(ts)i(of)f(v)-5
6756 b(ariables.)150 643 y(Eac)m(h)26 b(sym)m(b)s(ol)e(table)h(\(see)i
6757 (Chapter)d(5)i([Sym)m(b)s(ol)e(T)-8 b(ables],)27 b(page)f(37\))g(con)m
6758 (tains)g(a)g(list)e(of)h(t)m(yp)s(es)h(that)g(are)150
6759 752 y(visible)g(within)f(the)j(scop)s(e)g(of)h(that)f(table.)40
6760 b(All)27 b(SUIF)h(t)m(yp)s(es)g(are)g(deriv)m(ed)f(from)h(the)g
6761 Fi(type_node)e Fn(base)150 862 y(class,)31 b(whic)m(h)e(is)g(de\014ned)
6762 h(in)f(the)i(\014les)e(`)p Fi(types.h)p Fn(')g(and)h(`)p
6763 Fi(types.cc)p Fn('.)40 b(The)30 b Fi(type_node_list)d
6764 Fn(class)j(is)150 971 y(pro)m(vided)f(for)h(lists)f(of)i(p)s(oin)m
6765 (ters)e(to)i(t)m(yp)s(es.)275 1106 y(Di\013eren)m(t)f(kinds)d(of)j(t)m
6766 (yp)s(e)g(no)s(des)f(are)h(distinguished)c(b)m(y)j(their)g(t)m(yp)s(e)h
6767 (op)s(erators.)40 b(The)29 b Fi(op)g Fn(metho)s(d)150
6768 1215 y(returns)23 b(the)h(op)s(erator)g(for)g(a)g(particular)e
6769 Fi(type_node)p Fn(.)36 b(Some)24 b(t)m(yp)s(e)g(op)s(erators)g
6770 (de\014ne)g(complete)g(t)m(yp)s(es)150 1325 y(b)m(y)30
6771 b(themselv)m(es)g(while)e(others)j(build)c(up)s(on)h(existing)h(t)m(yp)
6772 s(es.)41 b(The)30 b Fi(type_ops)d Fn(en)m(umeration)j(lists)f(the)150
6773 1435 y(t)m(yp)s(e)i(op)s(erators:)150 1594 y Fi(TYPE_VOID)150
6774 1704 y(TYPE_INT)150 1813 y(TYPE_FLOAT)630 1923 y Fn(These)d(op)s
6775 (erators,)h(along)f(with)f Fi(TYPE_ENUM)f Fn(b)s(elo)m(w,)i(de\014ne)f
6776 (the)h(base)h(t)m(yp)s(es.)40 b(They)27 b(use)630 2032
6777 y(the)k Fi(base_type)c Fn(deriv)m(ed)j(class.)150 2192
6778 y Fi(TYPE_PTR)36 b Fn(A)27 b(p)s(oin)m(ter)e(op)s(erator)i(de\014nes)e
6779 (a)i(t)m(yp)s(e)g(for)f(p)s(oin)m(ters)g(to)h(an)f(existing)g(t)m(yp)s
6780 (e.)39 b(The)26 b Fi(ptr_type)630 2301 y Fn(deriv)m(ed)j(class)i(holds)
6781 d(this)i(kind)e(of)j(t)m(yp)s(e)f(no)s(de.)150 2461 y
6782 Fi(TYPE_ARRAY)630 2570 y Fn(The)39 b(arra)m(y)h(op)s(erator)g(uses)f
6783 (the)g Fi(array_type)e Fn(class)i(and)g(de\014nes)g(a)h(t)m(yp)s(e)f
6784 (that)i(is)d(an)630 2680 y(arra)m(y)31 b(with)e(elemen)m(ts)i(of)f
6785 (another)h(t)m(yp)s(e.)150 2839 y Fi(TYPE_FUNC)630 2949
6786 y Fn(The)22 b(function)f(op)s(erator)h(de\014nes)f(a)i(t)m(yp)s(e)f
6787 (for)g(a)h(SUIF)f(pro)s(cedure)f(in)g(terms)h(of)h(the)f(return)630
6788 3059 y(t)m(yp)s(e)k(and)g(the)h(t)m(yp)s(es)f(of)g(the)h(argumen)m(ts.)
6789 40 b(The)25 b Fi(func_type)f Fn(deriv)m(ed)h(class)h(is)g(used)f(with)
6790 630 3168 y(this)k(op)s(erator.)150 3328 y Fi(TYPE_STRUCT)150
6791 3437 y(TYPE_UNION)630 3547 y Fn(These)41 b(op)s(erators)h(are)g(for)g
6792 (named)f(structure)g(and)h(union)d(t)m(yp)s(es)j(and)f(b)s(oth)g(use)h
6793 (the)630 3656 y Fi(struct_type)27 b Fn(deriv)m(ed)i(class.)41
6794 b(Both)30 b(com)m(bine)g(\014elds)f(of)h(di\013eren)m(t)g(t)m(yp)s(es)g
6795 (in)m(to)g(a)g(single)630 3766 y(record.)150 3925 y Fi(TYPE_ENUM)630
6796 4035 y Fn(The)36 b(en)m(umerated)h(t)m(yp)s(e)g(op)s(erator)g
6797 (de\014nes)f(an)h(in)m(teger)g(t)m(yp)s(e)g(where)f(eac)m(h)i(v)-5
6798 b(alue)36 b(ma)m(y)630 4144 y(ha)m(v)m(e)e(a)f(name.)47
6799 b(Lik)m(e)32 b(the)g(ordinary)f(in)m(teger)i(t)m(yp)s(es,)g(en)m
6800 (umerated)g(t)m(yp)s(es)g(are)f(also)h(base)630 4254
6801 y(t)m(yp)s(es.)41 b(Th)m(us,)29 b(the)i Fi(enum_type)d
6802 Fn(class)i(is)f(deriv)m(ed)h(from)g(the)g Fi(base_type)e
6803 Fn(class.)150 4413 y Fi(TYPE_CONST)150 4523 y(TYPE_VOLATILE)150
6804 4633 y(TYPE_CALL_BY_REF)150 4742 y(TYPE_NULL)630 4852
6805 y Fn(These)38 b(op)s(erators)f(are)i(mo)s(di\014ers)c(for)j(other)g(t)m
6806 (yp)s(es.)63 b(They)37 b(use)h(the)g Fi(modifier_type)630
6807 4961 y Fn(deriv)m(ed)29 b(class.)150 5121 y(The)f(in)m(teger,)h
6808 (\015oating-p)s(oin)m(t,)g(p)s(oin)m(ter,)f(and)g(en)m(umerated)g(t)m
6809 (yp)s(es)h(are)g(all)e(classi\014ed)g(as)i Fh(scalar)35
6810 b Fn(t)m(yp)s(es,)150 5230 y(and)26 b(the)h Fi(is_scalar)d
6811 Fn(metho)s(d)i(c)m(hec)m(ks)i(if)e(a)h(t)m(yp)s(e)g(is)f(one)h(of)g
6812 (these.)40 b(The)26 b(arra)m(y)-8 b(,)28 b(structure,)g(and)e(union)150
6813 5340 y(t)m(yp)s(es)k(are)h(all)e Fh(aggregate)39 b Fn(t)m(yp)s(es.)p
6815 %%Page: 54 56
6816 54 55 bop 150 -116 a Fn(54)2385 b(The)30 b(SUIF)g(V)-8
6817 b(ersion)30 b(1)h(Library)275 299 y(The)g Fi(type_node)f
6818 Fn(base)i(class)f(de\014nes)h(sev)m(eral)g(metho)s(ds)f(that)i(are)f
6819 (applicable)e(to)j(all)e(t)m(yp)s(es,)i(and)150 408 y(those)d(are)f
6820 (describ)s(ed)f(in)g(the)h(\014rst)f(section)i(b)s(elo)m(w)e(along)i
6821 (with)e(some)h(other)h(commen)m(ts)g(ab)s(out)f(t)m(yp)s(es)150
6822 518 y(in)g(general.)40 b(The)30 b(bulk)e(of)i(this)f(c)m(hapter)h(is)f
6823 (dev)m(oted)i(to)g(the)f(v)-5 b(arious)29 b(kinds)f(of)i(t)m(yp)s(es)g
6824 (and)f(the)h(corre-)150 628 y(sp)s(onding)e(deriv)m(ed)h(classes.)41
6825 b(The)30 b(last)h(section)f(describ)s(es)f(the)i(common)f(t)m(yp)s(es)h
6826 (that)g(are)g(prede\014ned)150 737 y(in)e(the)i(global)e(sym)m(b)s(ol)g
6827 (table.)150 994 y Fl(7.1)68 b(F)-11 b(eatures)45 b(Shared)g(By)f(All)i
6828 (T)l(yp)t(es)275 1187 y Fn(The)d(base)i Fi(type_node)d
6829 Fn(class)i(de\014nes)f(some)i(common)f(features)h(of)f(all)g(t)m(yp)s
6830 (es.)82 b(This)43 b(section)150 1296 y(describ)s(es)33
6831 b(the)j(metho)s(ds)e(from)h(this)f(base)h(class)g(along)g(with)f(some)h
6832 (commen)m(ts)h(ab)s(out)f(con)m(v)m(en)m(tions)150 1406
6833 y(for)f(using)g(t)m(yp)s(es.)53 b(Besides)34 b(the)h(things)f(co)m(v)m
6834 (ered)i(here,)g(eac)m(h)g Fi(type_node)c Fn(con)m(tains)j(an)f(ID)h(n)m
6835 (um)m(b)s(er)150 1515 y(that)g(uniquely)d(iden)m(ti\014es)h(it)i
6836 (within)d(a)j(particular)e(con)m(text.)55 b(See)35 b(Section)g(5.6)h
6837 ([Num)m(b)s(ering)d(T)m(yp)s(es)150 1625 y(and)d(Sym)m(b)s(ols],)f
6838 (page)i(42.)275 1759 y(New)k(t)m(yp)s(es)g(can)g(b)s(e)f(created)i(as)g
6839 (necessary)-8 b(,)37 b(but)d(once)i(a)f(t)m(yp)s(e)h(has)e(b)s(een)h
6840 (en)m(tered)g(in)f(a)h(sym)m(b)s(ol)150 1869 y(table)25
6841 b(it)g(should)e(generally)h(not)i(b)s(e)e(c)m(hanged.)40
6842 b(This)23 b(helps)h(to)i(a)m(v)m(oid)g(duplicate)e(t)m(yp)s(es)h(and)f
6843 (to)i(prev)m(en)m(t)150 1978 y(unin)m(tended)32 b(side)h(e\013ects)j
6844 (when)d(a)i(t)m(yp)s(e)f(is)f(used)h(in)f(m)m(ultiple)f(places.)52
6845 b(Instead,)35 b(the)f Fi(copy)f Fn(metho)s(d)150 2088
6846 y(can)28 b(b)s(e)g(used)f(to)i(get)g(a)g(new)f(t)m(yp)s(e)g(that)h(is)e
6847 (the)h(same)h(as)f(the)g(existing)f(t)m(yp)s(e,)i(except)g(that)g(it)f
6848 (do)s(es)g(not)150 2198 y(cop)m(y)36 b(annotations.)57
6849 b(The)36 b(cop)m(y)g(can)g(then)f(b)s(e)h(freely)f(mo)s(di\014ed)e(and)
6850 i(installed)f(in)g(a)i(sym)m(b)s(ol)f(table.)150 2307
6851 y(If)41 b(necessary)-8 b(,)45 b(annotations)c(on)g(the)h(t)m(yp)s(e)f
6852 (can)g(b)s(e)g(copied)g(separately)g(using)f(the)h Fi(copy_annotes)150
6853 2417 y Fn(metho)s(d.)f(See)31 b(Section)f(8.7)h([SUIF)g(Ob)5
6854 b(jects],)31 b(page)g(70.)275 2551 y(When)38 b(a)h(t)m(yp)s(e)g(is)f
6855 (en)m(tered)h(in)e(a)i(sym)m(b)s(ol)f(table,)j(it)d(automatically)h
6856 (records)f(a)h(p)s(oin)m(ter)f(to)h(that)150 2661 y(paren)m(t)28
6857 b(table.)40 b(Similarly)-8 b(,)25 b(when)i(the)g(t)m(yp)s(e)h(is)f
6858 (remo)m(v)m(ed)i(from)e(the)h(sym)m(b)s(ol)e(table,)j(its)e(paren)m(t)h
6859 (p)s(oin)m(ter)150 2770 y(is)h(cleared.)41 b(The)30 b
6860 Fi(parent)f Fn(metho)s(d)g(retriev)m(es)i(this)e(paren)m(t)i(p)s(oin)m
6861 (ter.)275 2905 y(Eac)m(h)24 b(t)m(yp)s(e)g(has)g(a)h
6862 Fi(size)e Fn(metho)s(d)g(that)i(returns)e(the)h(n)m(um)m(b)s(er)f(of)h
6863 (bits)f(used)g(to)i(store)g(v)-5 b(alues)23 b(of)h(that)150
6864 3014 y(t)m(yp)s(e.)51 b(\(That)33 b(is)g(not)h(v)m(ery)g(meaningful)d
6865 (for)j(function)e(t)m(yp)s(es,)j(so)f(they)f(alw)m(a)m(ys)i(ha)m(v)m(e)
6866 f(a)g(\014xed)f(size)h(of)150 3124 y(zero.\))42 b(The)29
6867 b(size)h(for)f(a)i(t)m(yp)s(e)f(ma)m(y)g(or)g(ma)m(y)g(not)g(b)s(e)g
6868 (set)g(directly)-8 b(,)29 b(dep)s(ending)f(on)h(the)h(t)m(yp)s(e)g(op)s
6869 (erator.)150 3233 y(The)j(sizes)g(for)f(t)m(yp)s(e)i(no)s(des)e(from)h
6870 (eac)m(h)h(of)f(the)h(deriv)m(ed)e(classes)h(are)h(describ)s(ed)d(in)h
6871 (the)h(appropriate)150 3343 y(sections)d(b)s(elo)m(w.)275
6872 3477 y(Structures,)35 b(unions,)f(and)g(en)m(umerated)h(t)m(yp)s(es)f
6873 (are)h(all)f(giv)m(en)g(names.)54 b(The)34 b Fi(is_named)e
6874 Fn(metho)s(d)150 3587 y(c)m(hec)m(ks)k(to)f(see)g(if)f(a)g
6875 Fi(type_node)e Fn(is)i(one)h(of)f(these)h(t)m(yp)s(es.)53
6876 b(The)34 b(name)g(of)h(a)g(t)m(yp)s(e)g(should)d(b)s(e)i(unique)150
6877 3696 y(within)40 b(the)j(sym)m(b)s(ol)f(table)h(where)f(it)g(is)g
6878 (de\014ned,)j(but)d(the)h(t)m(yp)s(e)g(name)g(space)h(is)e(separate)h
6879 (from)150 3806 y(the)35 b(names)h(for)f(sym)m(b)s(ols.)53
6880 b(Because)37 b(the)e(t)m(yp)s(e)h(names)f(are)h(automatically)f(en)m
6881 (tered)g(in)f(the)i(lexicon)150 3916 y(\(see)c(Section)e(12.3)i
6882 ([Lexicon],)g(page)f(84\))h(when)e(the)h(t)m(yp)s(es)g(are)g(created,)h
6883 (they)f(can)g(b)s(e)f(compared)h(as)150 4025 y(p)s(oin)m(ters)e
6884 (without)h(doing)f(string)g(comparisons.)275 4159 y(More)24
6885 b(than)f(one)h Fi(type_node)d Fn(can)j(represen)m(t)g(the)g(same)g(t)m
6886 (yp)s(e.)39 b(That)23 b(is,)i(t)m(yp)s(es)e(ma)m(y)h(b)s(e)f(equiv)-5
6887 b(alen)m(t)150 4269 y(ev)m(en)34 b(if)e(they)i(are)f(represen)m(ted)h
6888 (b)m(y)f(di\013eren)m(t)g(t)m(yp)s(e)g(no)s(des.)49 b(Giv)m(en)33
6889 b(that,)i(the)e(only)g(reason)g(to)h(reuse)150 4379 y(existing)g(t)m
6890 (yp)s(es)g(is)g(to)h(k)m(eep)g(the)g(sym)m(b)s(ol)e(tables)h(from)h
6891 (getting)g(to)s(o)g(big.)52 b(The)34 b Fi(is_same)f Fn(metho)s(d)h(is)
6892 150 4488 y(pro)m(vided)f(to)j(c)m(hec)m(k)g(if)e(t)m(w)m(o)i(t)m(yp)s
6893 (es)f(are)h(equiv)-5 b(alen)m(t,)35 b(so)g(that)h(the)f(sym)m(b)s(ol)e
6894 (tables)i(can)g(b)s(e)f(k)m(ept)i(to)g(a)150 4598 y(reasonable)d(size.)
6895 47 b(Ho)m(w)m(ev)m(er,)36 b Fi(is_same)31 b Fn(is)h(only)g(in)m(tended)
6896 f(to)j(help)d(get)j(rid)d(of)i(duplicates.)47 b(Because)150
6897 4707 y(it)d(assumes)g(that)h(duplicate)e(t)m(yp)s(es)i(are)g(still)d(p)
6898 s(erfectly)i(legal,)k(it)c(ma)m(y)h(p)s(oten)m(tially)e(return)g(false)
6899 150 4817 y(negativ)m(es)29 b(to)f(a)m(v)m(oid)g(the)g(exp)s(ense)f(of)g
6900 (comparing)g(annotations)h(on)f(t)m(yp)s(e)h(no)s(des)2963
6901 4784 y Fg(1)3000 4817 y Fn(.)39 b(F)-8 b(or)29 b(named)e(t)m(yp)s(es,)
6902 150 4927 y(the)d Fi(is_same)f Fn(metho)s(d)h(assumes)f(that)i(all)f(t)m
6903 (yp)s(e)g(no)s(des)f(are)i(unique;)g(it)f(do)s(es)g(not)g(c)m(hec)m(k)i
6904 (for)e(structural)150 5036 y(equiv)-5 b(alence.)41 b(In)30
6905 b(most)h(cases,)h Fi(is_same)d Fn(need)h(not)h(b)s(e)f(called)g
6906 (directly)-8 b(.)41 b(Instead,)31 b(the)g(sym)m(b)s(ol)e(table)p
6907 150 5131 1200 4 v 192 5197 a Fg(1)275 5230 y Fn(Ev)m(en)k(if)g(the)g
6908 (curren)m(t)h(implemen)m(tation)e(compares)i(annotations,)g(future)f(v)
6909 m(ersions)g(of)g(the)h(SUIF)275 5340 y(library)27 b(ma)m(y)k(not,)g(so)
6910 g(do)f(not)h(dep)s(end)d(on)j(that)g(b)s(eha)m(vior.)p
6912 %%Page: 55 57
6913 55 56 bop 150 -116 a Fn(Chapter)30 b(7:)41 b(T)m(yp)s(es)2803
6914 b(55)150 299 y Fi(install_type)34 b Fn(metho)s(d)j(\(see)i(Section)f
6915 (5.5)g([Adding)f(and)g(Remo)m(ving)h(En)m(tries],)h(page)f(41\),)j
6916 (whic)m(h)150 408 y(uses)e Fi(is_same)f Fn(to)i(detect)h(and)d(a)m(v)m
6917 (oid)i(duplicate)f(t)m(yp)s(es,)j(is)c(the)i(recommended)f(w)m(a)m(y)h
6918 (to)h(add)d(new)150 518 y(t)m(yp)s(es)30 b(to)i(a)e(sym)m(b)s(ol)f
6919 (table.)275 667 y(SUIF)h(has)g(its)g(o)m(wn)g(de\014nition)e(of)i(t)m
6920 (yp)s(e)h(compatibilit)m(y)-8 b(.)39 b(Tw)m(o)31 b(t)m(yp)s(es)f(do)g
6921 (not)h(need)f(to)h(b)s(e)f(strictly)150 777 y(equiv)-5
6922 b(alen)m(t)25 b(to)h(b)s(e)e(compatible.)38 b(Besides)25
6923 b(the)h(rules)d(for)i(t)m(yp)s(e)h(equiv)-5 b(alence,)25
6924 b(the)h(follo)m(wing)d(conditions)150 887 y(de\014ne)30
6925 b(whic)m(h)f(t)m(yp)s(es)h(are)h(compatible:)225 1036
6926 y Fk(\017)60 b Fn(En)m(umerated)28 b(t)m(yp)s(es)h(and)f(in)m(tegers)g
6927 (of)h(the)g(same)f(size)h(are)g(compatible)e(if)h(they)g(are)h(b)s(oth)
6928 f(signed)330 1145 y(or)i(b)s(oth)g(unsigned.)225 1287
6929 y Fk(\017)60 b Fn(An)m(y)30 b(t)m(w)m(o)i(p)s(oin)m(ter)e(t)m(yp)s(es)g
6930 (are)h(compatible.)225 1429 y Fk(\017)60 b Fn(T)m(yp)s(e)30
6931 b(mo)s(di\014ers)e(and)i(annotations)g(do)h(not)f(a\013ect)i
6932 (compatibilit)m(y)-8 b(.)150 1611 y(The)32 b Fi(compatible)e
6933 Fn(metho)s(d)i(is)g(included)e(in)h(the)i Fi(type_node)d
6934 Fn(class)i(to)i(determine)d(if)h(t)m(w)m(o)i(t)m(yp)s(es)f(are)150
6935 1720 y(compatible)d(according)g(to)h(these)g(rules.)275
6936 1870 y(There)f(are)i(three)f(di\013eren)m(t)g(metho)s(ds)f(for)h(prin)m
6937 (ting)e(SUIF)i(t)m(yp)s(es.)43 b(The)31 b Fi(print_abbrev)c
6938 Fn(metho)s(d)150 1979 y(is)32 b(used)f(when)h(prin)m(ting)e(the)j
6939 (result)e(t)m(yp)s(es)i(of)f(instructions.)45 b(It)33
6940 b(prin)m(ts)e(the)h(t)m(yp)s(e)h(ID)g(n)m(um)m(b)s(er)e(along)150
6941 2089 y(with)d(a)i(single)e(c)m(haracter)j(to)f(iden)m(tify)e(the)h(t)m
6942 (yp)s(e)h(op)s(erator)g(follo)m(w)m(ed)f(b)m(y)g(a)h(p)s(erio)s(d)d
6943 (and)h(the)i(size)f(\(e.g.)150 2198 y(`)p Fi(i.32)p Fn(')37
6944 b(for)g(a)h(32-bit)f(in)m(teger\).)63 b(The)37 b Fi(print)f
6945 Fn(metho)s(d)g(sho)m(ws)i(the)f(ID)h(n)m(um)m(b)s(er)e(pre\014xed)g
6946 (with)g(`)p Fi(t:)p Fn(')150 2308 y(to)d(iden)m(tify)e(it)g(as)i(a)f(t)
6947 m(yp)s(e.)46 b(The)32 b Fi(print_full)d Fn(metho)s(d)j(prin)m(ts)f(all)
6948 g(of)h(the)h(t)m(yp)s(e)f(information)e(and)i(is)150
6949 2418 y(used)f(when)f(listing)g(sym)m(b)s(ol)g(tables.)44
6950 b(It's)32 b(optional)f Fi(depth)f Fn(parameter)i(can)g(b)s(e)e(used)h
6951 (to)i(sp)s(ecify)d(the)150 2527 y(inden)m(tation)f(lev)m(el.)275
6952 2677 y(Man)m(y)j(kinds)e(of)j(t)m(yp)s(e)f(no)s(des)f(con)m(tain)i
6953 (\014elds)d(that)j(refer)f(to)g(other)h(t)m(yp)s(es.)46
6954 b(Moreo)m(v)m(er,)35 b(eac)m(h)e(t)m(yp)s(e)150 2786
6955 y(ma)m(y)f(con)m(tain)f(annotations)h(that)f(include)e(references)j(to)
6956 g(other)f(t)m(yp)s(es.)44 b(With)30 b(one)i(exception,)g(ho)m(w-)150
6957 2896 y(ev)m(er,)d(recursiv)m(e)d(t)m(yp)s(e)h(references)g(are)h(not)f
6958 (allo)m(w)m(ed.)39 b(In)26 b(other)i(w)m(ords,)f(if)f(the)h(t)m(yp)s(e)
6959 g(no)s(des)f(are)h(view)m(ed)150 3005 y(as)35 b(a)f(directed)g(graph)g
6960 (with)f(the)i(references)g(b)s(et)m(w)m(een)g(them)f(forming)f(the)i
6961 (edges,)h(there)f(can)f(b)s(e)g(no)150 3115 y(cycles.)74
6962 b(T)-8 b(o)42 b(supp)s(ort)d(recursiv)m(e)i(data)h(structures,)i(w)m(e)
6963 e(allo)m(w)e(an)i(exception)f(to)h(this)f(rule:)61 b(t)m(yp)s(es)150
6964 3225 y(within)28 b(a)j(\014eld)e(of)h(a)h(structure)f(or)g(union)f(ma)m
6965 (y)i(refer)f(bac)m(k)h(to)g(the)g(structure)e(or)i(union)d(t)m(yp)s(e.)
6966 150 3519 y Fl(7.2)68 b(Base)45 b(T)l(yp)t(es)275 3726
6967 y Fn(The)23 b Fi(TYPE_VOID)p Fn(,)f Fi(TYPE_INT)p Fn(,)h
6968 Fi(TYPE_FLOAT)p Fn(,)g(and)g Fi(TYPE_ENUM)e Fn(op)s(erators)j(de\014ne)
6969 f(the)h(base)g(t)m(yp)s(es.)150 3836 y(Whereas)35 b(other)f(kinds)f(of)
6970 h(t)m(yp)s(es)g(are)h(de\014ned)e(in)g(terms)h(of)g(existing)g(t)m(yp)s
6971 (es,)h(the)g(base)f(t)m(yp)s(es)g(stand)150 3945 y(alone.)42
6972 b(The)30 b Fi(base_type)e Fn(class)i(is)g(deriv)m(ed)g(from)g
6973 Fi(type_node)e Fn(to)j(hold)e(the)i(base)g(t)m(yp)s(es.)42
6974 b(It)30 b(has)h(only)150 4055 y(t)m(w)m(o)g(\014elds:)39
6975 b(the)30 b(size)g(and)f(a)i(\015ag)f(to)h(indicate)e(whether)g(in)m
6976 (teger)h(and)g(en)m(umerated)g(t)m(yp)s(es)g(are)g(signed)150
6977 4165 y(or)g(unsigned.)275 4314 y(The)38 b Fi(set_size)f
6978 Fn(metho)s(d)i(sets)h(the)f(size)g(of)h(a)f(base)h(t)m(yp)s(e)f(in)f
6979 (bits.)66 b(T)m(yp)s(es)39 b(with)f(a)h Fi(TYPE_VOID)150
6980 4424 y Fn(op)s(erator)34 b(should)e(alw)m(a)m(ys)j(ha)m(v)m(e)g(a)f
6981 (size)g(of)g(zero.)52 b(In)m(teger)35 b(and)e(\015oating-p)s(oin)m(t)g
6982 (t)m(yp)s(es)h(can)g(ha)m(v)m(e)i(an)m(y)150 4533 y(sizes,)28
6983 b(although)f(normally)f(the)h(sizes)h(are)g(restricted)f(b)m(y)g(the)h
6984 (target)h(mac)m(hine)e(parameters)h(\(see)g(Sec-)150
6985 4643 y(tion)e(12.4)j([T)-8 b(arget)28 b(Mac)m(hine)f(P)m(arameters],)i
6986 (page)f(85\).)40 b(Other)27 b(sizes)f(ma)m(y)h(cause)h(the)f(co)s(de)g
6987 (generator)150 4752 y(to)k(fail.)40 b(F)-8 b(or)31 b(in)m(teger)f(and)g
6988 (en)m(umerated)h(t)m(yp)s(es,)g(the)f Fi(is_signed)e
6989 Fn(metho)s(d)i(is)f(used)h(to)h(c)m(hec)m(k)h(the)f(\015ag)150
6990 4862 y(that)i(indicates)e(whether)h(they)g(are)h(signed)e(or)h
6991 (unsigned.)45 b(The)31 b Fi(set_signed)f Fn(metho)s(d)h(c)m(hanges)j
6992 (the)150 4971 y(v)-5 b(alue)30 b(of)g(the)h(\015ag.)275
6993 5121 y(Besides)h(the)h(features)g(that)h(they)f(share)f(with)g(the)h
6994 (other)g(base)g(t)m(yp)s(es,)h(en)m(umerated)f(t)m(yp)s(es)g(ha)m(v)m
6995 (e)150 5230 y(other)45 b(\014elds)f(and)g(metho)s(ds)h(used)f(to)i
6996 (record)e(the)i(names)f(and)f(v)-5 b(alues)44 b(of)i(their)e(mem)m(b)s
6997 (ers.)84 b(See)150 5340 y(Section)30 b(7.7)i([En)m(umerated)e(T)m(yp)s
6998 (es],)g(page)h(59.)p eop
6999 %%Page: 56 58
7000 56 57 bop 150 -116 a Fn(56)2385 b(The)30 b(SUIF)g(V)-8
7001 b(ersion)30 b(1)h(Library)150 299 y Fl(7.3)68 b(P)l(oin)l(ter)46
7002 b(T)l(yp)t(es)275 494 y Fn(P)m(oin)m(ter)31 b(t)m(yp)s(es)g(are)g
7003 (de\014ned)e(using)h(the)h Fi(TYPE_PTR)d Fn(op)s(erator)j(and)f(the)h
7004 Fi(ptr_type)e Fn(deriv)m(ed)h(class.)150 604 y(The)h
7005 Fi(ref_type)f Fn(metho)s(d)h(returns)f(the)i(t)m(yp)s(e)g(that)g(is)f
7006 (p)s(oin)m(ted)g(to)h(b)m(y)g(a)g(particular)e Fi(ptr_type)f
7007 Fn(no)s(de.)150 714 y(The)h Fi(set_ref_type)d Fn(metho)s(d)i(can)i(b)s
7008 (e)e(used)h(to)g(c)m(hange)i(this)d(referen)m(t)h(t)m(yp)s(e.)41
7009 b(The)30 b(size)g(of)g(a)h(p)s(oin)m(ter)150 823 y(t)m(yp)s(e)k(is)e
7010 (determined)h(b)m(y)g(the)h(target)h(mac)m(hine)e(\(see)i(Section)e
7011 (12.4)i([T)-8 b(arget)36 b(Mac)m(hine)f(P)m(arameters],)150
7012 933 y(page)c(85\);)h(it)e(cannot)h(b)s(e)f(c)m(hanged)h(for)f
7013 (individual)25 b(p)s(oin)m(ter)30 b(t)m(yp)s(es.)150
7014 1197 y Fl(7.4)68 b(Arra)l(y)45 b(T)l(yp)t(es)275 1393
7015 y Fn(A)28 b(SUIF)g(arra)m(y)h(t)m(yp)s(e)g(de\014nes)f(a)g(new)g(t)m
7016 (yp)s(e)h(that)g(is)f(a)g(one-dimensional)f(v)m(ector)j(with)d(elemen)m
7017 (ts)i(of)150 1503 y(another)h(t)m(yp)s(e.)40 b(Multi-dimensional)26
7018 b(arra)m(ys)k(are)g(handled)d(as)j(nested)f(arra)m(ys)h(\(i.e.)41
7019 b(arra)m(ys)30 b(of)f(arra)m(ys\))150 1612 y(as)36 b(in)e(C.)h(The)g
7020 (size)g(of)g(an)h(arra)m(y)g(is)e(sp)s(eci\014ed)g(b)m(y)h(the)g(upp)s
7021 (er)f(and)h(lo)m(w)m(er)g(b)s(ounds.)54 b(Eac)m(h)36
7022 b(b)s(ound)d(is)150 1722 y(either)26 b(an)h(in)m(teger)g(expression)e
7023 (or)h(unkno)m(wn.)38 b(If)27 b(the)f(b)s(ound)f(is)h(an)g(in)m(teger)h
7024 (expression,)f(it)h(can)f(either)150 1831 y(b)s(e)36
7025 b(an)h(in)m(teger)g(kno)m(wn)g(at)h(compile)e(time,)i(or)f(a)g(SUIF)g
7026 (v)-5 b(ariable)36 b(sym)m(b)s(ol)f(represen)m(ting)i(an)g(in)m(teger)
7027 150 1941 y(v)-5 b(alue)30 b(to)h(b)s(e)f(computed)g(at)h(run)e(time.)
7028 275 2078 y(The)g(upp)s(er)f(and)i(lo)m(w)m(er)h(b)s(ounds)d(of)i(an)g
7029 (arra)m(y)h(t)m(yp)s(e)f(are)h(stored)f(in)f(ob)5 b(jects)31
7030 b(of)g(the)f Fi(array_bound)150 2188 y Fn(class.)66 b(An)38
7031 b(arra)m(y)h(b)s(ound)e(can)i(b)s(e)f(one)h(of)g(three)g(things,)h(an)e
7032 (in)m(teger)h(constan)m(t,)k(a)c(SUIF)f(v)-5 b(ariable)150
7033 2298 y(sym)m(b)s(ol,)33 b(or)g(en)m(tirely)f(unkno)m(wn.)47
7034 b(The)32 b Fi(is_constant)p Fn(,)f Fi(is_variable)p Fn(,)g(and)h
7035 Fi(is_unknown)f Fn(metho)s(ds)150 2407 y(c)m(hec)m(k)i(for)d(these)i
7036 (three)f(conditions.)41 b(If)31 b(the)g(b)s(ound)e(is)h(a)h(constan)m
7037 (t,)i(the)e Fi(constant)e Fn(metho)s(d)h(returns)150
7038 2517 y(the)f(in)m(teger)g(v)-5 b(alue)28 b(of)h(the)g(b)s(ound.)38
7039 b(Lik)m(ewise,)28 b(if)g(it)g(is)g(a)h(v)-5 b(ariable,)28
7040 b(the)h Fi(variable)d Fn(metho)s(d)i(returns)g(a)150
7041 2626 y(p)s(oin)m(ter)k(to)h(the)g(v)-5 b(ariable)31 b(sym)m(b)s(ol.)46
7042 b(The)33 b Fi(print)e Fn(metho)s(d)h(is)g(also)g(a)m(v)-5
7043 b(ailable)32 b(to)h(prin)m(t)f(out)h(the)f(v)-5 b(alue)150
7044 2736 y(of)36 b(an)f(arra)m(y)h(b)s(ound.)55 b(The)35
7045 b(global)g(v)-5 b(ariable)34 b Fi(unknown_bound)e Fn(is)j(a)h
7046 (prede\014ned)e(arra)m(y)i(b)s(ound)d(that)150 2846 y(can)e(b)s(e)e
7047 (used)h(when)f(a)i(b)s(ound)d(is)i(unkno)m(wn.)275 2983
7048 y(A)23 b(t)m(yp)s(e)h(no)s(de)e(with)g(a)i Fi(TYPE_ARRAY)d
7049 Fn(op)s(erator)j(is)e(stored)h(in)g(an)g Fi(array_type)d
7050 Fn(ob)5 b(ject.)40 b(The)23 b Fi(array_)150 3093 y(type)35
7051 b Fn(class)h(con)m(tains)g(three)g(\014elds:)50 b(the)36
7052 b(lo)m(w)m(er)h(and)e(upp)s(er)f(b)s(ounds)g(and)h(the)h(elemen)m(t)h
7053 (t)m(yp)s(e.)57 b(The)150 3202 y Fi(lower_bound)p Fn(,)31
7054 b Fi(upper_bound)p Fn(,)g(and)h Fi(elem_type)e Fn(metho)s(ds)j(retriev)
7055 m(e)g(the)g(con)m(ten)m(ts)i(of)e(these)g(\014elds,)150
7056 3312 y(and)i(the)g Fi(set_lower_bound)p Fn(,)e Fi(set_upper_bound)p
7057 Fn(,)f(and)j Fi(set_elem_type)d Fn(metho)s(ds)i(c)m(hange)j(their)150
7058 3421 y(v)-5 b(alues.)37 b(The)23 b(SUIF)f(de\014nition)f(of)h(arra)m
7059 (ys)h(sa)m(ys)h(that)f(the)g(elemen)m(ts)g(will)d(b)s(e)i(stored)h
7060 (adjacen)m(tly)-8 b(.)39 b(If)22 b(this)150 3531 y(w)m(ould)33
7061 b(violate)g(alignmen)m(t)g(restrictions,)h(the)g(elemen)m(t)g(t)m(yp)s
7062 (es)g(m)m(ust)g(b)s(e)f(padded)f(with)h(extra)h(space.)150
7063 3640 y(F)-8 b(or)31 b(example,)g(if)e(some)i(mac)m(hine)g(has)f(24)h
7064 (bit)f(in)m(tegers)h(with)e(a)i(32)g(bit)f(alignmen)m(t)g(requiremen)m
7065 (t,)g(the)150 3750 y(24)25 b(bit)e(in)m(tegers)i(ma)m(y)f(not)h(b)s(e)e
7066 (used)h(directly)f(as)h(arra)m(y)h(elemen)m(ts;)i(instead,)e(one)f(w)m
7067 (ould)f(ha)m(v)m(e)i(to)g(create)150 3860 y(a)34 b(structure)f(of)g
7068 (size)h(32)g(bits)e(that)i(con)m(tains)g(a)g(24)g(bit)f(in)m(teger)g
7069 (at)i(o\013set)f(zero)g(and)f(no)h(other)f(\014elds,)150
7070 3969 y(and)d(then)g(use)g(arra)m(ys)h(of)f(this)f(structure)h(t)m(yp)s
7071 (e.)275 4107 y(The)i(b)s(ounds)g(of)h(an)g(arra)m(y)h(t)m(yp)s(e)g
7072 (tell)f(t)m(w)m(o)h(things:)46 b(the)34 b(n)m(um)m(b)s(er)e(of)h
7073 (elemen)m(ts)h(and)f(the)g(ho)m(w)h(the)150 4216 y(index)24
7074 b(of)h(an)g(arra)m(y)h(access)h(instruction)c(will)f(b)s(e)j(in)m
7075 (terpreted.)38 b(The)25 b(n)m(um)m(b)s(er)f(of)h(elemen)m(ts)h
7076 (determines)150 4326 y(the)f(size)g(of)g(the)h(arra)m(y)f({)h(the)f
7077 (size)g(will)e(b)s(e)h(the)h(n)m(um)m(b)s(er)f(of)h(elemen)m(ts)h
7078 (times)e(the)i(size)f(of)g(eac)m(h)h(elemen)m(t.)150
7079 4435 y(An)m(y)j(arra)m(y)g(t)m(yp)s(e)f(with)g(an)g(upp)s(er)f(or)h(lo)
7080 m(w)m(er)h(b)s(ound)e(that)i(is)e(an)m(ything)h(but)g(an)h(in)m(teger)g
7081 (constan)m(t)h(will)150 4545 y(not)j(ha)m(v)m(e)i(a)e(size)h(that)f(is)
7082 g(kno)m(wn)f(at)i(compile)e(time,)i(so)g(suc)m(h)f(a)g(t)m(yp)s(e)h
7083 (cannot)f(b)s(e)g(used)f(an)m(ywhere)i(a)150 4655 y(kno)m(wn)h(size)h
7084 (is)f(required,)h(suc)m(h)f(as)h(for)g(a)g(v)-5 b(ariable)35
7085 b(t)m(yp)s(e,)j(an)e(expression)e(t)m(yp)s(e,)k(or)e(the)g(t)m(yp)s(e)g
7086 (of)g(an)150 4764 y(ob)5 b(ject)31 b(copied)f(b)m(y)g(a)h
7087 Fi(memcpy)e Fn(instruction.)275 4902 y(The)37 b(other)g(time)h(when)e
7088 (arra)m(y)i(b)s(ounds)e(are)i(meaningful)d(is)i(in)f(an)h(arra)m(y)h
7089 (access)h(\(a)f(SUIF)g Fi(in_)150 5011 y(array)e Fn(instruction\).)59
7090 b(There)36 b(eac)m(h)i(index)e(is)g(required)f(to)j(b)s(e)e(b)s(et)m(w)
7091 m(een)i(the)f(giv)m(en)g(b)s(ounds)e(or)i(the)150 5121
7092 y(result)30 b(is)g(unde\014ned.)40 b(The)30 b(lo)s(cation)h(referred)f
7093 (to)h(is)f(determined)g(b)m(y)h(subtracting)f(the)h(lo)m(w)m(er)g(b)s
7094 (ound)150 5230 y(from)36 b(the)g(index)e(and)i(then)f(m)m(ultiplying)e
7095 (b)m(y)j(the)g(size)g(of)g(the)g(next)g(lo)m(w)m(er)g(dimension,)f(or)h
7096 (elemen)m(t)150 5340 y(size)e(if)f(there)i(are)g(no)f(more)g
7097 (dimensions)e(in)h(the)i(arra)m(y)f(access)i(instruction.)51
7098 b(The)33 b(size)i(in)e(this)g(case)p eop
7099 %%Page: 57 59
7100 57 58 bop 150 -116 a Fn(Chapter)30 b(7:)41 b(T)m(yp)s(es)2803
7101 b(57)150 299 y(is)38 b(not)h(necessarily)f(kno)m(wn)h(at)h(compile)e
7102 (time)h(and)f(is)g(considered)g(to)i(b)s(e)e(the)i(di\013erence)e(b)s
7103 (et)m(w)m(een)150 408 y(the)c(upp)s(er)e(and)h(lo)m(w)m(er)h(b)s(ounds)
7104 d(plus)h(one)i(\(the)g(n)m(um)m(b)s(er)f(of)h(elemen)m(ts\))g(times)f
7105 (the)h(size)g(of)g(the)g(next)150 518 y(lo)m(w)m(er)42
7106 b(dimension,)g(or)g(the)g(elemen)m(t)g(size)f(if)g(this)f(is)h(the)h
7107 (smallest)f(dimension.)72 b(The)41 b(b)s(ounds)f(are)150
7108 628 y(ev)-5 b(aluated)31 b(after)h(all)d(sub-expressions)g(of)i(the)g
7109 (arra)m(y)h(access)g(instruction)d(ha)m(v)m(e)j(b)s(een)e(ev)-5
7110 b(aluated)32 b(and)150 737 y(b)s(efore)23 b(the)h(result)e(of)i(the)g
7111 (arra)m(y)g(access)g(instruction)e(itself.)37 b(An)m(y)24
7112 b(b)s(ounds)d(needed)i(in)f(this)h(calculation)150 847
7113 y(m)m(ust)35 b(ev)-5 b(aluate)35 b(to)g(in)m(tegers)g(when)f(this)g
7114 (arra)m(y)h(access)h(instruction)d(is)g(executed,)k(so)e(they)g(m)m
7115 (ust)g(b)s(e)150 956 y(in)m(teger)25 b(constan)m(ts)h(or)f(v)-5
7116 b(ariable)24 b(sym)m(b)s(ols,)h(and)f(if)g(v)-5 b(ariable)24
7117 b(sym)m(b)s(ols)g(they)h(m)m(ust)g(ha)m(v)m(e)h(de\014ned)e(v)-5
7118 b(alues)150 1066 y(at)33 b(this)e(p)s(oin)m(t.)44 b(Note)33
7119 b(that)g(this)e(implies)e(that)k(the)f(arra)m(y)g(t)m(yp)s(e)h(for)e
7120 (an)h(arra)m(y)h(access)g(ma)m(y)f(not)h(ha)m(v)m(e)150
7121 1176 y(unkno)m(wn)21 b(lo)m(w)m(er)i(b)s(ounds)e(and)h(ma)m(y)i(ha)m(v)
7122 m(e)g(only)e(one)h(unkno)m(wn)e(upp)s(er)g(b)s(ound,)i(that)g(of)g(the)
7123 g(outermost)150 1285 y(dimension.)43 b(The)32 b Fi(are_bounds_unknown)
7124 27 b Fn(metho)s(d)32 b(c)m(hec)m(ks)h(if)e(the)i(upp)s(er)d(b)s(ound)g
7125 (of)i(an)g(arra)m(y)h(t)m(yp)s(e)150 1395 y(is)c(unkno)m(wn.)275
7126 1533 y(Note)j(also)e(that)h(all)f(of)h(this)e(information)g(from)i(the)
7127 g(arra)m(y)g(t)m(yp)s(e)g(is)e(also)i(a)m(v)-5 b(ailable)30
7128 b(in)f(a)i(di\013eren)m(t)150 1642 y(form)j(from)f(the)i
7129 Fi(in_array)d Fn(class,)j(b)s(et)m(w)m(een)g(the)f Fi(bound)f
7130 Fn(expressions)g(and)g Fi(offset_op)f Fn(expression.)150
7131 1752 y(The)27 b(results)e(are)j(required)d(to)j(b)s(e)e(the)i(same)f
7132 (at)h(run)e(time)g(whether)h(the)g(arra)m(y)h(t)m(yp)s(e)f(b)s(ound)e
7133 (informa-)150 1862 y(tion)h(is)g(used)h(or)f(whether)h(the)g
7134 Fi(bound)e Fn(and)i Fi(offset_op)d Fn(expressions)i(are)h(used,)g(or)g
7135 (else)g(the)g(resulting)150 1971 y(b)s(eha)m(vior)37
7136 b(is)g(unde\014ned.)61 b(This)37 b(redundancy)f(allo)m(ws)h(more)h
7137 (\015exibilit)m(y)d(in)i(analyzing)g(arra)m(y)i(access)150
7138 2081 y(patterns.)f(Co)s(de)24 b(transformation)f(passes)g(can)i(treat)f
7139 (the)g Fi(in_array)e Fn(sub-expressions)f(lik)m(e)j(an)m(y)g(other)150
7140 2190 y(expressions)f(and)h(propagate)i(additional)c(information)h(in,)i
7141 (and)f(dep)s(endence)f(analysis)g(on)i(individual)150
7142 2300 y(accesses)37 b(can)e(lo)s(ok)g(at)h(these)g(general)f
7143 (expressions.)54 b(Co)s(de)34 b(dealing)g(with)g(ob)5
7144 b(jects)36 b(and)f(t)m(yp)s(es)g(only)150 2410 y(has)30
7145 b(to)h(deal)f(with)f(the)i(sym)m(b)s(olic)e(placeholders.)275
7146 2548 y(Arra)m(y)36 b(b)s(ounds)e(are)j(sub)5 b(ject)36
7147 b(to)h(certain)f(constrain)m(ts.)59 b(The)36 b(upp)s(er)e(b)s(ound)g
7148 (ma)m(y)j(nev)m(er)g(b)s(e)f(less)150 2657 y(than)c(the)h(lo)m(w)m(er)f
7149 (b)s(ound.)45 b(If)32 b(b)s(oth)g(are)h(constan)m(ts,)h(this)d
7150 (constrain)m(t)i(applies)d(to)k(those)e(constan)m(ts.)48
7151 b(If)150 2767 y(one)27 b(or)g(b)s(oth)g(are)g(sym)m(b)s(olic)e(b)s
7152 (ounds,)h(this)g(constrain)m(t)h(m)m(ust)g(hold)f(for)h(ev)m(ery)h
7153 (arra)m(y)f(access)h(for)f(whic)m(h)150 2876 y(this)h(is)h(the)h(arra)m
7154 (y)g(t)m(yp)s(e.)41 b(Sym)m(b)s(olic)27 b(b)s(ounds)h(are)i(t)m
7155 (ypically)e(lo)s(cal)h(v)-5 b(ariables)28 b(that)i(are)g(assigned)f
7156 (once)150 2986 y(eac)m(h)37 b(at)g(the)g(v)m(ery)f(b)s(eginning)e(of)i
7157 (a)g(pro)s(cedure)f(and)h(used)f(only)h(as)g(b)s(ounds,)g(so)g(their)f
7158 (v)-5 b(alues)36 b(ha)m(v)m(e)150 3096 y(the)29 b(same)g(scop)s(e)g(as)
7159 g(the)f(t)m(yp)s(es)h(they)g(are)g(used)f(in.)39 b(This)27
7160 b(corresp)s(onds)g(directly)g(to)j(the)e(declarations)150
7161 3205 y(in)35 b(F)-8 b(ortran)36 b(co)s(de)g(of)g(arra)m(y)h(t)m(yp)s
7162 (es)f(with)f(non-constan)m(t)i(b)s(ounds,)e(but)g(this)g(particular)f
7163 (form)i(is)f(not)150 3315 y(required)42 b(b)m(y)i(SUIF,)g(and)f(hea)m
7164 (vily)g(transformed)g(co)s(de)h(ma)m(y)h(b)s(e)e(somewhat)i(di\013eren)
7165 m(t.)80 b(What)45 b(is)150 3424 y(required)25 b(is)g(that)i(sym)m(b)s
7166 (olic)e(b)s(ounds)f(not)j(b)s(e)f(sub-v)-5 b(ariables)24
7167 b(or)j(call-b)m(y-reference)g(parameters,)h(since)150
7168 3534 y(these)j(are)g(really)e(just)h(short-hand)f(for)h(other)h
7169 (expressions)e(\(see)i(Chapter)f(10)h([F)-8 b(ortran],)32
7170 b(page)f(77\).)150 3800 y Fl(7.5)68 b(F)-11 b(unction)44
7171 b(T)l(yp)t(es)275 3996 y Fn(The)g Fi(TYPE_FUNC)e Fn(op)s(erator)j(is)e
7172 (used)h(with)f(the)i Fi(func_type)d Fn(deriv)m(ed)i(t)m(yp)s(e)h(class)
7173 f(to)i(describ)s(e)150 4106 y(the)35 b(t)m(yp)s(es)g(of)g(SUIF)g(pro)s
7174 (cedures.)52 b(A)35 b(function)f(t)m(yp)s(e)h(includes)d(the)j(t)m(yp)s
7175 (e)g(of)g(the)g(return)f(v)-5 b(alue)35 b(and)150 4216
7176 y(optionally)i(the)i(t)m(yp)s(es)g(of)f(the)h(argumen)m(ts)g(as)g(w)m
7177 (ell.)64 b(The)39 b Fi(return_type)c Fn(and)j Fi(set_return_type)150
7178 4325 y Fn(metho)s(ds)44 b(access)i(the)g(return)d(t)m(yp)s(e)i
7179 (\014eld.)83 b(The)45 b(t)m(yp)s(e)g(system)g(itself)f(places)g(no)h
7180 (restrictions)f(on)150 4435 y(the)h(return)g(t)m(yp)s(es,)k(but)c(the)g
7181 (SUIF)g(call)g(and)f(return)h(instructions)e(do.)85 b(See)46
7182 b(Section)f(4.7)h([Call)150 4544 y(Instructions],)29
7183 b(page)i(33)275 4682 y(Most)38 b(of)g(the)g(complexit)m(y)g(of)g
7184 (function)f(t)m(yp)s(es)g(in)m(v)m(olv)m(es)h(the)g(argumen)m(ts.)64
7185 b(P)m(oin)m(ters)38 b(to)h(the)f(ar-)150 4792 y(gumen)m(t)33
7186 b(t)m(yp)s(es)f(are)h(stored)f(in)g(a)g(dynamically-allo)s(cated)f
7187 (arra)m(y)-8 b(.)48 b(The)31 b(n)m(um)m(b)s(er)h(of)g(argumen)m(ts,)i
7188 (and)150 4902 y(th)m(us)e(the)h(size)g(of)g(the)g(arra)m(y)-8
7189 b(,)34 b(is)e(stored)h(in)e(a)i(\014eld)e(that)j(can)f(b)s(e)f
7190 (accessed)i(with)d(the)i Fi(num_args)e Fn(and)150 5011
7191 y Fi(set_num_args)20 b Fn(metho)s(ds.)38 b(The)23 b(n)m(um)m(b)s(er)f
7192 (of)i(argumen)m(ts)g(can)g(b)s(e)f(c)m(hanged)h(at)g(an)m(y)g(time;)i
7193 (if)d(necessary)150 5121 y(the)28 b(argumen)m(t)h(arra)m(y)f(will)e(b)s
7194 (e)h(reallo)s(cated.)40 b(The)28 b(t)m(yp)s(e)g(of)g(a)g(particular)f
7195 (argumen)m(t)h(can)h(b)s(e)e(retriev)m(ed)150 5230 y(with)36
7196 b(the)h Fi(arg_type)d Fn(metho)s(d)j(and)f(set)h(with)f(the)h
7197 Fi(set_arg_type)c Fn(metho)s(d.)60 b(The)36 b(argumen)m(ts)i(are)150
7198 5340 y(n)m(um)m(b)s(ered)29 b(b)s(eginning)f(with)h(zero.)p
7200 %%Page: 58 60
7201 58 59 bop 150 -116 a Fn(58)2385 b(The)30 b(SUIF)g(V)-8
7202 b(ersion)30 b(1)h(Library)275 299 y(Argumen)m(t)e(t)m(yp)s(es)h(are)g
7203 (under)e(the)i(same)g(restrictions)f(as)h(result)f(t)m(yp)s(es)g(of)h
7204 (instructions)e(\(see)i(Sec-)150 408 y(tion)g(4.1.3)h([Result)f(T)m(yp)
7205 s(es],)g(page)h(25\))g({)f(they)g(m)m(ust)g(b)s(e)g(ob)5
7206 b(ject)31 b(t)m(yp)s(es)f(with)e(kno)m(wn,)i(non-zero)h(size.)275
7207 540 y(Since)d(functions)h(can)h(b)s(e)f(declared)g(in)f(C)i(without)e
7208 (complete)i(protot)m(yp)s(es,)h(a)f(function)e(t)m(yp)s(e)i(ma)m(y)150
7209 650 y(not)k(b)s(e)f(able)g(to)h(include)d(an)m(y)j(information)e(ab)s
7210 (out)h(the)h(argumen)m(ts.)51 b(This)31 b(is)i(indicated)f(in)g(a)i
7211 (SUIF)150 759 y(function)42 b(t)m(yp)s(e)i(b)m(y)f(the)h(result)f(of)g
7212 (the)h Fi(args_known)d Fn(metho)s(d.)80 b(This)42 b(\015ag)i(can)f(b)s
7213 (e)g(set)h(with)f(the)150 869 y Fi(set_args_known)35
7214 b Fn(and)k Fi(set_args_unknown)34 b Fn(metho)s(ds.)66
7215 b(Setting)39 b Fi(args_known)e Fn(F)-10 b(ALSE)38 b(sets)i(the)150
7216 978 y(argumen)m(t)30 b(coun)m(t)g(to)g(zero)g(and)e(the)i
7217 Fi(has_varargs)c Fn(\015ag)k(to)g(F)-10 b(ALSE.)29 b(Con)m(v)m(ersely)
7218 -8 b(,)30 b(setting)f(the)h(argu-)150 1088 y(men)m(t)d(coun)m(t)h(to)g
7219 (a)f(non-zero)h(v)-5 b(alue)26 b(or)h(the)h Fi(has_varargs)c
7220 Fn(\015ag)j(to)h(TR)m(UE)f(sets)g(the)g Fi(args_known)e
7221 Fn(\015ag)150 1198 y(to)31 b(TR)m(UE.)275 1329 y(Some)38
7222 b(functions)e(in)h(C)g(and)h(other)g(languages)g(ha)m(v)m(e)i(a)e(v)-5
7223 b(ariable)37 b(n)m(um)m(b)s(er)f(of)j(argumen)m(ts.)63
7224 b(The)150 1439 y(SUIF)34 b(function)f(t)m(yp)s(es)h(supp)s(ort)e(this)h
7225 (b)m(y)h(k)m(eeping)g(a)h(\015ag)f(to)h(indicate)e(if)g(there)i(ma)m(y)
7226 g(b)s(e)e(additional)150 1548 y(argumen)m(ts)f(b)s(esides)f(the)h(ones)
7227 g(that)h(are)f(explicitly)e(listed.)44 b(The)32 b Fi(has_varargs)d
7228 Fn(and)i Fi(set_varargs)150 1658 y Fn(metho)s(ds)25 b(access)j(this)d
7229 (\015ag.)40 b(Note)27 b(that)g(the)f Fi(has_varargs)e
7230 Fn(\015ag)i(should)e(not)j(b)s(e)e(used)h(if)f(nothing)g(else)150
7231 1767 y(is)k(kno)m(wn)h(ab)s(out)g(the)h(argumen)m(ts.)150
7232 2016 y Fl(7.6)68 b(Structure)45 b(and)f(Union)i(T)l(yp)t(es)275
7233 2206 y Fn(Structure)26 b(and)g(union)f(t)m(yp)s(es)i(are)g(de\014ned)e
7234 (with)h(the)h Fi(TYPE_STRUCT)d Fn(and)i Fi(TYPE_UNION)e
7235 Fn(op)s(erators)150 2315 y(and)37 b(use)h(the)g Fi(struct_type)c
7236 Fn(deriv)m(ed)j(t)m(yp)s(e)h(class.)63 b(Both)39 b(of)f(these)g(t)m(yp)
7237 s(es)g(include)d(a)j(name)g(and)g(a)150 2425 y(list)29
7238 b(of)i(\014elds.)39 b(The)30 b(di\013erence)g(b)s(et)m(w)m(een)h(them)f
7239 (is)g(that)h(the)f(\014elds)f(of)i(a)f(union)f(are)i(all)e(stored)i(at)
7240 g(the)150 2534 y(same)g(o\013set)g(so)f(that)h(only)e(one)h(\014eld)f
7241 (ma)m(y)i(b)s(e)e(used)h(at)g(a)h(time,)f(while)e(the)j(\014elds)d(of)i
7242 (a)h(structure)f(are)150 2644 y(not)35 b(allo)m(w)m(ed)f(to)h(o)m(v)m
7243 (erlap.)53 b(The)34 b Fi(name)f Fn(metho)s(d)h(returns)f(the)i(name)f
7244 (of)h(a)g(structure)f(or)g(union)f(t)m(yp)s(e,)150 2754
7245 y(whic)m(h)h(should)e(b)s(e)j(distinct)e(from)h(the)h(names)g(of)g
7246 (other)g(t)m(yp)s(es)g(within)d(the)j(sym)m(b)s(ol)e(table)i(where)f
7247 (it)150 2863 y(is)i(de\014ned.)60 b(The)37 b(name)g(is)f(automatically)
7248 h(en)m(tered)h(in)e(the)h(lexicon)g(\(see)h(Section)f(12.3)h
7249 ([Lexicon],)150 2973 y(page)31 b(84\))h(when)d(it)h(is)f(set)i(with)e
7250 (the)i Fi(set_name)d Fn(metho)s(d.)275 3104 y(The)i Fi(struct_type)e
7251 Fn(class)j(con)m(tains)h(a)f(\014eld)f(to)i(record)f(the)h(total)g
7252 (size)f(of)g(the)h(t)m(yp)s(e)f(in)f(bits.)42 b(The)150
7253 3214 y Fi(set_size)25 b Fn(metho)s(d)i(is)g(used)g(to)h(assign)f(to)h
7254 (this)f(\014eld.)38 b(Because)29 b(structure)e(and)g(union)f(t)m(yp)s
7255 (es)h(ma)m(y)i(b)s(e)150 3323 y(used)g(as)h(arra)m(y)g(elemen)m(ts,)h
7256 (they)f(m)m(ust)f(b)s(e)g(able)h(to)g(tile)f(an)h(arra)m(y)g(without)f
7257 (violating)f(an)m(y)j(alignmen)m(t)150 3433 y(restrictions.)38
7258 b(This)25 b(means)h(that)h(extra)g(padding)d(ma)m(y)j(need)f(to)h(b)s
7259 (e)f(added)f(at)i(the)g(end)e(of)i(a)f(structure)150
7260 3543 y(or)f(union.)37 b(Consequen)m(tly)-8 b(,)26 b(the)g(total)f(size)
7261 g(of)h(the)f(t)m(yp)s(e)g(ma)m(y)h(b)s(e)e(greater)j(than)e(the)g
7262 (sizes)g(of)g(the)g(\014elds.)275 3674 y(The)38 b(names,)i(t)m(yp)s
7263 (es,)h(and)d(o\013sets)i(of)e(the)h(\014elds)e(are)i(stored)g(in)e
7264 (dynamically-allo)s(cated)g(arra)m(ys)150 3784 y(within)24
7265 b(a)j Fi(struct_type)d Fn(no)s(de.)38 b(The)26 b Fi(set_num_fields)d
7266 Fn(metho)s(d)j(determines)g(the)g(n)m(um)m(b)s(er)g(of)g(\014elds)150
7267 3893 y(and)36 b(th)m(us)h(the)g(size)g(of)g(these)g(arra)m(ys.)61
7268 b(The)36 b(n)m(um)m(b)s(er)g(of)h(\014elds)e(ma)m(y)j(b)s(e)e(c)m
7269 (hanged)h(at)h(an)m(y)f(time.)60 b(If)150 4003 y(necessary)-8
7270 b(,)32 b(additional)d(space)j(will)c(b)s(e)i(allo)s(cated.)43
7271 b(The)31 b Fi(num_fields)d Fn(metho)s(d)i(returns)g(the)h(curren)m(t)
7272 150 4113 y(n)m(um)m(b)s(er)39 b(of)h(\014elds.)69 b(The)40
7273 b Fi(field_name)p Fn(,)g Fi(field_type)p Fn(,)g(and)f
7274 Fi(offset)g Fn(metho)s(ds)g(retriev)m(e)i(the)f(\014eld)150
7275 4222 y(names,)45 b(t)m(yp)s(es,)g(and)c(o\013sets,)46
7276 b(and)41 b(the)h Fi(set_field_name)p Fn(,)f Fi(set_field_type)p
7277 Fn(,)g(and)h Fi(set_offset)150 4332 y Fn(metho)s(ds)30
7278 b(c)m(hange)i(their)e(v)-5 b(alues.)41 b(The)30 b(\014elds)f(are)j(n)m
7279 (um)m(b)s(ered)d(b)s(eginning)f(with)h(zero.)43 b(F)-8
7280 b(or)32 b(structures)150 4441 y(the)23 b(\014elds)e(m)m(ust)i(b)s(e)f
7281 (in)g(order)g(of)h(increasing)f(o\013sets.)39 b(The)22
7282 b(\014eld)g(o\013sets)h(for)g(union)e(t)m(yp)s(es)i(should)e(all)h(b)s
7283 (e)150 4551 y(zero.)46 b(The)31 b(\014eld)f(names)i(are)g
7284 (automatically)g(en)m(tered)g(in)f(the)h(lexicon)f(\(see)h(Section)g
7285 (12.3)h([Lexicon],)150 4660 y(page)e(84\).)275 4792 y(The)37
7286 b Fi(find_field_by_name)c Fn(metho)s(d)k(can)i(b)s(e)e(used)g(to)i
7287 (searc)m(h)g(for)f(a)g(\014eld)f(with)f(a)j(particular)150
7288 4902 y(name.)g(If)26 b(successful,)g(it)g(returns)f(the)h(index)f(of)h
7289 (the)g(\014eld;)h(otherwise,)g(it)e(returns)g(a)i(v)-5
7290 b(alue)25 b(of)i Fi(-1)p Fn(.)38 b(The)150 5011 y Fi
7291 (find_field_by_offset)27 b Fn(metho)s(d)32 b(can)h(also)g(b)s(e)f(used)
7292 f(for)i(structure)f(t)m(yp)s(es)h(to)g(\014nd)e(the)i(\014eld)e(at)j(a)
7293 150 5121 y(certain)c(o\013set.)41 b(If)29 b(the)h(sp)s(eci\014ed)e
7294 (o\013set)j(is)d(not)i(exactly)g(at)h(the)f(b)s(eginning)d(of)i(a)h
7295 (\014eld,)f Fi(find_field_)150 5230 y(by_offset)e Fn(returns)h(the)h
7296 (index)f(of)i(the)f(\014eld)f(con)m(taining)h(it)g(and)f(sa)m(v)m(es)j
7297 (the)e(o\013set)i(within)26 b(that)k(\014eld)150 5340
7298 y(in)f(the)i Fi(left)e Fn(parameter.)p eop
7299 %%Page: 59 61
7300 59 60 bop 150 -116 a Fn(Chapter)30 b(7:)41 b(T)m(yp)s(es)2803
7301 b(59)150 299 y Fl(7.7)68 b(En)l(umerated)46 b(T)l(yp)t(es)275
7302 493 y Fn(En)m(umerated)27 b(t)m(yp)s(es)g(are)h(m)m(uc)m(h)f(lik)m(e)g
7303 (in)m(teger)h(t)m(yp)s(es,)g(except)g(that)g(eac)m(h)h(mem)m(b)s(er)e
7304 (of)g(an)h(en)m(umera-)150 603 y(tion)c(is)f(giv)m(en)h(a)g(name.)39
7305 b(The)23 b Fi(TYPE_ENUM)f Fn(op)s(erator)i(is)f(classi\014ed)g(as)h
7306 (one)h(of)f(the)g(base)g(t)m(yp)s(e)h(op)s(erators,)150
7307 712 y(and)i(the)h Fi(enum_type)e Fn(class)h(whic)m(h)g(it)g(uses)h(is)f
7308 (deriv)m(ed)g(from)g(the)h Fi(base_type)d Fn(class.)40
7309 b(See)28 b(Section)g(7.2)150 822 y([Base)37 b(T)m(yp)s(es],)g(page)g
7310 (55.)58 b(Since)35 b(an)h(en)m(umerated)g(t)m(yp)s(e)g(b)s(eha)m(v)m
7311 (es)g(lik)m(e)g(an)f(in)m(teger)i(t)m(yp)s(e,)g(the)g(same)150
7312 931 y Fi(base_type)28 b Fn(metho)s(ds)i(can)g(b)s(e)g(used)f(to)j(sp)s
7313 (ecify)d(the)h(size)g(and)g(whether)g(or)g(not)h(it)f(is)f(signed.)275
7314 1067 y(Lik)m(e)21 b(structures)g(and)g(unions,)h(en)m(umerated)g(t)m
7315 (yp)s(es)f(are)h(giv)m(en)g(names.)38 b(The)21 b Fi(name)f
7316 Fn(metho)s(d)h(returns)150 1177 y(the)28 b(name)f(for)h(an)f
7317 Fi(enum_type)p Fn(,)f(whic)m(h)g(should)g(b)s(e)h(di\013eren)m(t)g
7318 (from)g(the)h(names)f(of)h(other)g(t)m(yp)s(es)f(in)g(the)150
7319 1286 y(sym)m(b)s(ol)k(table)h(where)f(it)h(is)f(de\014ned.)44
7320 b(The)31 b Fi(set_name)f Fn(metho)s(d)i(automatically)f(en)m(ters)i
7321 (the)f(name)g(in)150 1396 y(the)f(lexicon)e(\(see)i(Section)g(12.3)h
7322 ([Lexicon],)e(page)i(84\).)275 1532 y(Eac)m(h)40 b(en)m(umerated)f(t)m
7323 (yp)s(e)h(con)m(tains)f(arra)m(ys)h(to)g(hold)e(the)i(names)f(and)g(v)
7324 -5 b(alues)38 b(of)i(its)e(mem)m(b)s(ers.)150 1642 y(The)d
7325 Fi(num_values)e Fn(metho)s(d)i(returns)g(the)g(n)m(um)m(b)s(er)g(of)h
7326 (mem)m(b)s(ers.)56 b(The)35 b Fi(set_num_values)c Fn(metho)s(d)150
7327 1751 y(ma)m(y)j(b)s(e)g(called)f(at)h(an)m(y)h(time)e(to)i(c)m(hange)g
7328 (the)f(n)m(um)m(b)s(er)e(of)i(mem)m(b)s(ers.)51 b(It)34
7329 b(will)d(allo)s(cate)j(more)g(space)150 1861 y(for)e(the)g(arra)m(ys)g
7330 (if)f(necessary)-8 b(.)47 b(The)31 b Fi(member)g Fn(metho)s(d)g
7331 (returns)g(the)h(name)g(of)h(a)f(particular)e(mem)m(b)s(er,)150
7332 1970 y(and)g(the)g Fi(value)f Fn(metho)s(d)h(returns)f(its)h(v)-5
7333 b(alue.)40 b(The)30 b(mem)m(b)s(ers)f(are)i(n)m(um)m(b)s(ered)e(b)s
7334 (eginning)f(with)h(zero.)150 2080 y(The)k Fi(set_member)e
7335 Fn(metho)s(d)i(c)m(hanges)i(the)f(name)g(of)g(a)g(mem)m(b)s(er)f(and)g
7336 (en)m(ters)h(the)g(new)g(name)f(in)g(the)150 2190 y(lexicon.)39
7337 b(Similarly)-8 b(,)24 b(the)i Fi(set_value)e Fn(metho)s(d)i(c)m(hanges)
7338 h(the)f(v)-5 b(alue)26 b(for)g(a)h(metho)s(d.)39 b(All)25
7339 b(of)h(the)h(v)-5 b(alues)150 2299 y(m)m(ust)41 b(\014t)f(within)e(the)
7340 j(size)g(of)g(the)g(t)m(yp)s(e,)j(and)c(negativ)m(e)i(v)-5
7341 b(alues)40 b(are)h(not)g(allo)m(w)m(ed)g(with)e(unsigned)150
7342 2409 y(en)m(umerations.)275 2545 y(The)h Fi(find_member_by_name)35
7343 b Fn(metho)s(d)40 b(searc)m(hes)h(through)f(the)h(mem)m(b)s(ers)f(of)g
7344 (an)h(en)m(umerated)150 2654 y(t)m(yp)s(e)32 b(for)f(a)h(particular)e
7345 (name.)45 b(If)31 b(successful,)g(it)g(returns)f(the)i(index)e(of)i
7346 (the)g(mem)m(b)s(er;)g(otherwise,)f(it)150 2764 y(returns)j(a)i(v)-5
7347 b(alue)35 b(of)g Fi(-1)p Fn(.)55 b(The)35 b Fi(find_member_by_value)30
7348 b Fn(metho)s(d)35 b(returns)f(the)i(index)e(of)h(the)h(\014rst)150
7349 2873 y(mem)m(b)s(er)e(that)h(it)f(\014nds)f(with)g(a)i(certain)g(v)-5
7350 b(alue.)53 b(If)34 b(the)g(v)-5 b(alue)34 b(is)g(not)h(found,)f(it)g
7351 (returns)g(a)h(v)-5 b(alue)34 b(of)150 2983 y Fi(-1)p
7352 Fn(,)c(just)g(lik)m(e)f Fi(find_member_by_name)p Fn(.)150
7353 3244 y Fl(7.8)68 b(Mo)t(di\014er)45 b(T)l(yp)t(es)275
7354 3438 y Fn(Mo)s(di\014er)d(t)m(yp)s(es)h(are)h(used)f(to)h(add)f(v)-5
7355 b(arious)42 b(attributes)h(to)i(other)e(t)m(yp)s(es.)81
7356 b(Eac)m(h)44 b(attribute)f(is)150 3548 y(represen)m(ted)30
7357 b(b)m(y)h(a)f(di\013eren)m(t)g(t)m(yp)s(e)h(op)s(erator:)150
7358 3709 y Fi(TYPE_CONST)630 3819 y Fn(This)e(mo)s(di\014er)f(signals)h
7359 (that)i(the)f(t)m(yp)s(e)h(is)e(for)h(constan)m(t)i(v)-5
7360 b(alues.)150 3980 y Fi(TYPE_VOLATILE)630 4089 y Fn(This)28
7361 b(is)g(used)h(for)g(the)h(t)m(yp)s(es)f(of)h(v)-5 b(ariables)28
7362 b(whose)h(con)m(ten)m(ts)i(ma)m(y)f(c)m(hange)h(at)f(an)m(y)g(time.)150
7363 4250 y Fi(TYPE_CALL_BY_REF)630 4360 y Fn(This)24 b(is)g(used)h(in)f
7364 (the)i(F)-8 b(ortran)26 b(mo)s(de)f(\(see)h(Chapter)f(10)i([F)-8
7365 b(ortran],)27 b(page)g(77\))f(to)g(iden)m(tify)630 4470
7366 y(call-b)m(y-reference)31 b(parameters.)150 4630 y Fi(TYPE_NULL)630
7367 4740 y Fn(This)h(mo)s(di\014er)h(has)h(no)g(e\013ect)i(on)e(the)g(t)m
7368 (yp)s(e)h(but)e(simply)f(pro)m(vides)h(a)i(place)f(to)h(attac)m(h)630
7369 4850 y(annotations.)j(This)20 b(is)g(needed)i(for)f(named)g(t)m(yp)s
7370 (es)h(b)s(ecause)g(cop)m(ying)f(them)h(w)m(ould)e(create)630
7371 4959 y(completely)30 b(new)g(t)m(yp)s(es.)150 5121 y(All)c(of)i(these)g
7372 (mo)s(di\014er)d(t)m(yp)s(es)i(use)h(the)f Fi(modifier_type)d
7373 Fn(deriv)m(ed)j(class.)39 b(The)27 b Fi(base)f Fn(metho)s(d)h(returns)
7374 150 5230 y(a)k(p)s(oin)m(ter)f(to)h(the)g(t)m(yp)s(e)g(that)h(is)e(mo)s
7375 (di\014ed,)f(and)h(the)h Fi(set_base)d Fn(metho)s(d)i(c)m(hanges)i
7376 (that)g(\014eld.)40 b(More)150 5340 y(than)c(one)h(mo)s(di\014er)d(can)
7377 j(b)s(e)e(applied)g(to)i(the)f(same)h(t)m(yp)s(e.)59
7378 b(The)36 b(order)f(of)i(the)g(mo)s(di\014ers)d(do)s(es)i(not)p
7380 %%Page: 60 62
7381 60 61 bop 150 -116 a Fn(60)2385 b(The)30 b(SUIF)g(V)-8
7382 b(ersion)30 b(1)h(Library)150 299 y(matter,)k(but)d(no)h(mo)s(di\014er)
7383 e(should)g(b)s(e)h(used)g(more)h(than)g(once)h(with)d(the)i(same)h(t)m
7384 (yp)s(e)f(\(for)g(example,)150 408 y(a)e(constan)m(t)g(constan)m(t)h
7385 (in)m(teger)f(is)e(illegal,)g(but)h(a)h(constan)m(t)g(p)s(oin)m(ter)f
7386 (to)h(a)f(constan)m(t)i(in)m(teger)f(is)e(OK\).)275 536
7387 y(The)39 b(base)h Fi(type_node)d Fn(class)i(includes)f(sev)m(eral)i
7388 (metho)s(ds)f(to)h(deal)g(with)e(mo)s(di\014ers.)67 b(The)39
7389 b Fi(is_)150 646 y(const)p Fn(,)29 b Fi(is_volatile)p
7390 Fn(,)e(and)i Fi(is_call_by_ref)e Fn(metho)s(ds)i(c)m(hec)m(k)i(for)f
7391 (the)g(corresp)s(onding)e(mo)s(di\014ers)150 755 y(on)33
7392 b(a)h(t)m(yp)s(e.)51 b(The)33 b Fi(unqual)f Fn(metho)s(d)h(skips)e(o)m
7393 (v)m(er)k(an)m(y)f(mo)s(di\014er)e(t)m(yp)s(es)h(and)g(returns)f(the)i
7394 (unquali\014ed)150 865 y(t)m(yp)s(e.)74 b(This)39 b(is)i(used)f
7395 (frequen)m(tly)h(when)f(c)m(hec)m(king)i(for)f(particular)f(kinds)f(of)
7396 i(t)m(yp)s(es.)74 b(Finally)-8 b(,)43 b(the)150 975 y
7397 Fi(find_modifier)24 b Fn(metho)s(d)k(c)m(hec)m(ks)h(if)e(a)h(t)m(yp)s
7398 (e)g(is)f(mo)s(di\014ed)e(b)m(y)j(a)g(particular)f(mo)s(di\014er)e(t)m
7399 (yp)s(e)j(op)s(erator.)150 1084 y(If)i(so,)h(it)f(returns)f(a)i(p)s
7400 (oin)m(ter)e(to)i(that)g(mo)s(di\014er)d(t)m(yp)s(e;)j(otherwise)f(it)g
7401 (returns)f Fi(NULL)p Fn(.)150 1321 y Fl(7.9)68 b(Prede\014ned)45
7402 b(T)l(yp)t(es)275 1507 y Fn(The)27 b(global)h(sym)m(b)s(ol)e(table)i
7403 (\(see)h(Section)f(5.1.1)i([Global)e(Sym)m(b)s(ol)e(T)-8
7404 b(able],)29 b(page)g(37\))g(is)e(initialized)150 1617
7405 y(with)e(some)h(prede\014ned)e(t)m(yp)s(es.)40 b(The)25
7406 b(SUIF)h(library)d(also)j(de\014nes)g(a)g(n)m(um)m(b)s(er)f(of)h(v)-5
7407 b(ariables)24 b(con)m(taining)150 1726 y(p)s(oin)m(ters)32
7408 b(to)i(these)g(prede\014ned)e(t)m(yp)s(es,)i(so)g(that)f(y)m(ou)h
7409 (don't)f(need)g(to)i(searc)m(h)f(the)f(sym)m(b)s(ol)f(tables)h(for)150
7410 1836 y(most)e(commonly-used)e(t)m(yp)s(es.)41 b(The)30
7411 b(\014rst)f(set)i(of)g(prede\014ned)e(t)m(yp)s(es)h(are)h(\014xed-size)
7412 f(scalar)g(t)m(yp)s(es:)150 1982 y Fi(type_v0)84 b Fn(This)29
7413 b(is)g(a)i Fi(void)e Fn(t)m(yp)s(e)i(with)e(size)h(zero.)150
7414 2127 y Fi(type_s8)150 2237 y(type_s16)150 2347 y(type_s32)150
7415 2456 y(type_s64)36 b Fn(These)30 b(are)h(signed)e(in)m(teger)i(t)m(yp)s
7416 (es)f(of)h(8,)g(16,)g(32,)h(and)e(64)h(bits.)150 2602
7417 y Fi(type_u8)150 2712 y(type_u16)150 2821 y(type_u32)150
7418 2931 y(type_u64)36 b Fn(These)30 b(are)h(unsigned)d(in)m(teger)j(t)m
7419 (yp)s(es)f(of)h(8,)g(16,)g(32,)h(and)e(64)h(bits.)150
7420 3077 y Fi(type_f32)150 3186 y(type_f64)150 3296 y(type_f128)630
7421 3405 y Fn(These)f(are)h(\015oating-p)s(oin)m(t)f(t)m(yp)s(es)g(of)g
7422 (32,)i(64,)f(and)f(128)i(bits.)150 3551 y Fi(type_error)630
7423 3661 y Fn(This)38 b(v)-5 b(ariable)39 b(is)g(just)h(set)h(to)g
7424 Fi(NULL)p Fn(.)68 b(It)41 b(ma)m(y)f(b)s(e)g(used)f(to)i(represen)m(t)f
7425 (v)-5 b(arious)39 b(error)630 3770 y(conditions.)275
7426 3916 y(Because)25 b(the)e(\014xed-size)h(t)m(yp)s(es)f(do)h(not)g
7427 (necessarily)e(matc)m(h)j(the)e(target)j(mac)m(hine)d(parameters)h
7428 (\(see)150 4026 y(Section)f(12.4)i([T)-8 b(arget)26 b(Mac)m(hine)d(P)m
7429 (arameters],)k(page)d(85\),)j(they)c(should)f(rarely)h(b)s(e)g(used.)37
7430 b(Instead)24 b(the)150 4135 y(SUIF)g(library)d(also)j(prede\014nes)f(p)
7431 s(oin)m(ters)f(to)j(t)m(yp)s(es)f(that)g(corresp)s(ond)f(to)i(the)f
7432 (most)g(common)g(C)g(t)m(yp)s(es.)150 4245 y(These)30
7433 b(\\p)s(ortable")g(t)m(yp)s(es)h(are)g(automatically)f(initialized)d
7434 (using)i(the)h(target)i(mac)m(hine)e(parameters.)150
7435 4391 y Fi(type_void)630 4500 y Fn(Since)e Fi(void)f Fn(t)m(yp)s(es)i
7436 (alw)m(a)m(ys)g(ha)m(v)m(e)h(a)f(size)f(of)h(zero,)h(this)e(t)m(yp)s(e)
7437 h(is)e(equiv)-5 b(alen)m(t)28 b(to)i Fi(type_v0)p Fn(,)630
7438 4610 y(but)g(it)g(is)f(included)f(for)i(completeness.)150
7439 4756 y Fi(type_ptr)36 b Fn(This)21 b(t)m(yp)s(e)i(is)e(a)i(p)s(oin)m
7440 (ter)f(to)h Fi(type_void)p Fn(.)36 b(Lik)m(e)22 b(all)g(other)h(p)s
7441 (oin)m(ter)e(t)m(yp)s(es,)k(it)d(automatically)630 4865
7442 y(has)30 b(the)h(size)f(of)g(p)s(oin)m(ters)g(on)g(the)h(target)g(mac)m
7443 (hine.)150 5011 y Fi(type_char)630 5121 y Fn(This)42
7444 b(is)g(an)h(in)m(teger)h(t)m(yp)s(e)f(with)f(the)i(size)f(sp)s
7445 (eci\014ed)f(for)h Fi(C_char)e Fn(t)m(yp)s(es)j(in)e(the)h(tar-)630
7446 5230 y(get)32 b(mac)m(hine)e(parameters.)41 b(The)30
7447 b Fi(char_is_signed)c Fn(mac)m(hine)k(parameter)h(determines)630
7448 5340 y(whether)f(it)g(is)f(signed)g(or)i(unsigned.)p
7450 %%Page: 61 63
7451 61 62 bop 150 -116 a Fn(Chapter)30 b(7:)41 b(T)m(yp)s(es)2803
7452 b(61)150 299 y Fi(type_signed_char)150 408 y(type_unsigned_char)630
7453 518 y Fn(These)30 b(are)h(signed)f(and)f(unsigned)g(in)m(teger)i(t)m
7454 (yp)s(es)f(with)g(the)g(size)h(sp)s(eci\014ed)d(for)j
7455 Fi(C_char)630 628 y Fn(t)m(yp)s(es)f(in)f(the)i(target)h(mac)m(hine)e
7456 (parameters.)150 787 y Fi(type_signed_short)150 897 y
7457 (type_unsigned_short)630 1006 y Fn(These)c(are)h(signed)f(and)g
7458 (unsigned)e(in)m(teger)j(t)m(yp)s(es)f(with)g(the)g(size)h(sp)s
7459 (eci\014ed)e(for)h Fi(C_short)630 1116 y Fn(t)m(yp)s(es)k(in)f(the)i
7460 (target)h(mac)m(hine)e(parameters.)150 1275 y Fi(type_signed)150
7461 1385 y(type_unsigned)630 1494 y Fn(These)k(are)h(signed)f(and)f
7462 (unsigned)g(in)m(teger)i(t)m(yp)s(es)f(with)f(the)i(size)f(sp)s
7463 (eci\014ed)f(for)h Fi(C_int)630 1604 y Fn(t)m(yp)s(es)c(in)f(the)i
7464 (target)h(mac)m(hine)e(parameters.)150 1763 y Fi(type_signed_long)150
7465 1873 y(type_unsigned_long)630 1983 y Fn(These)g(are)h(signed)f(and)f
7466 (unsigned)g(in)m(teger)i(t)m(yp)s(es)f(with)g(the)g(size)h(sp)s
7467 (eci\014ed)d(for)j Fi(C_long)630 2092 y Fn(t)m(yp)s(es)f(in)f(the)i
7468 (target)h(mac)m(hine)e(parameters.)150 2252 y Fi(type_signed_longlong)
7469 150 2361 y(type_unsigned_longlong)630 2471 y Fn(These)46
7470 b(are)h(signed)e(and)h(unsigned)e(in)m(teger)j(t)m(yp)s(es)g(with)e
7471 (the)h(size)h(sp)s(eci\014ed)d(for)j Fi(C_)630 2580 y(longlong)28
7472 b Fn(t)m(yp)s(es)j(in)e(the)h(target)i(mac)m(hine)e(parameters.)150
7473 2740 y Fi(type_float)150 2849 y(type_double)150 2959
7474 y(type_longdouble)630 3068 y Fn(These)j(are)g(\015oating-p)s(oin)m(t)f
7475 (t)m(yp)s(es)h(with)e(the)i(sizes)g(sp)s(eci\014ed)e(for)h
7476 Fi(C_float)p Fn(,)g Fi(C_double)p Fn(,)630 3178 y(and)e
7477 Fi(C_longdouble)d Fn(t)m(yp)s(es)j(in)f(the)i(target)h(mac)m(hine)e
7478 (parameters.)p eop
7479 %%Page: 62 64
7480 62 63 bop 150 -116 a Fn(62)2385 b(The)30 b(SUIF)g(V)-8
7481 b(ersion)30 b(1)h(Library)p eop
7482 %%Page: 63 65
7483 63 64 bop 150 -116 a Fn(Chapter)30 b(8:)41 b(Annotations)2556
7484 b(63)150 299 y Fj(8)80 b(Annotations)275 566 y Fn(Because)36
7485 b(it)f(is)f(a)h(researc)m(h)h(compiler,)f(SUIF)g(is)f(designed)g(to)i
7486 (b)s(e)f(b)s(oth)f(\015exible)f(and)i(extensible.)150
7487 676 y Fh(Annotations)p Fn(,)f(whic)m(h)e(ma)m(y)i(con)m(tain)f
7488 (arbitrary)f(data)i(structures,)f(are)h(the)f(primary)f(means)h(of)g
7489 (pro-)150 785 y(viding)28 b(this)g(extensibilit)m(y)-8
7490 b(.)39 b(Ob)5 b(jects)30 b(that)g(are)g(deriv)m(ed)f(from)g(the)h
7491 Fi(suif_object)d Fn(class)j(ha)m(v)m(e)h(lists)d(of)150
7492 895 y(annotations)c(asso)s(ciated)h(with)e(them.)38 b(This)23
7493 b(includes)e(most)k(of)f(the)h(ma)5 b(jor)24 b(SUIF)g(ob)5
7494 b(jects)25 b(suc)m(h)f(as)g(in-)150 1005 y(structions,)29
7495 b(tree)i(no)s(des,)e(sym)m(b)s(ols,)f(t)m(yp)s(es,)i(sym)m(b)s(ol)f
7496 (tables,)h(and)f(\014le)g(set)h(en)m(tries.)40 b(New)30
7497 b(annotations)150 1114 y(can)g(b)s(e)e(declared)h(b)m(y)h(an)m(y)f
7498 (program)g(and)g(used)g(to)h(record)f(whatev)m(er)h(information)e(is)g
7499 (needed)h(within)150 1224 y(that)35 b(program.)54 b(They)34
7500 b(can)h(also)f(b)s(e)g(written)g(to)h(the)g(SUIF)f(output)h(\014les)e
7501 (so)i(that)g(other)g(programs)150 1333 y(can)h(use)f(them.)56
7502 b(The)35 b Fh(annotation)g(manager)43 b Fn(records)35
7503 b(the)h(annotation)f(names)h(and)e(the)i(format)g(of)150
7504 1443 y(the)31 b(data)g(asso)s(ciated)f(with)g(eac)m(h)h(kind)e(of)h
7505 (annotation.)150 1728 y Fl(8.1)68 b(Ov)l(erview)275 1932
7506 y Fn(Annotations)48 b(are)i(represen)m(ted)e(b)m(y)h
7507 Fi(annote)e Fn(ob)5 b(jects)50 b(whic)m(h)e(are)h(implemen)m(ted)e(in)h
7508 (the)h(\014les)150 2041 y(`)p Fi(annote.h)p Fn(')41 b(and)h(`)p
7509 Fi(annote.cc)p Fn('.)76 b(Eac)m(h)43 b(annotation)g(con)m(tains)g(t)m
7510 (w)m(o)h(\014elds:)64 b(a)43 b(name)g(and)f(a)h(data)150
7511 2151 y(p)s(oin)m(ter.)63 b(The)38 b(name)g(is)f(a)h(c)m(haracter)i
7512 (string)d(that)i(m)m(ust)f(b)s(e)f(en)m(tered)i(in)e(the)h
7513 Fi(lexicon)p Fn(.)62 b(See)38 b(Sec-)150 2260 y(tion)e(12.3)h
7514 ([Lexicon],)h(page)f(84.)58 b(The)36 b(name)g(serv)m(es)g(to)h(iden)m
7515 (tify)e(the)h(purp)s(ose)e(of)i(the)g(annotation,)150
7516 2370 y(and)27 b(with)f(the)i(help)e(of)i(the)g(annotation)f(manager,)i
7517 (it)f(sp)s(eci\014es)e(the)i(format)f(of)h(the)g(asso)s(ciated)g(data.)
7518 150 2480 y(The)f Fi(set_name)e Fn(metho)s(d)i(can)h(b)s(e)e(used)h(to)h
7519 (c)m(hange)h(the)e(name)h(of)g(an)f(annotation,)h(but)f(in)f(most)i
7520 (cases)150 2589 y(it's)i(easier)g(to)h(just)f(create)i(a)f(new)f
7521 (annotation.)275 2735 y(As)j(a)i(con)m(v)m(en)m(tion,)h(eac)m(h)f
7522 (annotation)f(name)g(should)d(ha)m(v)m(e)k(a)g(global)e(v)-5
7523 b(ariable)32 b(that)j(is)e(a)h(p)s(oin)m(ter)150 2844
7524 y(to)39 b(its)f(en)m(try)g(in)f(the)i Fi(lexicon)p Fn(.)62
7525 b(The)38 b(names)g(of)g(these)h(v)-5 b(ariables)37 b(should)f(b)s(e)i
7526 Fi(k_)g Fn(follo)m(w)m(ed)g(b)m(y)g(the)150 2954 y(annotation)26
7527 b(name.)39 b(F)-8 b(or)26 b(example,)g Fi(k_repeat_init)c
7528 Fn(is)i(a)i(global)e(v)-5 b(ariable)25 b(de\014ned)f(in)g(the)h
7529 (library)e(to)150 3064 y(p)s(oin)m(t)i(to)h(the)g Fi("repeat_init")c
7530 Fn(annotation)k(name.)39 b(Because)27 b(the)f(annotation)g(names)f(are)
7531 h(alw)m(a)m(ys)g(in)150 3173 y(the)c Fi(lexicon)p Fn(,)f(y)m(ou)h(can)g
7532 (just)e(compare)i(the)g(names)f(with)f(the)i(global)f(v)-5
7533 b(ariables)20 b(instead)h(of)g(p)s(erforming)150 3283
7534 y(string)29 b(comparisons.)40 b(F)-8 b(or)31 b(example:)390
7535 3422 y Fi(annote)46 b(*an;)390 3526 y(if)h(\(an->name\(\))e(==)i
7536 (k_repeat_init\))d({)581 3630 y(an->print\(\);)390 3734
7537 y(})275 3879 y Fn(The)35 b(data)h(\014eld)e(in)h(an)g(annotation)h(is)f
7538 (a)h Fi(void*)e Fn(p)s(oin)m(ter)h(so)h(that,)i(with)c(the)i
7539 (appropriate)f(t)m(yp)s(e)150 3989 y(cast,)42 b(it)c(can)h(refer)g(to)g
7540 (an)m(y)g(data)g(structure.)65 b(The)39 b Fi(data)e Fn(and)h
7541 Fi(set_data)e Fn(metho)s(ds)i(ma)m(y)i(b)s(e)e(used)150
7542 4099 y(to)g(directly)e(access)i(an)g(annotation's)f(data)h(\014eld.)60
7543 b(The)37 b Fi(immeds)e Fn(and)i Fi(set_immeds)d Fn(metho)s(ds)j(also)
7544 150 4208 y(pro)m(vide)d(access)h(to)h(the)e(data)h(in)e(an)i
7545 (annotation,)h(but)e(only)f(if)h(it)f(can)i(b)s(e)f(represen)m(ted)g(b)
7546 m(y)h(a)g(list)e(of)150 4318 y Fi(immed)c Fn(v)-5 b(alues;)30
7547 b(this)f(is)h(describ)s(ed)e(in)h(more)h(detail)g(b)s(elo)m(w)g(for)g
7548 (eac)m(h)h(kind)e(of)h(annotation.)275 4463 y(The)25
7549 b Fi(print)f Fn(metho)s(d)i(prin)m(ts)e(an)i(annotation)g(to)g(the)g
7550 (sp)s(eci\014ed)e(\014le.)39 b(The)25 b(format)h(dep)s(ends)e(on)i(the)
7551 150 4573 y(kind)j(of)i(annotation.)43 b(Flat)32 b(annotations)f(are)g
7552 (prin)m(ted)f(as)h(lists)f(of)h Fi(immed)e Fn(v)-5 b(alues.)42
7553 b(F)-8 b(or)32 b(unregistered)150 4682 y(annotation,)41
7554 b(the)d(con)m(ten)m(ts)i(of)f(the)f(data)h(\014eld)e(are)i(prin)m(ted)e
7555 (directly)g(as)h(a)h(p)s(oin)m(ter)e(v)-5 b(alue)38 b(\(a)h(hex-)150
7556 4792 y(idecimal)34 b(represen)m(tation)h(on)h(most)g(systems\).)57
7557 b(Structured)34 b(annotations)i(ma)m(y)g(ha)m(v)m(e)g(user-de\014ned)
7558 150 4902 y(prin)m(ting)c(functions)h(registered)h(in)f(the)i
7559 (annotation)f(manager;)j(if)c(suc)m(h)h(a)h(function)e(is)g(de\014ned,)
7560 i(the)150 5011 y(library)30 b(uses)i(it.)48 b(If)32 b(no)g(prin)m(ting)
7561 f(function)g(is)h(de\014ned)f(but)h(a)h(function)e(to)j(con)m(v)m(ert)g
7562 (to)f(a)g(\015at)g Fi(immed)150 5121 y Fn(list)d(is)g(de\014ned,)g
7563 (that)h(is)f(used)g(to)i(temp)s(orarily)d(con)m(v)m(ert)k(to)e(\015at)h
7564 (lists)d(and)h(prin)m(t)g(as)h(suc)m(h.)42 b(If)31 b(neither)150
7565 5230 y(a)i(prin)m(ting)e(nor)h(a)h(con)m(v)m(ersion)h(function)d(is)h
7566 (pro)m(vided,)g(the)h(prin)m(ting)e(is)h(done)h(as)g(with)e
7567 (unregistered)150 5340 y(annotations.)p eop
7568 %%Page: 64 66
7569 64 65 bop 150 -116 a Fn(64)2385 b(The)30 b(SUIF)g(V)-8
7570 b(ersion)30 b(1)h(Library)150 299 y Fl(8.2)68 b(Flat)46
7571 b(Annotations)275 491 y Fn(The)40 b(simplest)g(t)m(yp)s(e)h(of)h
7572 (annotation)g(is)e(a)i Fh(\015at)f(annotation)p Fn(.)74
7573 b(The)41 b(data)h(in)e(a)i(\015at)g(annotation)150 601
7574 y(is)d(a)i(p)s(oin)m(ter)e(to)i(a)g(list)e(of)i Fi(immed)d
7575 Fn(v)-5 b(alues.)70 b(See)41 b(Section)f(12.1)i([Immeds],)g(page)f(83.)
7576 72 b(By)40 b(default,)150 711 y(annotations)k(read)f(from)g(an)g(input)
7577 f(\014le)g(are)i(\015at)g(annotations.)80 b(That)43 b(is,)j(if)c(a)i
7578 (SUIF)f(input)f(\014le)150 820 y(con)m(tains)29 b(an)f(annotation)g
7579 (with)f(a)i(name)f(that)h(has)g(not)f(y)m(et)i(b)s(een)d(registered,)i
7580 (the)g(SUIF)f(library)e(will)150 930 y(automatically)k(register)g(it)g
7581 (as)h(a)g(\015at)f(annotation.)275 1064 y(When)i(creating)h(new)e
7582 (\015at)i(annotations,)g(y)m(ou)g(ma)m(y)g(sp)s(ecify)e(b)s(oth)h(the)h
7583 (annotation)f(name)h(and)f(a)150 1174 y(p)s(oin)m(ter)c(to)i(an)g
7584 Fi(immed)e Fn(list.)39 b(In)28 b(man)m(y)i(cases,)g(ho)m(w)m(ev)m(er,)i
7585 (it)c(is)h(more)g(con)m(v)m(enien)m(t)i(to)f(only)e(pro)m(vide)h(the)
7586 150 1284 y(annotation)g(name)f(and)g(let)g(the)h(annotation)g
7587 (constructor)g(automatically)f(\014ll)e(the)j(data)g(\014eld)e(with)h
7588 (a)150 1393 y(p)s(oin)m(ter)h(to)i(a)g(new)f(list.)275
7589 1528 y(F)-8 b(or)21 b(\015at)g(annotations,)h(the)f Fi(immeds)e
7590 Fn(metho)s(d)h(merely)g(pro)m(vides)f(a)i(shortcut)f(for)h(accessing)g
7591 (the)f(data)150 1637 y(b)m(y)32 b(casting)g(it)f(to)i(an)e
7592 Fi(immed_list)e Fn(p)s(oin)m(ter.)44 b(Similarly)-8 b(,)29
7593 b(the)j Fi(set_immeds)d Fn(metho)s(d)i(is)g(functionally)150
7594 1747 y(equiv)-5 b(alen)m(t)30 b(to)h Fi(set_data)d Fn(in)h(this)g
7595 (case.)150 2004 y Fl(8.3)68 b(Structured)44 b(Annotations)275
7596 2197 y Fn(In)32 b(man)m(y)h(cases,)h(\015at)f(annotations)g(are)h(cum)m
7597 (b)s(ersome)e(to)i(use)e(b)s(ecause)h(the)g(\014elds)f(in)f(the)i
7598 Fi(immed)150 2306 y Fn(v)-5 b(alue)37 b(list)e(are)j(unlab)s(eled)c
7599 (and)j(di\016cult)e(to)j(access.)63 b(With)36 b Fh(structured)g
7600 (annotations)p Fn(,)k(the)d(data)h(is)150 2416 y(held)f(in)g(a)i
7601 (user-de\014ned)e(structure.)65 b(Y)-8 b(ou)40 b(can)e(access)i(this)e
7602 (structured)f(data)j(b)m(y)e(using)f(the)i Fi(data)150
7603 2526 y Fn(metho)s(d)34 b(and)g(casting)h(the)f(result)g(to)h(the)g
7604 (desired)e(t)m(yp)s(e.)53 b(It)35 b(ma)m(y)g(b)s(e)f(helpful)d(to)k
7605 (de\014ne)f(macros)h(to)150 2635 y(p)s(erform)29 b(the)i(t)m(yp)s(e)f
7606 (casts.)275 2770 y(An)36 b(imp)s(ortan)m(t)g(restriction)f(on)i
7607 (structured)e(annotations)i(is)f(that)h(if)e(they)i(are)g(to)h(b)s(e)e
7608 (stored)g(in)150 2879 y(SUIF)24 b(\014les,)h(they)g(are)g(stored)g(as)g
7609 Fi(immed)e Fn(lists.)37 b(Therefore,)26 b(if)d(y)m(ou)i(wish)e(to)i
7610 (write)f(suc)m(h)g(an)h(annotation)150 2989 y(to)h(a)f(\014le,)h(y)m
7611 (ou)f(m)m(ust)g(pro)m(vide)f(the)h(annotation)h(manager)f(with)f
7612 (functions)g(to)h(con)m(v)m(ert)i(bac)m(k)f(and)e(forth)150
7613 3098 y(b)s(et)m(w)m(een)i(the)f Fi(immed)e Fn(lists)h(and)g(the)h
7614 (structured)f(data.)40 b(When)24 b(a)i(structured)e(annotation)h(is)f
7615 (\014rst)g(read)150 3208 y(from)34 b(an)h(input)e(\014le,)i(the)h
7616 (annotation)f(manager)g(applies)e(the)i(function)f(to)h(con)m(v)m(ert)i
7617 (the)e Fi(immed)e Fn(list)150 3318 y(to)e(y)m(our)f(data)g(structure.)
7618 41 b(Similarly)-8 b(,)27 b(when)i(the)h(annotation)g(is)f(written)g
7619 (out,)i(the)f(manager)h(applies)150 3427 y(the)g(function)e(to)i(con)m
7620 (v)m(ert)h(it)e(bac)m(k)h(to)g(a)g(list)e(of)h Fi(immed)f
7621 Fn(v)-5 b(alues.)275 3562 y(The)31 b(data)i(in)d(a)i(structured)f
7622 (annotation)i(that)f(de\014nes)f(a)h(con)m(v)m(ersion)h(function)d(m)m
7623 (ust)i(alw)m(a)m(ys)h(b)s(e)150 3671 y(main)m(tained)28
7624 b(in)f(a)i(form)f(that)h(can)g(b)s(e)f(con)m(v)m(erted)i(to)g(an)e
7625 Fi(immed)g Fn(list.)38 b(This)27 b(is)h(necessary)h(b)s(ecause)g(the)
7626 150 3781 y(library)35 b(o)s(ccasionally)h(needs)h(to)g(\015atten)h
7627 (annotations)f(so)g(that)h(it)f(can)g(up)s(date)f(the)i(con)m(ten)m
7628 (ts.)62 b(F)-8 b(or)150 3890 y(example,)38 b(when)d(an)h(annotation)h
7629 (con)m(taining)e(references)i(to)g(lo)s(cal)e(sym)m(b)s(ols)g(is)h(mo)m
7630 (v)m(ed)h(to)g(another)150 4000 y(scop)s(e,)g(the)e(sym)m(b)s(ols)f(ma)
7631 m(y)i(need)f(to)h(b)s(e)e(up)s(dated.)54 b(When)35 b(this)g(o)s(ccurs,)
7632 h(the)f(library)e(also)i(con)m(v)m(erts)150 4110 y(the)c(data)g(bac)m
7633 (k)g(to)g(its)f(structured)f(form)h(after)h(it)f(has)g(b)s(een)g(up)s
7634 (dated.)275 4244 y(Just)k(as)h(the)h(library)d(needs)h(to)i(temp)s
7635 (orarily)d(\015atten)j(structured)e(annotations,)j(y)m(ou)e(ma)m(y)h
7636 (need)150 4354 y(to)g(do)g(the)f(same.)56 b(The)35 b
7637 Fi(immeds)f Fn(and)h Fi(set_immeds)e Fn(metho)s(ds)h(mak)m(e)j(this)d
7638 (task)i(m)m(uc)m(h)g(easier.)55 b(The)150 4463 y Fi(immeds)28
7639 b Fn(metho)s(d)h(returns)f(the)h(annotation)h(data)g(represen)m(ted)g
7640 (as)f(an)h Fi(immed)e Fn(list.)39 b(F)-8 b(or)30 b(a)g(structured)150
7641 4573 y(annotation,)43 b(it)c(do)s(es)g(this)g(b)m(y)g(using)g(the)g
7642 (con)m(v)m(ersion)i(function)d(registered)h(with)g(the)h(annotation)150
7643 4682 y(manager)c(to)g(con)m(v)m(ert)h(the)f(structure)f(to)h(a)g
7644 (\015at)f(list.)55 b(Note)37 b(ho)m(w)m(ev)m(er)g(that)f(the)f(result)g
7645 (is)f(a)i(p)s(oin)m(ter)150 4792 y(to)i(a)f(new)g(list,)g(whereas)g
7646 (for)g(\015at)g(annotations,)i(it)e(is)f(a)h(p)s(oin)m(ter)f(to)i(the)f
7647 (actual)h(annotation)f(data.)150 4902 y(Similarly)-8
7648 b(,)27 b(the)j Fi(set_immeds)d Fn(metho)s(d)i(replaces)g(the)h
7649 (annotation)g(data)h(with)d(the)i(data)g(in)f(an)g Fi(immed)150
7650 5011 y Fn(list,)k(but)g(for)g(structured)f(annotations,)j(it)e(\014rst)
7651 f(con)m(v)m(erts)j(the)f(data)g(to)g(the)f(structured)g(format.)50
7652 b(It)150 5121 y(do)s(es)28 b Fh(not)i Fn(try)e(to)h(deallo)s(cate)g
7653 (the)f(previous)f(con)m(ten)m(ts)j(of)e(the)g(data)h(\014eld,)f(so)g(y)
7654 m(ou)g(are)h(resp)s(onsible)c(for)150 5230 y(handling)g(that.)41
7655 b(In)27 b(summary)-8 b(,)28 b(the)g Fi(immeds)e Fn(and)i
7656 Fi(set_immeds)d Fn(metho)s(ds)i(allo)m(w)g(y)m(ou)i(to)f(access)i(b)s
7657 (oth)150 5340 y(\015at)25 b(and)e(structured)h(annotation)g(data)h(as)g
7658 Fi(immed)e Fn(lists.)37 b(The)24 b(only)g(di\013erence)f(is)h(that)h
7659 (for)f(structured)p eop
7660 %%Page: 65 67
7661 65 66 bop 150 -116 a Fn(Chapter)30 b(8:)41 b(Annotations)2556
7662 b(65)150 299 y(annotations)31 b(the)f Fi(immed)g Fn(lists)f(are)i(not)g
7663 (the)f(actual)h(annotation)g(data,)h(and)e(consequen)m(tly)g(y)m(ou)h
7664 (ma)m(y)150 408 y(need)f(to)h(deallo)s(cate)g(the)g(duplicate)e(data)i
7665 (structures.)275 541 y(Besides)23 b(the)h(con)m(v)m(ersion)h
7666 (functions,)f(the)g(annotation)g(manager)h(records)e(functions)g(to)i
7667 (deallo)s(cate)150 650 y(and)k(prin)m(t)g(the)h(structured)f(data.)41
7668 b(Both)30 b(of)g(these)g(functions)f(are)h(optional.)40
7669 b(If)29 b(the)h(data)h(\014elds)d(for)i(a)150 760 y(particular)d(kind)f
7670 (of)j(structured)e(annotation)i(con)m(tain)f(p)s(oin)m(ters)f(and)h(y)m
7671 (ou)h(do)f(not)h(supply)d(a)i(function)150 869 y(to)36
7672 b(deallo)s(cate)h(the)e(storage)j(that)e(they)g(reference,)h(it)f(is)e
7673 (y)m(our)i(resp)s(onsibilit)m(y)c(to)k(ensure)f(that)h(that)150
7674 979 y(storage)k(is)e(deallo)s(cated)h(elsewhere)f(in)f(y)m(our)i(co)s
7675 (de.)66 b(\(F)-8 b(or)40 b(example,)h(y)m(ou)e(ma)m(y)h(w)m(an)m(t)f
7676 (to)h(ha)m(v)m(e)g(the)150 1089 y(p)s(oin)m(ters)29 b(all)h(refer)g(to)
7677 h(en)m(tries)f(in)f(a)i(table)f(that)h(is)e(deallo)s(cated)i
7678 (separately)-8 b(.\))150 1339 y Fl(8.4)68 b(Unregistered)47
7679 b(Annotations)275 1529 y Fn(If)29 b(an)g(annotation)h(name)f(is)g(not)h
7680 (registered)f(with)f(the)i(manager,)h(the)e(format)h(of)g(the)g
7681 (annotation)150 1639 y(data)35 b(is)e(unkno)m(wn.)50
7682 b(Suc)m(h)33 b(annotations)i(cannot)f(b)s(e)g(written)f(to)h(the)h
7683 (SUIF)f(output)f(\014le,)h(and)g(when)150 1749 y(they)k(are)g(prin)m
7684 (ted)e(the)h(data)h(is)f(just)g(sho)m(wn)g(as)g(a)h(hexadecimal)f(v)-5
7685 b(alue.)61 b(If)37 b(the)h(data)g(needs)f(to)i(b)s(e)150
7686 1858 y(deallo)s(cated,)23 b(y)m(ou)f(m)m(ust)g(do)f(so)h(explicitly)d
7687 (b)s(efore)i(the)h(annotations)g(are)g(deleted.)37 b(The)21
7688 b(library)e(cannot)150 1968 y(automatically)k(up)s(date)g(the)h(data)g
7689 (in)e(unregistered)g(annotations,)j(and)e(the)h(cloning)e(functions)g
7690 (do)i(not)150 2077 y(cop)m(y)i(them.)39 b(The)24 b Fi(immeds)g
7691 Fn(metho)s(d)g(returns)g Fi(NULL)g Fn(for)h(unregistered)f(annotations)
7692 h(and)g Fi(set_immeds)150 2187 y Fn(will)j(not)i(w)m(ork)h(at)g(all)e
7693 (for)h(them.)275 2319 y(Due)i(to)i(these)e(limitations,)f(annotations)i
7694 (should)d(generally)i(b)s(e)g(registered)g(with)f(the)i(manager.)150
7695 2429 y(There)k(are,)i(ho)m(w)m(ev)m(er,)h(man)m(y)e(situations)d(where)
7696 i(unregistered)f(annotations)h(are)g(useful.)60 b(Because)150
7697 2538 y(they)43 b(are)g(not)g(written)e(out,)46 b(the)d(data)g(in)f
7698 (these)h(annotations)f(do)s(es)h(not)f(ha)m(v)m(e)i(to)f(b)s(e)f(con)m
7699 (v)m(erted)150 2648 y(to)36 b Fi(immed)f Fn(lists.)55
7700 b(This)33 b(means)j(that)g(they)g(ma)m(y)g(con)m(tain)g(totally)g
7701 (arbitrary)e(data)j(structures.)55 b(The)150 2757 y(dra)m(wbac)m(k)33
7702 b(is)e(that)i(it)f(is)f(en)m(tirely)h(up)f(to)i(y)m(ou)g(to)g(ensure)f
7703 (that)h(the)f(annotation)h(data)g(is)e(main)m(tained)150
7704 2867 y(prop)s(erly)-8 b(.)150 3117 y Fl(8.5)68 b(Prede\014ned)45
7705 b(Annotations)275 3308 y Fn(The)31 b(SUIF)h(library)e(automatically)i
7706 (de\014nes)f(a)h(n)m(um)m(b)s(er)f(of)i(annotations)f(for)g(its)f(o)m
7707 (wn)h(use.)46 b(Most)150 3417 y(of)33 b(these)h(are)g(only)e(used)g(in)
7708 m(ternally)f(to)j(handle)e(reading)g(and)h(writing)e(SUIF)i(\014les.)48
7709 b(A)34 b(few)f(of)g(them)150 3527 y(are)e(visible)d(to)j(users.)40
7710 b(Unless)29 b(sp)s(eci\014ed)g(otherwise,)h(they)g(are)h(all)e(\015at)i
7711 (annotations.)150 3744 y Ff(8.5.1)63 b(Initial)40 b(Data)g(Annotations)
7712 275 3935 y Fn(V)-8 b(ariables)40 b(that)i(are)g(not)g(in)e(the)i
7713 (automatic)g(storage)h(class)e(can)h(b)s(e)f(initialized)d(b)m(y)k
7714 (attac)m(hing)150 4044 y(annotations)37 b(to)h(their)e(de\014nitions)e
7715 (\(see)k(Section)f(6.4.3)i([V)-8 b(ariable)37 b(De\014nitions],)h(page)
7716 f(51\).)62 b(These)150 4154 y(annotations)32 b(are)g(v)m(ery)h(lo)m
7717 (w-lev)m(el.)45 b(Eac)m(h)33 b(one)f(sp)s(eci\014es)e(the)j(initial)c
7718 (v)-5 b(alue)31 b(for)h(a)g(certain)g(n)m(um)m(b)s(er)f(of)150
7719 4263 y(bits.)40 b(Multiple)28 b(annotations)i(ma)m(y)h(b)s(e)f(used,)g
7720 (in)f(whic)m(h)g(case)i(their)f(order)g(is)f(signi\014can)m(t.)150
7721 4418 y Fi(k_fill)132 b Fn(This)25 b(annotation)h(indicates)g(that)h
7722 (the)g(v)-5 b(ariable)25 b(should)f(b)s(e)i(initialized)d(with)j
7723 Fi(N)g Fn(bits)f(\014lled)630 4528 y(with)35 b(bit)h(pattern)g
7724 Fi(V)p Fn(,)i(where)e Fi(N)g Fn(is)g(the)g(\014rst)g(en)m(try)h(on)f
7725 (the)h(list)e(and)g Fi(V)i Fn(is)e(the)i(second.)630
7726 4637 y(The)d(size)g(m)m(ust)g(b)s(e)g(a)g(m)m(ultiple)e(of)j(the)f(b)m
7727 (yte)h(size)f(and)g(the)g(bit)g(pattern)g(m)m(ust)g(b)s(e)g(one)630
7728 4747 y(b)m(yte)d(long.)40 b(Curren)m(tly)-8 b(,)30 b(zero)h(is)e(the)i
7729 (only)e(bit)h(pattern)g(that)h(is)f(supp)s(orted.)150
7730 4902 y Fi(k_repeat_init)630 5011 y Fn(This)d(is)h(a)h(generalized)f(v)m
7731 (ersion)h(of)f(the)h Fi(fill)f Fn(annotation.)40 b(The)29
7732 b(v)-5 b(ariable)27 b(is)h(initialized)630 5121 y(to)g
7733 Fi(R)g Fn(copies)f(of)h Fi(N)f Fn(bits)f(holding)g(the)i(v)-5
7734 b(alue)27 b Fi(V)p Fn(,)h(where)f Fi(R)p Fn(,)h Fi(N)p
7735 Fn(,)g(and)f Fi(V)g Fn(are)h(the)g(\014rst,)g(second,)630
7736 5230 y(and)36 b(third)g(en)m(tries)g(on)h(the)g Fi(immed)f
7737 Fn(list.)59 b(The)37 b(v)-5 b(alues)36 b(that)h(are)h(curren)m(tly)e
7738 (supp)s(orted)630 5340 y(are)31 b(in)m(tegers,)g(\015oating)f(p)s(oin)m
7739 (t)f(v)-5 b(alues,)30 b(and)g(sym)m(b)s(olic)f(addresses.)p
7741 %%Page: 66 68
7742 66 67 bop 150 -116 a Fn(66)2385 b(The)30 b(SUIF)g(V)-8
7743 b(ersion)30 b(1)h(Library)150 299 y Fi(k_multi_init)630
7744 408 y Fn(This)46 b(is)g(another)i(initial)d(v)-5 b(alue)46
7745 b(annotation)i(that)g(is)f(used)f(to)j(initialize)44
7746 b(c)m(haracter)630 518 y(strings.)39 b(The)27 b(\014rst)h(en)m(try)g
7747 (on)g(the)g(list)f(is)g(the)h(size)g(in)e(bits)h(of)i(eac)m(h)g(c)m
7748 (haracter.)41 b(The)28 b(rest)630 628 y(of)35 b(the)f(en)m(tries)g(on)h
7749 (the)f Fi(immed)f Fn(list)g(are)i(in)m(tegers)g(that)g(sp)s(ecify)e
7750 (the)i(c)m(haracters)h(in)d(the)630 737 y(string.)275
7751 944 y(Despite)26 b(the)h(lo)m(w-lev)m(el)f(nature)g(of)h(the)g(initial)
7752 c(data)k(annotations,)h(SUIF)e(still)f(requires)g(that)i(they)150
7753 1054 y(corresp)s(ond)38 b(to)j(the)e(t)m(yp)s(es)h(of)f(the)h(v)-5
7754 b(ariables.)67 b(F)-8 b(or)40 b(example,)i(c)m(haracter)f(strings)d
7755 (should)g(only)h(b)s(e)150 1163 y(used)c(to)h(initialize)d(c)m
7756 (haracter)38 b(arra)m(ys.)57 b(Eac)m(h)36 b(v)-5 b(alue)35
7757 b(sp)s(eci\014ed)f(in)g(one)i(of)g(these)g(annotations)g(m)m(ust)150
7758 1273 y(\014t)e(exactly)h(in)m(to)g(the)f(corresp)s(onding)f(v)-5
7759 b(ariable,)34 b(\014eld,)g(or)h(arra)m(y)g(elemen)m(t.)53
7760 b(The)34 b(only)g(exception)g(to)150 1383 y(this)f(is)g(that)h(m)m
7761 (ultiple)d(\014elds)i(or)g(arra)m(y)i(elemen)m(ts)f(ma)m(y)g(b)s(e)f
7762 (initialized)e(to)j(zero)h(with)d(a)j(single)d Fi(fill)150
7763 1492 y Fn(annotation.)275 1658 y(F)-8 b(or)31 b(example,)f(this)f
7764 (structure)390 1819 y Fi(struct)46 b({)581 1923 y(int)h(x[2];)581
7765 2026 y(float)f(fp;)581 2130 y(char)h(string[7];)390 2234
7766 y(})g(sample;)150 2400 y Fn(migh)m(t)30 b(b)s(e)g(initialized)d(with)i
7767 (the)i(follo)m(wing)e(annotations:)390 2561 y Fi(["fill":)46
7768 b(64)h(0])390 2664 y(["repeat_init":)d(1)j(32)g(1.2000e+00])390
7769 2768 y(["multi_init":)d(8)j(102)g(97)g(116)g(112)g(105)g(103)g(0])150
7770 3056 y Ff(8.5.2)63 b(Call-By-Reference)39 b(Annotations)275
7771 3280 y Fn(F)-8 b(ortran)26 b(and)g(other)g(languages)h(pass)f(pro)s
7772 (cedure)f(parameters)h(b)m(y)g(reference)h(but)f(SUIF)g(uses)f(call-)
7773 150 3390 y(b)m(y-v)-5 b(alue.)59 b(T)-8 b(o)38 b(implemen)m(t)d(call-b)
7774 m(y-reference)i(parameters,)i(SUIF)d(passes)h(p)s(oin)m(ters)e(to)j
7775 (the)f(actual)150 3499 y(parameters)44 b(and)f(then)g(dereferences)h
7776 (those)g(p)s(oin)m(ters)e(when)h(the)h(formal)f(parameters)h(are)f
7777 (used.)150 3609 y(While)e(this)h(is)f(p)s(erfectly)h(adequate)h(for)f
7778 (man)m(y)h(compiler)e(passes,)46 b(the)c(p)s(oin)m(ter)g(dereferences)h
7779 (are)150 3719 y(di\016cult)23 b(to)i(handle)e(in)g(some)i(high-lev)m
7780 (el)e(F)-8 b(ortran)26 b(passes.)38 b(The)24 b(SUIF)h(F)-8
7781 b(ortran)25 b(mo)s(de)f(automatically)150 3828 y(con)m(v)m(erts)f(the)f
7782 (co)s(de)g(to)g(mak)m(e)h(it)e(app)s(ear)h(that)g(the)g(parameters)g
7783 (are)g(passed)f(b)m(y)h(reference.)38 b(The)21 b(library)150
7784 3938 y(uses)30 b(t)m(w)m(o)i(prede\014ned)c(annotations)j(to)g
7785 (implemen)m(t)e(this.)150 4145 y Fi(k_call_by_ref)630
7786 4254 y Fn(The)34 b(F)-8 b(ortran)36 b(fron)m(t-end)e(puts)g(this)g
7787 (annotation)h(on)f(p)s(oin)m(ter)g(t)m(yp)s(es)h(that)g(are)g(used)f
7788 (to)630 4364 y(implemen)m(t)29 b(call-b)m(y-reference)i(parameter)g
7789 (passing.)40 b(The)30 b(library)f(uses)h(this)f(to)j(detect)630
7790 4474 y(parameters)38 b(that)h(should)d(b)s(e)h(mo)s(di\014ed)f(when)h
7791 (con)m(v)m(erting)h(to)h(F)-8 b(ortran)39 b(mo)s(de.)63
7792 b(This)630 4583 y(annotation)31 b(has)f(no)g(data)h(on)f(its)g
7793 Fi(immed)f Fn(list.)150 4774 y Fi(k_orig_type)630 4884
7794 y Fn(While)h(in)g(F)-8 b(ortran)33 b(mo)s(de,)e(the)h(t)m(yp)s(es)f(of)
7795 h(the)g(call-b)m(y-reference)f(parameters)h(are)g(tem-)630
7796 4994 y(p)s(orarily)g(replaced.)52 b(The)34 b Fi(orig_type)e
7797 Fn(annotations)j(are)f(attac)m(hed)j(to)e(the)f(parameter)630
7798 5103 y(v)-5 b(ariables)30 b(to)i(record)f(their)g(original)e(t)m(yp)s
7799 (es.)44 b(The)31 b Fi(immed)f Fn(list)g(con)m(tains)h(a)h(single)e(en)m
7800 (try)-8 b(,)630 5213 y(the)25 b(original)f(p)s(oin)m(ter)g(t)m(yp)s(e)h
7801 (of)g(the)g(parameter.)40 b(These)25 b(annotations)g(are)g(nev)m(er)h
7802 (written)630 5322 y(to)31 b(the)g(output)f(\014les.)p
7804 %%Page: 67 69
7805 67 68 bop 150 -116 a Fn(Chapter)30 b(8:)41 b(Annotations)2556
7806 b(67)150 299 y Ff(8.5.3)63 b(Common)40 b(Blo)s(c)m(k)h(Annotations)275
7807 496 y Fn(F)-8 b(ortran)39 b Fi(common)d Fn(blo)s(c)m(ks)i(are)h
7808 (represen)m(ted)f(in)f(SUIF)h(b)m(y)h(global)e(group)h(t)m(yp)s(es.)65
7809 b(These)38 b(can)h(b)s(e)150 606 y(accessed)c(just)f(lik)m(e)g(an)m(y)g
7810 (other)h(structures.)52 b(In)33 b(addition,)h(and)f(the)i(F)-8
7811 b(ortran)35 b(fron)m(t-end)f(will)d(create)150 715 y(sub-v)-5
7812 b(ariables)28 b(to)j(represen)m(t)f(the)g(\014elds)e(in)h(the)h
7813 Fi(common)e Fn(blo)s(c)m(k,)i(so)g(most)h(of)f(the)g(time)g(only)f(the)
7814 h(sub-)150 825 y(v)-5 b(ariables)33 b(themselv)m(es)i(will)d(b)s(e)i
7815 (seen.)53 b(If)34 b(y)m(ou)h(w)m(an)m(t)g(to)g(kno)m(w)g(whether)f(a)h
7816 (particular)e(global)g(group)150 934 y(represen)m(ts)27
7817 b(a)h Fi(common)e Fn(blo)s(c)m(k,)i(y)m(ou)g(can)g(c)m(hec)m(k)h(for)e
7818 (the)h Fi(k_common_block)23 b Fn(annotation,)29 b(whic)m(h)d(is)h(put)
7819 150 1044 y(only)i(on)i(v)-5 b(ariables)29 b(represen)m(ting)g
7820 Fi(common)g Fn(blo)s(c)m(ks)h(\(the)h(blo)s(c)m(ks,)f(not)g(the)h
7821 (\014elds\).)150 1277 y Ff(8.5.4)63 b(Miscellaneous)42
7822 b(Annotations)275 1474 y Fn(The)33 b(SUIF)g(library)f(de\014nes)h(a)h
7823 (few)g(other)g(annotations)g(to)g(record)g(v)-5 b(arious)33
7824 b(attributes)g(of)h(SUIF)150 1584 y(programs.)47 b(These)32
7825 b(are)h(straigh)m(tforw)m(ard)g(except)g(for)g(the)f
7826 Fi(fields)f Fn(annotation)i(whic)m(h)e(is)h(describ)s(ed)150
7827 1693 y(here)e(in)f(more)i(detail.)150 1859 y Fi(k_line)132
7828 b Fn(This)41 b(annotation)i(records)g(line)e(n)m(um)m(b)s(ers)h(from)g
7829 (the)h(source)h(co)s(de)f(to)g(b)s(e)g(used)f(when)630
7830 1969 y(debugging)37 b(the)h(ob)5 b(ject)39 b(co)s(de.)65
7831 b(It)38 b(is)f(usually)f(attac)m(hed)k(to)f(a)f Fi(mrk)f
7832 Fn(instruction.)62 b(The)630 2078 y(\014rst)29 b(list)f(en)m(try)i(is)f
7833 (the)h(in)m(teger)g(line)e(n)m(um)m(b)s(er)h(and)g(the)h(second)g(is)f
7834 (the)h(c)m(haracter)h(string)630 2188 y(for)f(the)h(\014le)e(name.)150
7835 2352 y Fi(k_history)630 2461 y Fn(As)36 b(eac)m(h)i(SUIF)e(pass)g
7836 (runs,)h(the)f(library)e(automatically)j(records)f(the)g(command-line)
7837 630 2571 y(for)25 b(the)h(pass)f(as)g(an)h(annotation)f(on)g(the)h
7838 (\014le)f(set)g(en)m(tries.)39 b(These)25 b Fi(history)f
7839 Fn(annotations)630 2681 y(allo)m(w)30 b(y)m(ou)h(to)g(see)g(ho)m(w)f(a)
7840 h(particular)d(SUIF)j(\014le)e(w)m(as)i(generated.)150
7841 2844 y Fi(k_enable_exceptions)630 2954 y Fn(This)h(annotation)j(is)e
7842 (attac)m(hed)j(to)e(a)h Fi(proc_symtab)c Fn(to)k(indicate)e(whic)m(h)g
7843 (run-time)f(ex-)630 3064 y(ceptions)i(should)f(b)s(e)g(detected)j
7844 (within)c(that)j(pro)s(cedure.)52 b(The)34 b(en)m(tries)g(on)h(the)f
7845 Fi(immed)630 3173 y Fn(list)25 b(are)i(c)m(haracter)h(strings.)38
7846 b(The)26 b(system)g(curren)m(tly)g(recognizes)h Fi("int_divide-by-0")
7847 630 3283 y Fn(and)j Fi("int_overflow")p Fn(.)37 b Fm(ieee)29
7848 b Fn(\015oating)i(p)s(oin)m(t)e(exceptions)i(need)f(to)h(b)s(e)f
7849 (added.)150 3447 y Fi(k_reg_num)630 3556 y Fn(This)40
7850 b(annotation)i(is)f(attac)m(hed)j(to)f(v)-5 b(ariables)40
7851 b(that)j(represen)m(t)f(mac)m(hine)g(registers)f(to)630
7852 3666 y(record)36 b(the)f(register)h(n)m(um)m(b)s(ers.)55
7853 b(It)36 b(has)f(one)h(immediate)f(v)-5 b(alue)35 b(whic)m(h)f(is)h(the)
7854 h(in)m(teger)630 3775 y(register)28 b(n)m(um)m(b)s(er.)39
7855 b(The)28 b(meaning)g(of)h(the)g(register)f(n)m(um)m(b)s(ers)g(are)h
7856 (mac)m(hine-dep)s(enden)m(t.)150 3939 y Fi(k_fields)36
7857 b Fn(A)h(\014eld)e(within)f(a)j(structure)f(or)h(union)d(v)-5
7858 b(ariable)36 b(is)g(sp)s(eci\014ed)e(in)i(SUIF)g(b)m(y)h(a)g(constan)m
7859 (t)630 4049 y(o\013set)27 b(and)f(a)g(base)h(address.)38
7860 b(That)26 b(is)g(all)f(that)h(is)g(needed)f(to)i(generate)h(co)s(de.)40
7861 b(Ho)m(w)m(ev)m(er,)630 4158 y(if)25 b(the)g(o\013set)i(is)e(zero)h(or)
7862 g(if)e(the)i(v)-5 b(ariable)24 b(is)h(a)h(union,)f(that)h(information)e
7863 (is)h(not)g(su\016cien)m(t)630 4268 y(to)i(determine)e(the)h(\014eld.)
7864 38 b(The)25 b Fi(fields)g Fn(annotation)h(ma)m(y)h(b)s(e)e(used)g(to)i
7865 (pro)m(vide)e(the)h(\014eld)630 4377 y(names)38 b(that)h(w)m(ere)g
7866 (used)e(in)g(the)h(original)f(source)h(co)s(de.)65 b(The)38
7867 b Fi(immed)e Fn(list)h(for)h(one)h(of)630 4487 y(these)31
7868 b(annotations)g(con)m(tains)f(the)h(names)g(of)f(the)h(\014elds)e(b)s
7869 (eing)g(accessed.)43 b(\(There)30 b(ma)m(y)630 4597 y(b)s(e)g(m)m
7870 (ultiple)e(\014eld)h(names)h(b)s(ecause)g(of)h(nested)f(structures)g
7871 (or)g(unions.\))275 4763 y(The)c Fi(fields)f Fn(annotation)i(is)f
7872 (somewhat)h(more)g(complicated)f(than)h(the)g(others.)39
7873 b(The)27 b(di\016cult)m(y)e(is)150 4872 y(in)f(de\014ning)g(where)h
7874 (this)f(annotation)i(should)d(b)s(e)i(used.)38 b(In)m(tuitiv)m(ely)-8
7875 b(,)26 b(the)g Fi(fields)d Fn(annotation)j(should)150
7876 4982 y(b)s(e)32 b(placed)g(on)h(the)f(\014rst)g(instruction)f(that)i
7877 (pro)s(duces)e(a)i(p)s(oin)m(ter)f(to)i(the)e(\014eld.)46
7878 b(There)33 b(are)g(basically)150 5091 y(three)e(di\013eren)m(t)e
7879 (situations)h(to)h(consider.)275 5230 y(In)44 b(the)g(simplest)f(case,)
7880 50 b(a)45 b(\014eld)e(can)i(b)s(e)f(addressed)g(directly)f(with)h(an)g
7881 Fi(ldc)g Fn(instruction)f(\(see)150 5340 y(Section)36
7882 b(4.6)h([Load)g(Constan)m(t)g(Instructions],)f(page)h(33\).)59
7883 b(Since)35 b(that)i(pro)s(duces)e(a)i(p)s(oin)m(ter)e(to)i(the)p
7885 %%Page: 68 70
7886 68 69 bop 150 -116 a Fn(68)2385 b(The)30 b(SUIF)g(V)-8
7887 b(ersion)30 b(1)h(Library)150 299 y(\014eld,)e(a)h Fi(fields)e
7888 Fn(annotation)j(ma)m(y)f(b)s(e)f(placed)h(on)g(the)g
7889 Fi(ldc)f Fn(instruction.)38 b(Of)30 b(course,)g(the)g(en)m(tries)g(on)
7890 150 408 y(the)h(annotation)f(m)m(ust)g(b)s(e)g(v)-5 b(alid)29
7891 b(\014eld)g(names)h(for)g(the)h(v)-5 b(ariable)29 b(that)i(is)e
7892 (addressed.)275 541 y(T)-8 b(o)39 b(access)h(a)f(\014eld)f(of)h(a)g
7893 (structure)g(or)f(union)f(v)-5 b(ariable)38 b(that)i(is)e(referenced)g
7894 (b)m(y)h(a)g(p)s(oin)m(ter,)i(the)150 650 y(constan)m(t)c(o\013set)f(m)
7895 m(ust)f(b)s(e)g(included)e(with)h(an)h(explicit)f Fi(add)g
7896 Fn(instruction.)54 b(Since)34 b(the)i(result)e(of)i(the)150
7897 760 y(addition)43 b(is)g(a)i(p)s(oin)m(ter)f(to)h(the)g(\014eld,)i(the)
7898 e Fi(fields)e Fn(annotation)i(should)d(b)s(e)i(placed)h(on)f(the)h
7899 Fi(add)150 870 y Fn(instruction.)k(Note)35 b(that)f(if)e(the)i(\014eld)
7900 e(o\013set)j(is)e(zero,)i(the)f Fi(add)f Fn(instruction)f(ma)m(y)i(b)s
7901 (e)f(replaced)g(b)m(y)h(a)150 979 y Fi(cvt)j Fn(instruction.)62
7902 b(The)37 b(same)i(rule)e(applies:)54 b(the)38 b Fi(cvt)f
7903 Fn(instruction)f(gets)j(the)f Fi(fields)f Fn(annotation)150
7904 1089 y(b)s(ecause)30 b(it)g(pro)s(duces)f(a)i(p)s(oin)m(ter)e(to)j(the)
7905 e(\014eld.)275 1221 y(F)-8 b(or)29 b(arra)m(ys)h(of)f(structures)g(or)g
7906 (unions,)f(an)h Fi(array)e Fn(instruction)h(\(see)i(Section)f(4.8)h
7907 ([Arra)m(y)g(Instruc-)150 1331 y(tions],)41 b(page)e(34\))h(ma)m(y)f
7908 (include)d(a)j(constan)m(t)h(o\013set)g(for)e(a)h(\014eld)e(within)f
7909 (the)j(arra)m(y)g(elemen)m(t)g(b)s(eing)150 1440 y(addressed,)i(so)f
7910 (this)f(is)f(another)i(t)m(yp)s(e)g(of)g(instruction)e(that)i(ma)m(y)g
7911 (include)d(a)k Fi(fields)c Fn(annotation.)150 1550 y(The)30
7912 b(en)m(tries)g(on)g(the)h Fi(fields)e Fn(annotation)h(m)m(ust)g(b)s(e)g
7913 (v)-5 b(alid)29 b(\014elds)g(within)e(the)k(arra)m(y)g(elemen)m(t)g(t)m
7914 (yp)s(e.)150 1801 y Fl(8.6)68 b(Annotation)45 b(Manager)275
7915 1991 y Fn(The)31 b(annotation)h(manager)h(k)m(eeps)g(trac)m(k)g(of)f
7916 (the)h(annotations)f(that)h(ha)m(v)m(e)g(b)s(een)e(registered.)46
7917 b(F)-8 b(or)150 2101 y(eac)m(h)31 b(annotation)g(name,)f(it)g(records)g
7918 (whether)g(the)g(annotation)h(is)e(\015at)h(or)h(structured)e(and)h
7919 (whether)150 2211 y(it)41 b(should)f(b)s(e)h(written)g(to)i(the)f
7920 (output)f(\014le.)75 b(Additional)39 b(information)h(is)h(stored)h(for)
7921 g(structured)150 2320 y(annotations.)275 2452 y(The)47
7922 b(annotation)i(manager)g(is)f(implemen)m(ted)f(in)g(the)h(\014les)g(`)p
7923 Fi(aman.h)p Fn(')f(and)h(`)p Fi(aman.cc)p Fn('.)93 b(The)150
7924 2562 y Fi(annote_def)39 b Fn(class)i(is)f(used)h(to)h(hold)e(the)i
7925 (annotation)g(information.)72 b(Eac)m(h)42 b Fi(annote_def)d
7926 Fn(ob)5 b(ject)150 2672 y(records)25 b(the)h(information)d(for)i
7927 (annotations)h(with)e(a)i(particular)d(name)j(\(whic)m(h)e(can)i(b)s(e)
7928 f(accessed)h(with)150 2781 y(the)38 b Fi(name)f Fn(metho)s(d\).)63
7929 b(As)38 b(with)f(the)h(annotations)g(themselv)m(es,)j(the)d(name)g(in)f
7930 (the)h Fi(annote_def)d Fn(is)150 2891 y(en)m(tered)g(in)f(the)h
7931 Fi(lexicon)e Fn(\(see)i(Section)g(12.3)h([Lexicon],)h(page)e(84\),)j
7932 (except)d(that)h(in)d(this)h(case)i(the)150 3000 y Fi(annote_def)28
7933 b Fn(constructor)i(automatically)h(mak)m(es)g(sure)f(that)g(the)h(name)
7934 f(is)g(in)f(the)i Fi(lexicon)p Fn(.)275 3133 y(The)g(manager)i(is)e
7935 (implemen)m(ted)f(as)j(a)f(list)f(of)h Fi(annote_def)d
7936 Fn(ob)5 b(jects.)47 b(This)30 b(list)h(is)g(initialized)e(b)m(y)150
7937 3242 y(the)j Fi(init_aman)e Fn(function,)i(whic)m(h)f(is)g
7938 (automatically)i(called)e(when)g(the)i(library)d(is)h(initialized.)43
7939 b(The)150 3352 y Fi(register_annote)25 b Fn(function)j(adds)h(an)g
7940 Fi(annote_def)d Fn(to)k(the)g(list.)39 b(An)28 b(error)h(o)s(ccurs)g
7941 (if)f(the)i(name)f(in)150 3462 y(the)g Fi(annote_def)e
7942 Fn(is)h(already)h(used)g(in)e(another)j(registered)f
7943 Fi(annote_def)p Fn(.)38 b(Rather)29 b(than)g(calling)f(the)150
7944 3571 y Fi(register_annote)f Fn(function)k(directly)-8
7945 b(,)31 b(use)g(the)h Fi(ANNOTE)d Fn(and)i Fi(STRUCT_ANNOTE)d
7946 Fn(macros)k(describ)s(ed)150 3681 y(b)s(elo)m(w)e(to)h(en)m(ter)g(new)f
7947 (annotations.)275 3813 y(The)38 b(information)g(in)g(the)i(manager)f
7948 (can)h(b)s(e)f(retriev)m(ed)g(using)f(the)h Fi(lookup_annote)d
7949 Fn(function.)150 3923 y(Giv)m(en)28 b(an)f(annotation)h(name)g(that)g
7950 (is)f(en)m(tered)h(in)e(the)i Fi(lexicon)p Fn(,)f Fi(lookup_annote)d
7951 Fn(searc)m(hes)k(the)g(list)150 4032 y(of)34 b(registered)f
7952 (annotations)g(and)g(returns)g(the)g Fi(annote_def)e
7953 Fn(corresp)s(onding)g(to)k(that)f(name.)50 b(If)33 b(the)150
7954 4142 y(name)d(is)g(not)g(found,)g(it)g(returns)f Fi(NULL)p
7955 Fn(.)150 4360 y Ff(8.6.1)63 b(Flat)40 b(Annotation)h(De\014nitions)275
7956 4550 y Fn(Flat)31 b(annotation)g(de\014nitions)d(\(see)k(Section)e(8.2)
7957 i([Flat)g(Annotes],)f(page)h(64\))g(are)f(represen)m(ted)g(b)m(y)150
7958 4660 y(base)26 b Fi(annote_def)d Fn(ob)5 b(jects,)27
7959 b(for)f(whic)m(h)e(the)i Fi(is_structured)d Fn(metho)s(d)i(returns)f
7960 Fi(FALSE)p Fn(.)38 b(Other)25 b(than)150 4769 y(the)37
7961 b(annotation)g(name,)h(these)f(en)m(tries)g(con)m(tain)g(a)g(\015ag)g
7962 (that)g(indicates)f(whether)g(the)h(annotations)150 4879
7963 y(should)28 b(b)s(e)h(written)f(to)j(the)f(SUIF)f(output)g(\014le.)40
7964 b(The)29 b Fi(output)f Fn(metho)s(d)h(is)g(used)g(to)h(retriev)m(e)g
7965 (this)f(\015ag)150 4988 y(and)h(the)g Fi(set_output)e
7966 Fn(metho)s(d)i(to)h(c)m(hange)g(its)f(v)-5 b(alue.)275
7967 5121 y(The)33 b Fi(ANNOTE)f Fn(macro)j(pro)m(vides)e(a)i(con)m(v)m
7968 (enien)m(t)g(w)m(a)m(y)g(to)g(register)f(\015at)g(annotations.)52
7969 b(This)32 b(macro)150 5230 y(en)m(ters)e(the)g(annotation)f(name)h(in)e
7970 (the)h Fi(lexicon)p Fn(,)f(creates)j(an)e Fi(annote_def)e
7971 Fn(ob)5 b(ject,)30 b(and)f(registers)g(it)150 5340 y(with)h(the)h
7972 (manager.)44 b(It)31 b(tak)m(es)i(three)e(argumen)m(ts:)43
7973 b(the)31 b(v)-5 b(ariable)30 b(that)i(will)c(hold)i(the)i(p)s(oin)m
7974 (ter)e(to)i(the)p eop
7975 %%Page: 69 71
7976 69 70 bop 150 -116 a Fn(Chapter)30 b(8:)41 b(Annotations)2556
7977 b(69)150 299 y(annotation)36 b(name)g(in)f(the)h Fi(lexicon)p
7978 Fn(,)f(the)h(annotation)g(name,)i(and)d(the)h(v)-5 b(alue)36
7979 b(of)g(its)f Fi(output)f Fn(\015ag.)150 408 y(F)-8 b(or)31
7980 b(example:)390 558 y Fi(char)47 b(*k_my_annote;)390 662
7981 y(ANNOTE\(k_my_annote,)c("my_annote",)h(TRUE\);)275 817
7982 y Fn(This)34 b(en)m(ters)k(the)e(name)h Fi("my_annote")d
7983 Fn(in)h(the)i Fi(lexicon)e Fn(and)h(sets)h Fi(k_my_annote)c
7984 Fn(to)38 b(p)s(oin)m(t)d(to)150 927 y(that)27 b(string.)38
7985 b(It)26 b(also)g(registers)g(that)h(name)f(as)h(a)f(\015at)h
7986 (annotation)f(that)h(will)c(b)s(e)j(written)f(to)i(the)f(SUIF)150
7987 1037 y(output)34 b(\014le.)54 b(T)m(ypically)-8 b(,)35
7988 b Fi(k_my_annote)c Fn(will)i(b)s(e)h(a)h(global)f(v)-5
7989 b(ariable)34 b(that)h(is)f(used)g(throughout)h(the)150
7990 1146 y(program)30 b(to)h(refer)f(to)h(annotations)g(of)f(this)g(t)m(yp)
7991 s(e.)150 1412 y Ff(8.6.2)63 b(Structured)41 b(Annotation)g
7992 (De\014nitions)275 1626 y Fn(The)33 b Fi(struct_annote_def)c
7993 Fn(class,)34 b(whic)m(h)f(is)f(deriv)m(ed)h(from)g(the)h
7994 Fi(annote_def)d Fn(class,)k(is)d(used)h(to)150 1736 y(record)d(the)h
7995 (de\014nitions)c(of)k(structured)e(annotations.)41 b(Ob)5
7996 b(jects)30 b(of)g(this)g(class)g(b)s(eha)m(v)m(e)h(just)e(lik)m(e)h
7997 (base)150 1845 y Fi(annote_def)j Fn(ob)5 b(jects,)37
7998 b(except)f(the)g Fi(is_structured)c Fn(metho)s(d)i(returns)g
7999 Fi(TRUE)p Fn(.)55 b(In)34 b(addition,)h(these)150 1955
8000 y(ob)5 b(jects)31 b(con)m(tain)g(p)s(oin)m(ters)e(to)i(four)f
8001 (functions:)150 2146 y Fi(from)228 b Fn(The)35 b Fi(from)g
8002 Fn(function)f(con)m(v)m(erts)j(the)f(annotation)g(data)g(from)g(a)g
8003 (list)e(of)i Fi(immed)e Fn(v)-5 b(alues)35 b(to)630 2255
8004 y(the)c(user's)e(data)i(structure.)41 b(This)28 b(function)h(is)h
8005 (required.)150 2436 y Fi(to)324 b Fn(The)26 b Fi(to)g
8006 Fn(function)g(con)m(v)m(erts)i(the)f(user's)f(data)i(structure)e(to)i
8007 (a)f(list)f(of)g Fi(immed)g Fn(v)-5 b(alues.)39 b(This)630
8008 2545 y(function)29 b(is)g(required.)150 2726 y Fi(free)228
8009 b Fn(The)32 b Fi(free)f Fn(function)g(is)g(optional,)i(but)e(it)h
8010 (should)e(b)s(e)i(pro)m(vided)f(if)g(the)i(annotation)f(data)630
8011 2835 y(needs)e(to)h(b)s(e)f(deallo)s(cated)g(when)f(the)i(annotation)g
8012 (is)e(deleted.)150 3016 y Fi(print)180 b Fn(The)42 b
8013 Fi(print)g Fn(function)f(is)h(also)h(optional,)i(but)d(without)g(it)g
8014 (the)h(data)g(in)f(a)h(structured)630 3125 y(annotation)31
8015 b(is)g(simply)d(prin)m(ted)i(as)i(a)f(hexadecimal)g(v)-5
8016 b(alue.)43 b(This)29 b(function)h(allo)m(ws)h(y)m(ou)630
8017 3235 y(to)f(prin)m(t)d(the)i(annotations)g(in)e(more)i(meaningful)e
8018 (formats.)40 b(As)29 b(m)m(uc)m(h)g(as)g(p)s(ossible,)e(the)630
8019 3344 y(annotations)j(should)f(b)s(e)h(prin)m(ted)e(in)i(the)g(same)h
8020 (st)m(yle)g(as)f(\015at)h(annotations.)275 3535 y(Structured)21
8021 b(annotations)j(m)m(ust)f(b)s(e)g(registered)g(with)f(the)h(manager)h
8022 (b)s(efore)f(the)g(SUIF)g(input)f(\014le)g(is)150 3645
8023 y(read.)38 b(Otherwise,)23 b(the)g(annotations)g(will)d(remain)h(as)i
8024 Fi(immed)e Fn(v)-5 b(alue)23 b(lists,)f(instead)g(of)h(b)s(eing)e(con)m
8025 (v)m(erted)150 3755 y(to)34 b(the)f(appropriate)f(data)i(structures.)48
8026 b(The)33 b Fi(STRUCT_ANNOTE)d Fn(macro)j(should)e(b)s(e)i(used)f(to)i
8027 (register)150 3864 y(structured)e(annotations.)49 b(This)32
8028 b(is)g(just)g(lik)m(e)h(the)g Fi(ANNOTE)f Fn(macro)h(except)h(that)g
8029 (it)f(tak)m(es)h(four)f(more)150 3974 y(argumen)m(ts)e(for)f(the)g
8030 Fi(struct_annote_def)c Fn(functions.)39 b(F)-8 b(or)31
8031 b(example:)390 4123 y Fi(char)47 b(*k_struct_annote;)390
8032 4227 y(void)g(*ann_from\(char)d(*name,)i(immed_list)f(*il,)h
8033 (suif_object)f(*obj\);)390 4331 y(immed_list)g(*ann_to\(char)f(*name,)j
8034 (void)f(*data\);)390 4435 y(void)h(ann_free\(void)d(*data\);)390
8035 4642 y(STRUCT_ANNOTE\(k_struct_a)o(nnot)o(e,)e("struct_annote",)h
8036 (TRUE,)1058 4746 y(ann_from,)i(ann_to,)h(ann_free,)g(NULL\);)275
8037 4902 y Fn(This)32 b(registers)i(the)g(annotation)g Fi("struct_annote")c
8038 Fn(as)35 b(a)f(structured)f(annotation.)52 b(The)34 b
8039 Fi(ann_)150 5011 y(from)d Fn(function)g(will)e(b)s(e)i(used)g(to)i(con)
8040 m(v)m(ert)h(the)e(annotation)g(data)h(from)f(a)g(list)f(of)h
8041 Fi(immed)e Fn(v)-5 b(alues;)33 b(the)150 5121 y Fi(ann_to)24
8042 b Fn(function)g(will)f(b)s(e)i(used)g(to)i(con)m(v)m(ert)g(the)f(data)g
8043 (bac)m(k)h(to)f(an)g Fi(immed_list)p Fn(;)e(and)h(the)h
8044 Fi(ann_free)150 5230 y Fn(function)34 b(will)e(b)s(e)i(used)g(to)i
8045 (deallo)s(cate)f(the)h(annotation)f(data.)55 b(No)35
8046 b(function)f(is)g(pro)m(vided)g(to)h(prin)m(t)150 5340
8047 y(the)c(annotation)f(data.)p eop
8048 %%Page: 70 72
8049 70 71 bop 150 -116 a Fn(70)2385 b(The)30 b(SUIF)g(V)-8
8050 b(ersion)30 b(1)h(Library)150 299 y Ff(8.6.3)63 b(Unregistered)42
8051 b(Annotations)g(in)f(the)g(Input)f(File)275 491 y Fn(When)h(an)g
8052 (unregistered)f(annotation)h(is)f(read)h(from)g(a)h(SUIF)f(input)e
8053 (\014le,)k(it)e(is)f(automatically)150 600 y(registered)45
8054 b(as)g(a)g(\015at)g(annotation.)85 b(This)43 b(is)h(done)h(so)g(that)h
8055 (the)f(manager)g(kno)m(ws)g(to)h(write)e(the)150 710
8056 y(annotation)31 b(bac)m(k)g(in)e(the)h(output.)275 844
8057 y(Annotations)22 b(are)g(often)h(added)f(to)h(a)g(SUIF)f(\014le)f(in)g
8058 (one)i(pass)f(to)h(record)f(some)h(sort)g(of)f(information,)150
8059 953 y(p)s(erhaps)41 b(the)i(results)e(of)i(a)g(data)g(\015o)m(w)g
8060 (analysis.)76 b(Those)42 b(annotations)h(ma)m(y)g(then)g(used)f(in)f
8061 (later)150 1063 y(passes)d(to)g(guide)f(v)-5 b(arious)37
8062 b(transformations.)62 b(Ev)m(en)37 b(if)g(in)m(terv)m(ening)g(passes)h
8063 (do)f(not)h(recognize)h(the)150 1172 y(annotations,)30
8064 b(they)h(will)c(still)h(b)s(e)i(propagated)g(to)h(the)g(output.)40
8065 b(\(It)30 b(is)f(up)h(to)g(the)h(user,)e(of)i(course,)f(to)150
8066 1282 y(mak)m(e)h(sure)e(that)h(the)g(in)m(terv)m(ening)e(passes)i(do)g
8067 (not)f(in)m(v)-5 b(alidate)29 b(the)h(information)e(in)g(the)i
8068 (annotations)150 1391 y(without)f(up)s(dating)g(them.\))150
8069 1646 y Fl(8.7)68 b(SUIF)45 b(Ob)7 b(jects)275 1838 y
8070 Fn(Most)43 b(of)f(the)h(signi\014can)m(t)e(classes)h(in)f(the)i(SUIF)f
8071 (library)e(are)i(deriv)m(ed)g(from)g(a)g(common)h(base)150
8072 1948 y(class.)c(This)26 b Fi(suif_object)e Fn(class)k(includes)d(a)i
8073 (\014eld)f(with)g(a)i(p)s(oin)m(ter)e(to)j(a)e(list)f(of)i
8074 (annotations.)40 b(Th)m(us,)150 2057 y(annotations)23
8075 b(can)g(b)s(e)g(attac)m(hed)i(to)f(most)f(ob)5 b(jects)24
8076 b(in)d(SUIF,)j(and)e(all)g(of)h(these)h(ob)5 b(jects)23
8077 b(share)g(the)h(same)150 2167 y(in)m(terface)i(for)g(accessing)g(the)g
8078 (annotations.)40 b(The)25 b(\014les)g(`)p Fi(suifobj.h)p
8079 Fn(')f(and)h(`)p Fi(suifobj.cc)p Fn(')f(con)m(tain)i(the)150
8080 2276 y(co)s(de)31 b(for)f(the)g Fi(suif_object)e Fn(class.)275
8081 2410 y(Besides)39 b(the)h(annotation)f(list,)i(eac)m(h)g
8082 Fi(suif_object)36 b Fn(has)k(a)g(\014eld)e(to)i(iden)m(tify)e(the)i
8083 (kind)e(of)i(the)150 2520 y(ob)5 b(ject.)57 b(The)35
8084 b Fi(object_kind)d Fn(metho)s(d)j(retriev)m(es)h(the)f(v)-5
8085 b(alue)35 b(from)g(this)g(\014eld.)54 b(The)35 b Fi(object_kinds)150
8086 2629 y Fn(en)m(umerated)c(t)m(yp)s(e)f(de\014nes)g(the)g(p)s(ossible)e
8087 (v)-5 b(alues:)150 2787 y Fi(FILE_OBJ)36 b Fn(File)30
8088 b(set)g(en)m(try)-8 b(.)42 b(See)30 b(Section)h(2.2)g([File)f(Set)h(En)
8089 m(tries],)f(page)h(8.)150 2945 y Fi(TREE_OBJ)36 b Fn(Abstract)31
8090 b(syn)m(tax)g(tree)g(no)s(de.)40 b(See)31 b(Section)f(3.1)h([T)-8
8091 b(ree)31 b(No)s(des],)g(page)g(11.)150 3103 y Fi(INSTR_OBJ)630
8092 3212 y Fn(SUIF)f(instruction.)39 b(See)30 b(Chapter)g(4)h
8093 ([Instructions],)f(page)h(23.)150 3370 y Fi(SYMTAB_OBJ)630
8094 3479 y Fn(Sym)m(b)s(ol)e(table.)40 b(See)31 b(Chapter)f(5)h([Sym)m(b)s
8095 (ol)e(T)-8 b(ables],)30 b(page)h(37.)150 3637 y Fi(SYM_OBJ)84
8096 b Fn(Sym)m(b)s(ol)29 b(no)s(de.)40 b(See)30 b(Chapter)g(6)h([Sym)m(b)s
8097 (ols],)e(page)i(45.)150 3795 y Fi(DEF_OBJ)84 b Fn(V)-8
8098 b(ariable)30 b(de\014nition.)38 b(See)31 b(Section)f(6.4.3)i([V)-8
8099 b(ariable)30 b(De\014nitions],)g(page)h(51.)150 3953
8100 y Fi(TYPE_OBJ)36 b Fn(T)m(yp)s(e)30 b(no)s(de.)40 b(See)31
8101 b(Chapter)e(7)i([T)m(yp)s(es],)g(page)g(53.)275 4110
8102 y(The)g(rest)h(of)h(the)f(metho)s(ds)g(in)e(the)j Fi(suif_object)c
8103 Fn(class)j(are)g(related)g(to)h(handling)d(annotations.)150
8104 4220 y(First)k(of)i(all,)f(the)g Fi(are_annotations)c
8105 Fn(metho)s(d)k(c)m(hec)m(ks)h(to)g(see)g(if)e(an)h(ob)5
8106 b(ject)36 b(has)e(an)m(y)i(annotations)150 4330 y(attac)m(hed)h(to)e
8107 (it.)54 b(If)35 b(so,)h(the)f Fi(annotes)e Fn(metho)s(d)i(can)g(b)s(e)f
8108 (used)g(to)i(retriev)m(e)f(a)h(p)s(oin)m(ter)d(to)j(the)f(list)f(of)150
8109 4439 y(annotations.)55 b(Do)36 b(not)f(just)g(grab)g(the)g(list)f(of)h
8110 (annotations)g(and)f(c)m(hec)m(k)j(to)f(see)g(if)e(it)g(is)g(empt)m(y)
8111 -8 b(,)38 b(but)150 4549 y(use)29 b Fi(are_annotations)c
8112 Fn(instead.)40 b(Since)28 b(man)m(y)i(ob)5 b(jects)30
8113 b(don't)f(ha)m(v)m(e)i(an)m(y)f(annotations,)g(the)f(library)150
8114 4658 y(do)s(esn't)g(allo)s(cate)h(annotation)g(lists)d(unless)h(they)i
8115 (are)f(needed.)41 b(Calling)27 b Fi(annotes)g Fn(will)g(create)k(a)e
8116 (new)150 4768 y(list)20 b(if)h(one)h(did)e(not)h(already)h(exist,)h(so)
8117 f(to)g(a)m(v)m(oid)g(creating)g(a)g(lot)g(of)g(empt)m(y)g(lists)e(use)h
8118 Fi(are_annotations)150 4878 y Fn(\014rst.)275 5011 y(The)38
8119 b Fi(prepend_annote)c Fn(and)k Fi(append_annote)d Fn(metho)s(ds)j(are)h
8120 (a)g(con)m(v)m(enien)m(t)h(w)m(a)m(y)f(to)g(add)f(new)150
8121 5121 y(annotations)d(to)h(an)e(ob)5 b(ject.)55 b(They)35
8122 b(simply)d(create)37 b(a)e(new)f(annotation)h(using)f(the)h(sp)s
8123 (eci\014ed)e(name)150 5230 y(and)i(data)h(and)e(then)h(add)g(it)g(to)h
8124 (the)f(b)s(eginning)e(or)i(end,)h(resp)s(ectiv)m(ely)-8
8125 b(,)37 b(of)e(the)h(annotation)f(list.)54 b(If)150 5340
8126 y(the)26 b(ob)5 b(ject)26 b(is)f(only)g(supp)s(osed)e(to)j(ha)m(v)m(e)h
8127 (one)f(annotation)g(with)e(a)i(particular)e(name,)j(the)f
8128 Fi(set_annote)p eop
8129 %%Page: 71 73
8130 71 72 bop 150 -116 a Fn(Chapter)30 b(8:)41 b(Annotations)2556
8131 b(71)150 299 y(metho)s(d)32 b(w)m(orks)g(w)m(ell)g(for)g(assigning)f
8132 (new)h(v)-5 b(alues)32 b(for)g(that)h(annotation.)47
8133 b(If)32 b(the)h(ob)5 b(ject)33 b(already)f(has)150 408
8134 y(an)38 b(annotation)f(with)g(the)g(sp)s(eci\014ed)f(name,)k
8135 Fi(set_annote)35 b Fn(will)g(replace)i(the)h(existing)f(one)h(\(or)g
8136 (the)150 518 y(\014rst)30 b(one)g(that)h(it)f(\014nds\);)f(otherwise,)i
8137 (it)e(just)h(adds)g(the)g(new)g(annotation)h(at)g(the)g(end)e(of)i(the)
8138 f(list.)275 653 y(There)24 b(are)h(t)m(w)m(o)h(di\013eren)m(t)e(metho)s
8139 (ds)h(to)g(retriev)m(e)g(data)h(from)e(annotations)h(attac)m(hed)i(to)e
8140 (an)g(ob)5 b(ject.)150 762 y(The)27 b(\014rst,)g Fi(peek_annote)p
8141 Fn(,)f(simply)f(returns)h(the)h(data)i(\014eld)d(from)h(the)g(\014rst)g
8142 (annotation)h(that)g(it)f(\014nds)150 872 y(with)36 b(the)i(sp)s
8143 (eci\014ed)e(name.)62 b(If)37 b(it)g(do)s(esn't)g(\014nd)f(an)m(y)i
8144 (annotations)f(with)g(that)h(name,)h(it)e(returns)g(a)150
8145 981 y Fi(NULL)c Fn(p)s(oin)m(ter.)50 b(The)33 b Fi(get_annote)f
8146 Fn(metho)s(d)h(do)s(es)h(the)g(same)g(thing)f(except)i(that)f(it)g(is)f
8147 (destructiv)m(e.)150 1091 y(Besides)25 b(returning)e(the)i(data)h(from)
8148 f(the)g(annotation,)i(it)e(also)g(remo)m(v)m(es)h(the)g(annotation)f
8149 (from)g(the)g(list)150 1200 y(and)h(destro)m(ys)g(it.)39
8150 b(Note)28 b(that)e(with)f(these)i(metho)s(ds)f(it)f(is)h(imp)s(ossible)
8151 c(to)27 b(distinguish)c(the)j(case)h(where)150 1310 y(an)38
8152 b(annotation)g(exists)g(but)f(has)h(a)h Fi(NULL)e Fn(data)h(\014eld)f
8153 (from)h(the)g(case)h(where)f(the)g(annotation)g(do)s(es)150
8154 1420 y(not)d(exist.)53 b(If)34 b(y)m(ou)h(w)m(an)m(t)h(to)f(retriev)m
8155 (e)g(the)g(actual)g(annotation)g(ob)5 b(jects)35 b(instead)f(of)h(just)
8156 f(their)f(data)150 1529 y(\014elds,)i(the)g(annotation)g(list)f(\(see)i
8157 (Section)f(8.8)h([Annote)f(Lists],)h(page)g(71\))g(pro)m(vides)e
8158 Fi(peek_annote)150 1639 y Fn(and)c Fi(get_annote)d Fn(metho)s(ds)j(to)h
8159 (do)f(that.)275 1773 y(When)f(some)h(kinds)e(of)i(SUIF)g(ob)5
8160 b(jects)30 b(\(e.g.)42 b(sym)m(b)s(ols)29 b(and)g(t)m(yp)s(es\))h(are)g
8161 (copied,)g(the)g(annotations)150 1883 y(are)37 b(omitted.)60
8162 b(If)36 b(y)m(ou)h(w)m(an)m(t)h(to)f(cop)m(y)h(the)f(annotations)g(as)g
8163 (w)m(ell)e(as)i(the)g(base)g(ob)5 b(jects,)39 b(the)e
8164 Fi(copy_)150 1993 y(annotes)29 b Fn(metho)s(d)i(m)m(ust)g(b)s(e)f
8165 (called)h(separately)-8 b(.)43 b(This)30 b(metho)s(d)g(w)m(orks)h(for)g
8166 (an)m(y)h(t)m(w)m(o)g(SUIF)f(ob)5 b(jects;)150 2102 y(they)33
8167 b(do)g(not)g(ha)m(v)m(e)h(to)g(b)s(e)f(the)g(same)g(kind.)47
8168 b(If)32 b(the)i(target)g(ob)5 b(ject)34 b(already)e(has)h(some)h
8169 (annotations,)150 2212 y(the)29 b(new)g(ones)g(are)h(app)s(ended)e(to)h
8170 (the)h(end)e(of)i(the)f(list.)39 b(Unregistered)29 b(annotations)g(are)
8171 h(not)f(copied.)275 2346 y(The)k Fi(suif_object)d Fn(class)k(pro)m
8172 (vides)e(a)i Fi(print_annotes)c Fn(metho)s(d)j(for)g(prin)m(ting)f(the)
8173 i(annotation)150 2456 y(list)e(to)j(a)f(text)g(\014le.)50
8174 b(This)32 b(is)h(used)f(b)m(y)i(the)g Fi(print)e Fn(metho)s(ds)h(for)g
8175 (the)h(deriv)m(ed)f(classes,)i(but)e(it)g(could)150 2565
8176 y(also)24 b(b)s(e)g(used)g(directly)f(b)m(y)i(users.)38
8177 b(The)24 b(optional)f Fi(depth)h Fn(parameter)h(sp)s(eci\014es)e(the)h
8178 (inden)m(tation)g(lev)m(el.)150 2675 y(Bew)m(are)32 b(that)f(a)g
8179 (new-line)e(c)m(haracter)j(is)e(prin)m(ted)f Fh(b)s(efore)35
8180 b Fn(eac)m(h)d(annotation)f(and)f(th)m(us)g(y)m(ou)h(probably)150
8181 2785 y(w)m(an)m(t)g(to)g(prin)m(t)e(a)i(new-line)e(after)i(calling)d
8182 (this)i(metho)s(d.)275 2919 y(The)j Fi(num_output_annotes)c
8183 Fn(metho)s(d)k(c)m(hec)m(ks)j(to)e(see)h(if)e(an)h(ob)5
8184 b(ject)34 b(has)g(an)m(y)g(annotations,)i(and)150 3029
8185 y(if)e(so,)i(it)e(coun)m(ts)h(the)g(ones)g(that)g(will)d(b)s(e)i
8186 (written)g(to)h(the)g(output)f(\014le.)52 b(This)33 b(is)h(primarily)d
8187 (used)j(b)m(y)150 3138 y(the)d(SUIF)f(library)e(and)h(most)i(users)f
8188 (will)d(not)k(need)f(it.)150 3396 y Fl(8.8)68 b(Annotation)45
8189 b(Lists)275 3588 y Fn(Annotations)22 b(are)h(stored)g(on)g(lists)e
8190 (attac)m(hed)k(to)e(SUIF)g(ob)5 b(jects.)39 b(The)22
8191 b(library)e(de\014nes)i(an)h Fi(annote_)150 3698 y(list)32
8192 b Fn(class)i(for)f(this)f(purp)s(ose.)49 b(Besides)33
8193 b(the)h(standard)f(list)f(functions)g(\(see)i(Section)g(11.1)h
8194 ([Generic)150 3807 y(Lists],)25 b(page)g(79\),)h(the)f
8195 Fi(annote_list)c Fn(class)i(pro)m(vides)g(t)m(w)m(o)j(additional)c
8196 (metho)s(ds.)37 b(The)24 b Fi(peek_annote)150 3917 y
8197 Fn(metho)s(d)34 b(searc)m(hes)i(through)f(the)g(list)e(for)i(an)g
8198 (annotation)g(with)f(the)h(sp)s(eci\014ed)e(name.)55
8199 b(It)35 b(returns)f(a)150 4027 y(p)s(oin)m(ter)24 b(to)i(the)f(\014rst)
8200 g(suc)m(h)f(annotation)i(or)f Fi(NULL)f Fn(if)g(the)h(searc)m(h)h(w)m
8201 (as)f(unsuccessful.)37 b(The)25 b Fi(get_annote)150 4136
8202 y Fn(metho)s(d)30 b(do)s(es)g(the)g(same)h(thing,)f(but)f(it)h(remo)m
8203 (v)m(es)i(the)f(annotation)f(from)g(the)h(list.)p eop
8204 %%Page: 72 74
8205 72 73 bop 150 -116 a Fn(72)2385 b(The)30 b(SUIF)g(V)-8
8206 b(ersion)30 b(1)h(Library)p eop
8207 %%Page: 73 75
8208 73 74 bop 150 -116 a Fn(Chapter)30 b(9:)41 b(Replicating)29
8209 b(T)-8 b(rees)31 b(and)e(Instructions)1671 b(73)150 299
8210 y Fj(9)80 b(Replicating)56 b(T)-13 b(rees)52 b(and)i(Instructions)275
8211 531 y Fn(Man)m(y)43 b(SUIF)f(programs)g(need)g(to)h(duplicate)d(parts)i
8212 (of)h(abstract)g(syn)m(tax)g(trees)g(or)f(expression)150
8213 641 y(trees.)65 b(F)-8 b(or)39 b(example,)h(lo)s(op)d(transformations)h
8214 (suc)m(h)f(as)i(unrolling)c(and)i(p)s(eeling)g(require)g(copies)h(of)
8215 150 750 y(the)i(lo)s(op)e(b)s(o)s(dies,)i(and)f(en)m(tire)g(pro)s
8216 (cedures)f(m)m(ust)h(b)s(e)g(copied)g(to)h(implemen)m(t)e(pro)s(cedure)
8217 g(inlining.)150 860 y(Because)33 b(co)s(de)e(replication)f(can)i(b)s(e)
8218 e(quite)h(complicated)g(in)f(SUIF,)i(it)f(is)f(handled)f(in)i(the)g
8219 (library)e(b)m(y)150 969 y(the)i Fh(cloning)36 b Fn(metho)s(ds.)275
8220 1104 y(Sev)m(eral)23 b(di\013eren)m(t)h(kinds)d(of)j(SUIF)g(ob)5
8221 b(jects)24 b(can)g(b)s(e)g(cloned.)37 b(The)24 b Fi(tree_node)p
8222 Fn(,)f Fi(tree_node_list)p Fn(,)150 1213 y Fi(instruction)p
8223 Fn(,)34 b(and)h Fi(operand)e Fn(classes)j(ha)m(v)m(e)g
8224 Fi(clone)e Fn(metho)s(ds.)56 b(The)35 b(v)-5 b(arious)34
8225 b(deriv)m(ed)g Fi(tree_node)150 1323 y Fn(classes)29
8226 b(also)f(ha)m(v)m(e)i(wrapp)s(er)d(metho)s(ds)h(to)i(cast)g(the)f
8227 (result)e(of)i(the)g(base)g(class)g Fi(clone)e Fn(metho)s(d)h(to)i(the)
8228 150 1432 y(appropriate)38 b(p)s(oin)m(ter)g(t)m(yp)s(es.)65
8229 b(When)39 b(an)g(ob)5 b(ject)39 b(is)f(cloned,)i(ev)m(erything)f
8230 (within)d(it)i(is)g(recursiv)m(ely)150 1542 y(cloned.)h(In)27
8231 b(addition)f(to)j(the)e(c)m(hild)g(no)s(des)f(and)i(instructions,)e
8232 (this)g(includes)g(sym)m(b)s(ol)g(tables)i(and)f(the)150
8233 1651 y(t)m(yp)s(es)35 b(and)f(sym)m(b)s(ols)f(within)g(them.)54
8234 b(All)33 b(of)i(the)g(kno)m(wn)g(references)g(to)g(cloned)f(ob)5
8235 b(jects)36 b(\(including)150 1761 y(those)31 b(in)e(registered)h
8236 (annotations\))h(are)g(up)s(dated.)275 1895 y(The)25
8237 b(complexit)m(y)h(of)g(cloning)f(is)g(primarily)e(due)j(to)h(SUIF's)f
8238 (scop)s(e)g(rules.)38 b(The)25 b(co)s(de)i(b)s(eing)d(copied)150
8239 2005 y(ma)m(y)35 b(reference)f(sym)m(b)s(ols)f(and)h(t)m(yp)s(es)g
8240 (that)h(are)f(not)h(visible)c(in)i(the)i(scop)s(e)f(where)g(the)g(cop)m
8241 (y)h(will)d(b)s(e)150 2114 y(used.)40 b(Th)m(us)29 b(the)i(cloning)e
8242 (pro)s(cess)h(is)f(divided)f(in)m(to)i(three)h(steps:)199
8243 2248 y(1.)61 b(The)40 b(co)s(de)i(to)f(b)s(e)g(copied)f(is)g(scanned)g
8244 (for)h(references)g(to)h(sym)m(b)s(ols)e(and)g(t)m(yp)s(es)h(that)g
8245 (are)h(not)330 2358 y(visible)28 b(in)h(the)h(sp)s(eci\014ed)f
8246 (destination)g(scop)s(e.)41 b(These)30 b(are)h(referred)f(to)h(as)f
8247 Fh(exp)s(osed)g(references)p Fn(.)199 2492 y(2.)61 b(The)26
8248 b(exp)s(osed)f(references)i(are)g(resolv)m(ed)f(in)f(the)h(sym)m(b)s
8249 (ol)f(table)h(for)g(the)g(destination)f(scop)s(e.)40
8250 b(New)330 2602 y(v)-5 b(ariables)30 b(are)i(created)g(to)g(replace)f
8251 (the)h(exp)s(osed)f(v)-5 b(ariables.)42 b(T)m(yp)s(es)31
8252 b(are)h(usually)d(mo)m(v)m(ed)j(up)e(in)330 2711 y(the)h(sym)m(b)s(ol)f
8253 (table)h(hierarc)m(h)m(y)g(so)g(that)h(they)f(are)g(visible)e(in)h(b)s
8254 (oth)g(the)h(source)h(and)e(destination)330 2821 y(scop)s(es.)199
8255 2955 y(3.)61 b(The)41 b(co)s(de)h(is)e(actually)h(copied.)73
8256 b(Sym)m(b)s(ol)40 b(tables)h(nested)h(within)d(the)i(co)s(de)h(are)g
8257 (copied)f(and)330 3065 y(references)f(to)g(them)f(and)g(their)g(con)m
8258 (ten)m(ts)i(are)f(up)s(dated)e(to)i(use)g(the)f(copies.)68
8259 b(Similarly)-8 b(,)39 b(the)330 3174 y(exp)s(osed)28
8260 b(references)h(are)g(replaced)f(with)g(references)h(to)g(an)m(y)g(new)f
8261 (sym)m(b)s(ols)g(or)g(t)m(yp)s(es)h(that)g(w)m(ere)330
8262 3284 y(created)i(in)e(the)i(previous)e(step.)275 3442
8263 y(Eac)m(h)36 b(of)h(these)f(steps)g(is)f(describ)s(ed)f(in)h(more)h
8264 (detail)f(b)s(elo)m(w.)57 b(The)36 b(metho)s(ds)f(that)i(p)s(erform)e
8265 (the)150 3552 y(individual)25 b(steps)30 b(are)g(a)m(v)-5
8266 b(ailable)29 b(to)i(users)e(who)g(need)h(more)g(con)m(trol)g(o)m(v)m
8267 (er)h(the)f(cloning)f(pro)s(cess.)40 b(F)-8 b(or)150
8268 3662 y(example,)39 b(y)m(ou)f(ma)m(y)h(w)m(an)m(t)f(to)g(insert)f(co)s
8269 (de)h(to)g(initialize)d(new)i(v)-5 b(ariables)36 b(that)j(are)f
8270 (created)g(in)f(the)150 3771 y(destination)k(scop)s(e)h(due)g(to)h(exp)
8271 s(osed)e(references.)77 b(The)41 b(cloning)g(metho)s(ds)h(can)g(also)g
8272 (b)s(e)g(used)f(to)150 3881 y(replace)30 b(references)h(to)g
8273 (particular)e(sym)m(b)s(ols)g(or)h(t)m(yp)s(es)h(without)e(actually)h
8274 (cop)m(ying)g(an)m(ything.)275 4015 y(The)39 b Fi(replacements)d
8275 Fn(structure)j(is)g(used)g(throughout)g(the)h(cloning)e(pro)s(cess)h
8276 (to)i(k)m(eep)f(trac)m(k)h(of)150 4124 y(exp)s(osed)e(references)h(and)
8277 f(ob)5 b(jects)40 b(that)g(ha)m(v)m(e)h(b)s(een)d(replaced.)68
8278 b(This)38 b(structure)h(includes)e(lists)h(of)150 4234
8279 y(sym)m(b)s(ols,)22 b(t)m(yp)s(es,)h(v)-5 b(ariable)20
8280 b(de\014nitions,)h(sym)m(b)s(ol)e(tables,)k(and)e(instructions.)35
8281 b(F)-8 b(or)22 b(eac)m(h)g(kind)e(of)h(ob)5 b(ject,)150
8282 4344 y(there)29 b(are)g(t)m(w)m(o)h(lists.)39 b(Except)29
8283 b(in)e(in)m(termediate)i(steps,)g(these)g(lists)e(should)g(b)s(e)h(the)
8284 h(same)g(length.)39 b(An)150 4453 y(en)m(try)34 b(on)g(the)g(\014rst)f
8285 (list)f(refers)i(to)g(an)g(ob)5 b(ject)35 b(in)d(the)j(original)d(co)s
8286 (de)i(and)f(the)h(corresp)s(onding)e(en)m(try)150 4563
8287 y(on)e(the)h(second)f(list)f(is)h(a)g(new)g(ob)5 b(ject)32
8288 b(that)f(has)f(b)s(een)f(created)j(to)f(replace)f(the)h(original.)150
8289 4819 y Fl(9.1)68 b(Finding)45 b(Exp)t(osed)g(References)275
8290 5011 y Fn(The)30 b(\014rst)h(step)h(in)e(the)h(cloning)f(pro)s(cess)h
8291 (is)g(to)h(scan)f(through)g(the)h(co)s(de)f(b)s(eing)f(copied)h(to)h
8292 (searc)m(h)150 5121 y(for)25 b(references)g(to)h(ob)5
8293 b(jects)26 b(that)g(are)g(not)f(visible)e(in)g(the)j(destination)e
8294 (scop)s(e.)39 b(The)25 b Fi(tree_node_list)p Fn(,)150
8295 5230 y Fi(tree_node)p Fn(,)37 b Fi(operand)p Fn(,)g Fi(instruction)p
8296 Fn(,)g(and)g Fi(block_symtab)d Fn(classes)j(ha)m(v)m(e)i
8297 Fi(find_exposed_refs)150 5340 y Fn(metho)s(ds)31 b(to)h(p)s(erform)e
8298 (this)h(op)s(eration.)44 b(The)31 b(results)f(are)i(returned)f(in)f(a)i
8299 Fi(replacements)c Fn(structure)p eop
8300 %%Page: 74 76
8301 74 75 bop 150 -116 a Fn(74)2385 b(The)30 b(SUIF)g(V)-8
8302 b(ersion)30 b(1)h(Library)150 299 y(b)m(y)j(putting)e(the)i(exp)s(osed)
8303 f(references)i(in)d(the)i(lists)e(of)i(original)e(ob)5
8304 b(jects.)52 b(The)33 b(lists)f(of)i(new)f(ob)5 b(jects)150
8305 408 y(are)31 b(left)f(empt)m(y)-8 b(.)275 540 y(Besides)35
8306 b(c)m(hec)m(king)h(for)g(exp)s(osed)f(references)h(in)e(the)i(ob)5
8307 b(jects)36 b(themselv)m(es,)i(the)e Fi(find_exposed_)150
8308 650 y(refs)f Fn(metho)s(ds)h(also)g(c)m(hec)m(k)h(for)f(references)h
8309 (con)m(tained)f(in)f(annotations)i(attac)m(hed)h(to)f(the)f(ob)5
8310 b(jects.)150 759 y(Both)28 b(\015at)f(and)g(structured)f(annotations)i
8311 (are)f(c)m(hec)m(k)m(ed,)j(but)d(unregistered)f(annotations)h(are)h
8312 (ignored)150 869 y(since)g(they)g(are)h(not)f(copied.)40
8313 b(The)27 b Fi(find_annote_refs)d Fn(metho)s(d)k(is)f(used)h(to)h(c)m
8314 (hec)m(k)g(a)g Fi(suif_object)150 978 y Fn(for)h(exp)s(osed)g
8315 (references.)275 1110 y(Lab)s(el)20 b(sym)m(b)s(ols)g(are)i(a)f(sp)s
8316 (ecial)f(case.)39 b(Ev)m(en)22 b(if)e(a)i(lab)s(el)d(sym)m(b)s(ol)i(is)
8317 f(visible)f(in)h(the)h(destination)g(scop)s(e,)150 1220
8318 y(it)31 b(m)m(ust)g(b)s(e)g(replaced)g(if)f(the)i(lab)s(el)e
8319 (instruction)f(is)h(to)i(b)s(e)f(cloned.)43 b(Otherwise,)31
8320 b(there)h(w)m(ould)e(b)s(e)h(t)m(w)m(o)150 1329 y(lab)s(el)j
8321 (instructions)f(sharing)h(the)h(same)h(lab)s(el)d(sym)m(b)s(ol!)55
8322 b(Th)m(us,)35 b(the)h Fi(find_exposed_refs)30 b Fn(metho)s(d)150
8323 1439 y(adds)j(the)i(sym)m(b)s(ol)d(in)h(a)i(lab)s(el)d(instruction)g
8324 (to)j(the)f(list)f(of)h(exp)s(osed)g(references.)52 b(The)34
8325 b(exception)g(to)150 1548 y(this)f(is)h(that)g(lab)s(el)f(sym)m(b)s
8326 (ols)g(that)i(are)g(de\014ned)e(within)f(cloned)h(sym)m(b)s(ol)g
8327 (tables)h(will)e(automatically)150 1658 y(b)s(e)e(replaced)g(and)f(are)
8328 i(not)g(included)c(in)i(the)i(exp)s(osed)f(references.)150
8329 1906 y Fl(9.2)68 b(Resolving)47 b(Exp)t(osed)e(References)275
8330 2096 y Fn(After)36 b(the)g(exp)s(osed)f(references)i(ha)m(v)m(e)g(b)s
8331 (een)e(found,)h(the)g(destination)f(scop)s(e)h(m)m(ust)g(b)s(e)f(up)s
8332 (dated)150 2206 y(to)41 b(include)e(de\014nitions)f(for)j(the)f(ob)5
8333 b(jects)42 b(in)d(the)i(exp)s(osed)f(references.)72 b(The)41
8334 b Fi(base_symtab)c Fn(class)150 2315 y(pro)m(vides)f(the)i
8335 Fi(resolve_exposed_refs)31 b Fn(metho)s(d)37 b(to)h(accomplish)e(this.)
8336 60 b(This)35 b(metho)s(d)i(tak)m(es)i(the)150 2425 y(lists)22
8337 b(of)h(original)f(ob)5 b(jects)24 b(in)e(the)h Fi(replacements)d
8338 Fn(structure)j(pro)s(duced)f(b)m(y)h(the)h Fi(find_exposed_refs)150
8339 2534 y Fn(metho)s(d)37 b(\(see)i(Section)e(9.1)i([Finding)d(Exp)s(osed)
8340 h(References],)j(page)f(73\))g(and)e(adds)g(corresp)s(onding)150
8341 2644 y(en)m(tries)28 b(to)i(the)f(lists)e(of)i(new)f(ob)5
8342 b(jects.)41 b(New)29 b(sym)m(b)s(ols)e(are)i(created)h(and)e(added)g
8343 (to)i(the)f(sym)m(b)s(ol)e(table)150 2754 y(to)k(replace)f(the)h
8344 (originals.)39 b(V)-8 b(ariable)30 b(de\014nitions)d(are)k(also)g
8345 (created)g(as)g(needed.)275 2885 y(Because)i(some)g(t)m(yp)s(es)g(use)f
8346 (name)g(equiv)-5 b(alence,)33 b(they)f(cannot)h(b)s(e)f(copied)g
8347 (without)f(creating)i(dif-)150 2995 y(feren)m(t)i(t)m(yp)s(es.)54
8348 b(Th)m(us,)35 b(whenev)m(er)g(p)s(ossible,)e(t)m(yp)s(es)i(are)g(mo)m
8349 (v)m(ed)h(up)e(in)f(the)i(sym)m(b)s(ol)f(table)g(hierarc)m(h)m(y)150
8350 3104 y(so)e(that)f(they)h(are)f(visible)e(in)h(b)s(oth)h(the)g(source)h
8351 (and)e(destination)g(scop)s(es.)44 b(If)31 b(a)g(t)m(yp)s(e)h(is)e
8352 (successfully)150 3214 y(mo)m(v)m(ed,)j(the)f(old)e(and)h(new)g(en)m
8353 (tries)g(for)h(the)f Fi(replacements)d Fn(lists)i(are)i(the)g(same.)44
8354 b(Some)32 b(t)m(yp)s(es)f(con-)150 3324 y(tain)k(references)i(to)f(v)-5
8355 b(ariables)35 b(\(e.g.)59 b(as)36 b(arra)m(y)g(b)s(ounds\),)g(and)f(if)
8356 g(those)h(v)-5 b(ariables)35 b(are)h(not)g(already)150
8357 3433 y(visible)24 b(in)h(the)h(destination)f(scop)s(e,)i(the)g(t)m(yp)s
8358 (es)f(cannot)h(b)s(e)f(mo)m(v)m(ed.)40 b(When)26 b(that)h(happ)s(ens,)e
8359 Fi(resolve_)150 3543 y(exposed_refs)30 b Fn(resorts)j(to)h(making)f(a)g
8360 (new)g(t)m(yp)s(e)g(where)g(the)g(v)-5 b(ariable)32 b(references)i(are)
8361 f(up)s(dated)f(to)150 3652 y(use)e(the)h(cloned)e(v)-5
8362 b(ariables.)150 3901 y Fl(9.3)68 b(Cop)l(ying)46 b(the)f(Ob)7
8363 b(jects)275 4091 y Fn(Once)21 b(the)g(exp)s(osed)g(references)g(ha)m(v)
8364 m(e)h(b)s(een)f(resolv)m(ed,)i(the)e(co)s(de)g(can)h(b)s(e)e(copied.)37
8365 b(The)21 b Fi(tree_node_)150 4200 y(list)p Fn(,)39 b
8366 Fi(tree_node)p Fn(,)e Fi(operand)p Fn(,)h Fi(instruction)p
8367 Fn(,)f Fi(block_symtab)p Fn(,)g(and)g Fi(proc_symtab)e
8368 Fn(classes)j(ha)m(v)m(e)150 4310 y Fi(clone_helper)32
8369 b Fn(metho)s(ds)j(to)h(p)s(erform)e(the)h(actual)h(cop)m(ying.)55
8370 b(These)36 b(metho)s(ds)e(c)m(hange)j(references)150
8371 4419 y(to)f(ob)5 b(jects)36 b(in)e(the)h(original)f(ob)5
8372 b(jects)36 b(lists)e(of)h(the)g Fi(replacements)d Fn(structure)j(to)h
8373 (references)g(to)g(the)150 4529 y(newly)29 b(created)j(replacemen)m
8374 (ts.)275 4660 y(Annotations)26 b(on)g(the)h(ob)5 b(jects)27
8375 b(are)f(also)h(cloned.)39 b(The)25 b Fi(clone_annotes)e
8376 Fn(metho)s(d)j(is)f(used)h(to)h(cop)m(y)150 4770 y(the)40
8377 b(annotations)f(from)h(one)f Fi(suif_object)e Fn(to)j(another.)69
8378 b(Unregistered)39 b(annotations)g(cannot)i(b)s(e)150
8379 4880 y(copied)32 b(b)s(ecause)h(the)g(structure)f(of)g(their)g(data)h
8380 (\014elds)f(is)f(unkno)m(wn.)46 b(The)32 b Fi(clone_helper)e
8381 Fn(metho)s(ds)150 4989 y(call)41 b Fi(clone_annotes)c
8382 Fn(for)42 b(eac)m(h)g(ob)5 b(ject)42 b(that)g(is)f(cloned;)46
8383 b(y)m(ou)c(generally)f(do)g(not)h(need)f(to)h(call)e(it)150
8384 5099 y(directly)-8 b(.)275 5230 y(The)34 b Fi(clone_helper)e
8385 Fn(and)j Fi(clone_annotes)c Fn(metho)s(ds)k(can)g(also)g(b)s(e)g(used)f
8386 (to)i(p)s(erform)e(another)150 5340 y(related)27 b(function.)39
8387 b(It)27 b(is)f(o)s(ccasionally)h(necessary)g(to)h(replace)g(references)
8388 f(to)h(one)g(set)g(of)f(ob)5 b(jects)28 b(with)p eop
8389 %%Page: 75 77
8390 75 76 bop 150 -116 a Fn(Chapter)30 b(9:)41 b(Replicating)29
8391 b(T)-8 b(rees)31 b(and)e(Instructions)1671 b(75)150 299
8392 y(references)34 b(to)g(another)g(set)g(of)f(ob)5 b(jects.)51
8393 b(Since)32 b(the)i(cloning)e(metho)s(ds)h(do)g(that)i(an)m(yw)m(a)m(y)
8394 -8 b(,)36 b(it)d(is)f(easy)150 408 y(to)j(ha)m(v)m(e)h(them)e(up)s
8395 (date)f(the)i(references)f(without)g(actually)f(making)h(copies.)52
8396 b(Setting)34 b(the)h Fi(no_copy)150 518 y Fn(parameter)f(causes)g(them)
8397 g(to)h(up)s(date)d(the)i(references)g(as)g(sp)s(eci\014ed)e(in)h(a)h
8398 Fi(replacements)c Fn(structure)150 628 y(without)f(cop)m(ying)i(the)f
8399 (ob)5 b(jects.)p eop
8400 %%Page: 76 78
8401 76 77 bop 150 -116 a Fn(76)2385 b(The)30 b(SUIF)g(V)-8
8402 b(ersion)30 b(1)h(Library)p eop
8403 %%Page: 77 79
8404 77 78 bop 150 -116 a Fn(Chapter)30 b(10:)41 b(F)-8 b(eatures)32
8405 b(for)e(Compiling)e(F)-8 b(ortran)1755 b(77)150 299 y
8406 Fj(10)80 b(F)-13 b(eatures)53 b(for)g(Compiling)h(F)-13
8407 b(ortran)275 545 y Fn(SUIF)44 b(is)g(roughly)f(based)h(on)h(C)f(seman)m
8408 (tics)h(and)f(do)s(es)g(not)h(directly)e(supp)s(ort)g(some)i(F)-8
8409 b(ortran)150 654 y(features.)51 b(In)33 b(particular,)h(call-b)m
8410 (y-reference)g(parameters)g(o)s(ccur)f(frequen)m(tly)g(in)g(F)-8
8411 b(ortran)34 b(programs)150 764 y(and)22 b(m)m(ust)g(b)s(e)g(implemen)m
8412 (ted)f(in)g(terms)i(of)f(other)h(SUIF)g(features.)38
8413 b(This)21 b(in)m(tro)s(duces)g(extra)i(complexit)m(y)150
8414 873 y(that)32 b(mak)m(es)g(it)f(harder)g(to)h(analyze)g(and)f(optimize)
8415 f(the)i(pro)s(cedures.)43 b(F)-8 b(ortunately)32 b(this)e(complexit)m
8416 (y)150 983 y(can)24 b(b)s(e)g(hidden)e(somewhat)i(b)m(y)g(con)m(v)m
8417 (erting)h(the)g(pro)s(cedures)d(to)j(the)g(SUIF)f(F)-8
8418 b(ortran)24 b(form.)39 b(The)23 b(SUIF)150 1093 y(library)h(pro)m
8419 (vides)i(functions)g(to)h(translate)g(a)g(pro)s(cedure)f(to)i(this)d(F)
8420 -8 b(ortran)28 b(form)e(after)h(it)g(is)f(read)g(from)150
8421 1202 y(a)32 b(\014le)f(and)g(to)i(translate)e(it)h(bac)m(k)g(to)h(the)f
8422 (original)d(SUIF)j(form)f(b)s(efore)h(it)f(is)g(written)f(out.)45
8423 b(Common)150 1312 y(blo)s(c)m(ks)31 b(and)h(equiv)-5
8424 b(alences)31 b(are)h(generally)f(handled)f(using)h(sub-v)-5
8425 b(ariables,)30 b(so)i(the)h(library's)c(F)-8 b(ortran)150
8426 1421 y(form)30 b(do)s(es)g(not)g(need)g(to)h(do)f(an)m(ything)f(sp)s
8427 (ecial)g(to)i(deal)f(with)f(them.)40 b(Other)30 b(more)g(obscure)g(F)-8
8428 b(ortran)150 1531 y(features)33 b(are)f(also)h(not)f(handled)e(in)h
8429 (the)i(F)-8 b(ortran)33 b(form)f(b)s(ecause)g(they)g(are)h(less)f
8430 (common)g(and)g(hard)150 1641 y(to)f(deal)f(with)f(ho)m(w)m(ev)m(er)j
8431 (they)e(are)h(represen)m(ted.)150 1908 y Fl(10.1)68 b
8432 (Call-By-Reference)47 b(P)l(arameters)275 2104 y Fn(Pro)s(cedure)34
8433 b(parameters)h(in)f(F)-8 b(ortran)36 b(are)g(passed)f(b)m(y)g
8434 (reference.)55 b(SUIF)35 b(uses)g(call-b)m(y-v)-5 b(alue)35
8435 b(pa-)150 2214 y(rameters)42 b(and)g(implemen)m(ts)e(call-b)m
8436 (y-reference)i(parameters)h(b)m(y)e(passing)g(p)s(oin)m(ters)g(to)h
8437 (the)h(actual)150 2323 y(argumen)m(ts.)83 b(When)44 b(the)h(formal)f
8438 (parameters)h(are)f(used,)k(the)c(p)s(oin)m(ters)g(m)m(ust)g(b)s(e)g
8439 (dereferenced.)150 2433 y(Ho)m(w)m(ev)m(er,)30 b(one)d(of)g(the)h
8440 (primary)d(adv)-5 b(an)m(tages)29 b(of)e(compiling)d(F)-8
8441 b(ortran)28 b(programs)f(is)f(that)h(there)h(are)f(no)150
8442 2543 y(p)s(oin)m(ters)j(in)h(the)g(source)h(co)s(de.)44
8443 b(If)32 b(not)f(for)h(the)f(call-b)m(y-reference)h(parameter)g(p)s(oin)
8444 m(ters,)f(most)h(com-)150 2652 y(piler)19 b(passes)j(that)g(only)e
8445 (deal)i(with)e(F)-8 b(ortran)22 b(can)g(b)s(e)f(simpli\014ed)c(b)m(y)22
8446 b(not)f(ha)m(ving)g(to)i(deal)e(with)f(p)s(oin)m(ters.)150
8447 2762 y(Th)m(us)34 b(the)i(SUIF)e(F)-8 b(ortran)36 b(form)f
8448 (automatically)g(con)m(v)m(erts)i(the)e(co)s(de)h(to)f(mak)m(e)i(it)d
8449 (app)s(ear)h(that)h(the)150 2871 y(parameters)30 b(are)f(passed)g(b)m
8450 (y)g(reference.)41 b(The)29 b(parameters)h(are)f(c)m(hanged)h(to)g
8451 (call-b)m(y-reference)g(t)m(yp)s(es)150 2981 y(instead)g(of)g(p)s(oin)m
8452 (ters)f(and)h(the)h(p)s(oin)m(ter)e(dereferences)i(are)f(temp)s
8453 (orarily)f(remo)m(v)m(ed.)275 3119 y(The)d Fi(make_ref_params)d
8454 Fn(function)j(is)h(used)f(to)i(con)m(v)m(ert)h(call-b)m(y-reference)f
8455 (parameters)f(in)f(a)i(pro-)150 3229 y(cedure)40 b(to)h(the)f(F)-8
8456 b(ortran)40 b(form.)70 b(It)40 b(m)m(ust)g(b)s(e)f(called)g(b)s(efore)h
8457 (con)m(v)m(erting)h(the)f(pro)s(cedure)f(b)s(o)s(dy)f(to)150
8458 3339 y(expression)c(trees.)54 b(This)33 b(is)h(done)g(automatically)h
8459 (b)m(y)f(the)h Fi(read_proc)e Fn(metho)s(d)h(for)g(a)h
8460 Fi(proc_sym)e Fn(if)150 3448 y(the)j Fi(use_fortran_form)31
8461 b Fn(\015ag)36 b(is)e(set.)57 b(Before)36 b(writing)e(a)i(pro)s(cedure)
8462 e(to)i(an)f(output)h(\014le,)g(the)f(call-)150 3558 y(b)m(y-reference)k
8463 (parameters)f(m)m(ust)g(b)s(e)g(con)m(v)m(erted)h(bac)m(k)g(to)g(p)s
8464 (oin)m(ters)e(using)g(the)h Fi(undo_ref_params)150 3667
8465 y Fn(function.)49 b(Since)33 b(it)g(is)g(illegal)f(to)i(write)f(out)h
8466 (a)g(pro)s(cedure)e(in)h(the)g(F)-8 b(ortran)35 b(form,)f(the)g
8467 Fi(write_proc)150 3777 y Fn(metho)s(d)25 b(for)h(the)g
8468 Fi(proc_sym)d Fn(alw)m(a)m(ys)k(calls)e Fi(undo_ref_params)p
8469 Fn(;)e(y)m(ou)j(do)g(not)g(need)g(to)g(call)f(it)h(directly)-8
8470 b(.)150 3887 y(Both)31 b Fi(make_ref_params)26 b Fn(and)k
8471 Fi(undo_ref_params)c Fn(are)31 b(de\014ned)e(in)g(the)i(\014le)e(`)p
8472 Fi(callbyref.cc)p Fn('.)275 4025 y(The)47 b(F)-8 b(ortran)49
8473 b(fron)m(t-end)e(m)m(ust)h(iden)m(tify)f(call-b)m(y-reference)h(formal)
8474 f(parameters)h(b)m(y)g(putting)150 4134 y Fi(call_by_ref)24
8475 b Fn(annotations)j(\(see)h(Section)f(8.5.2)i([Call-By-Ref)e(Annotes],)h
8476 (page)g(66\))h(on)e(the)g(p)s(oin)m(ter)150 4244 y(t)m(yp)s(es)37
8477 b(used)e(b)m(y)i(those)g(parameters.)59 b(Before)37 b(actually)f(c)m
8478 (hanging)h(the)f(t)m(yp)s(e)h(of)g(a)g(call-b)m(y-reference)150
8479 4354 y(parameter)26 b(and)g(remo)m(ving)g(its)f(dereferences,)i
8480 Fi(make_ref_params)22 b Fn(c)m(hec)m(ks)27 b(that)g(the)f(p)s(oin)m
8481 (ter)f(param-)150 4463 y(eter)32 b(is)f(neither)f(addressed)g(nor)h
8482 (assigned)g(within)e(the)i(pro)s(cedure.)43 b(If)31 b(this)f(c)m(hec)m
8483 (k)j(fails,)d(the)i(p)s(oin)m(ter)150 4573 y(is)i(not)i(a)g(v)-5
8484 b(alid)34 b(call-b)m(y-reference)h(parameter,)j(so)e
8485 Fi(make_ref_params)31 b Fn(prin)m(ts)j(a)i(w)m(arning)e(message)150
8486 4682 y(and)j(do)s(es)g(not)g(con)m(v)m(ert)i(that)f(parameter.)62
8487 b(Otherwise,)38 b(it)f(go)s(es)g(ahead)h(and)f(c)m(hanges)h(the)f(t)m
8488 (yp)s(e)h(of)150 4792 y(the)31 b(parameter)h(from)f(a)h(p)s(oin)m(ter)e
8489 (to)i(a)f(call-b)m(y-reference)h(t)m(yp)s(e)f(\(see)i(Section)e(7.8)h
8490 ([Mo)s(di\014er)e(T)m(yp)s(es],)150 4902 y(page)37 b(59\).)61
8491 b(An)m(y)37 b(dereferences)f(of)h(that)g(p)s(oin)m(ter)f(within)e(the)j
8492 (pro)s(cedure)e(are)i(remo)m(v)m(ed,)j(and)c(other)150
8493 5011 y(references)31 b(to)h(the)f(p)s(oin)m(ter)f(are)h(c)m(hanged)g
8494 (to)h Fi(ldc)e Fn(\(load)h(constan)m(t\))h(instructions)d(that)i(tak)m
8495 (e)i(the)e(ad-)150 5121 y(dress)36 b(of)h(the)f(parameter.)60
8496 b(The)36 b(end)g(result)g(of)h(all)e(this)h(is)f(that)j(it)e(app)s
8497 (ears)g(that)h(the)g(parameters)150 5230 y(are)31 b(passed)f(b)m(y)g
8498 (reference.)42 b(Note)32 b(that)f(the)g(call)e(sites)i(are)g(not)f(c)m
8499 (hanged;)i(the)e(actual)h(argumen)m(ts)g(for)150 5340
8500 y(call-b)m(y-reference)g(parameters)f(are)h(still)d(passed)i(as)h(p)s
8501 (oin)m(ters.)p eop
8502 %%Page: 78 80
8503 78 79 bop 150 -116 a Fn(78)2385 b(The)30 b(SUIF)g(V)-8
8504 b(ersion)30 b(1)h(Library)275 299 y(The)i Fi(undo_ref_params)d
8505 Fn(function)j(do)s(es)h(as)h(its)e(name)i(suggests)g(and)e(undo)s(es)g
8506 (the)i(transforma-)150 408 y(tions)h(applied)e(b)m(y)j
8507 Fi(make_ref_params)p Fn(.)55 b(The)36 b(only)g(p)s(oten)m(tial)g
8508 (complication)g(is)g(that)h(while)d(in)i(the)150 518
8509 y(F)-8 b(ortran)39 b(form)e(the)i(user)e(ma)m(y)i(ha)m(v)m(e)g(used)e
8510 (the)h(call-b)m(y-reference)h(parameters)f(in)f(w)m(a)m(ys)i(that)f
8511 (can-)150 628 y(not)29 b(b)s(e)g(expressed)g(outside)f(of)i(the)f(F)-8
8512 b(ortran)30 b(form.)40 b(Sp)s(eci\014cally)-8 b(,)28
8513 b(the)h(call-b)m(y-reference)h(parameters)150 737 y(cannot)40
8514 b(b)s(e)e(used)g(as)h(index)f(v)-5 b(ariables)38 b(of)h
8515 Fi(for)f Fn(lo)s(ops)g(\(see)i(Section)e(3.1.6)j([F)-8
8516 b(or)40 b(No)s(des],)i(page)d(16\),)150 847 y(and)27
8517 b(they)h(cannot)h(b)s(e)e(used)g(as)h(b)s(ounds)d(in)i(arra)m(y)h(t)m
8518 (yp)s(es)g(\(see)h(Section)f(7.4)g([Arra)m(y)h(T)m(yp)s(es],)f(page)g
8519 (56\).)150 956 y(Both)37 b(of)g(those)g(uses)f(require)f(direct)h
8520 (references)h(to)g(v)-5 b(ariable)35 b(sym)m(b)s(ols,)i(and)f(there)h
8521 (is)e(no)i(place)f(to)150 1066 y(insert)29 b(the)i(p)s(oin)m(ter)e
8522 (dereferences)i(required)d(outside)i(of)h(F)-8 b(ortran)31
8523 b(form.)p eop
8524 %%Page: 79 81
8525 79 80 bop 150 -116 a Fn(Chapter)30 b(11:)41 b(Generic)31
8526 b(Data)h(Structures)2027 b(79)150 299 y Fj(11)80 b(Generic)53
8527 b(Data)h(Structures)275 528 y Fn(The)27 b(SUIF)g(library)e(includes)g
8528 (a)j(n)m(um)m(b)s(er)e(of)i(generic)f(data)i(structure)e(classes.)39
8529 b(Some)28 b(of)g(these)g(are)150 638 y(used)k(extensiv)m(ely)g(b)m(y)g
8530 (the)h(library)d(itself,)i(while)f(others)h(are)h(only)f(pro)m(vided)f
8531 (for)h(y)m(our)h(con)m(v)m(enience.)150 747 y(Since)e(most)i(of)f
8532 (these)h(data)g(structures)f(are)g(quite)g(easy)h(to)g(understand,)e
8533 (this)g(section)i(only)e(giv)m(es)i(a)150 857 y(brief)27
8534 b(description)f(of)j(eac)m(h)g(one)g(and)e(p)s(oin)m(ts)g(out)i(the)f
8535 (un)m(usual)f(and)g(p)s(oten)m(tially)g(confusing)g(features.)150
8536 1111 y Fl(11.1)68 b(Generic)45 b(Lists)275 1303 y Fn(While)31
8537 b(link)m(ed)f(lists)h(are)i(not)f(v)m(ery)h(e\016cien)m(t)g(data)g
8538 (structures,)f(they)h(are)f(\015exible)f(and)h(w)m(ork)g(w)m(ell)150
8539 1413 y(for)42 b(a)h(researc)m(h)g(compiler)e(lik)m(e)h(SUIF.)g(V)-8
8540 b(arious)42 b(kinds)f(of)h(lists)f(are)i(used)f(throughout)g(the)g
8541 (SUIF)150 1522 y(library)26 b(and)j(most)g(SUIF)g(programs.)39
8542 b(Almost)29 b(all)f(of)h(these)g(lists)f(are)h(deriv)m(ed)f(from)g(the)
8543 h Fi(glist)f Fn(base)150 1632 y(class.)59 b(The)37 b(\014les)e(`)p
8544 Fi(glist.h)p Fn(')g(and)h(`)p Fi(glist.cc)p Fn(')f(con)m(tain)i(the)g
8545 (declaration)f(and)g(implemen)m(tation)g(of)150 1741
8546 y(this)29 b(class.)275 1875 y(The)c(individual)c(elemen)m(ts)26
8547 b(of)g(these)g(lists)f(are)h(deriv)m(ed)f(from)g(the)h
8548 Fi(glist_e)e Fn(class.)39 b(The)25 b(base)h(class)150
8549 1985 y(only)36 b(con)m(tains)i(a)f(p)s(oin)m(ter)f(to)i(the)g(next)f
8550 (elemen)m(t.)62 b(T)-8 b(o)37 b(mak)m(e)i(a)e(useful)f(list,)h(a)h
8551 (deriv)m(ed)e(class)h(m)m(ust)150 2094 y(add)f(data)i(\014elds)d(to)i
8552 (the)g(list)f(elemen)m(ts.)60 b(F)-8 b(or)38 b(doubly-link)m(ed)33
8553 b(lists,)k(the)g(list)f(elemen)m(ts)h(are)g(further)150
8554 2204 y(extended)30 b(to)h(include)e(bac)m(kw)m(ards)h(p)s(oin)m(ters)g
8555 (\(see)h(Section)f(11.4)i([Doubly-Link)m(ed)d(Lists],)h(page)h(80\).)
8556 275 2337 y(The)e Fi(glist)g Fn(class)g(includes)f(p)s(oin)m(ters)h(to)h
8557 (the)h(head)e(and)h(tail)f(elemen)m(ts.)41 b(This)28
8558 b(mak)m(es)j(it)e(p)s(ossible)150 2447 y(to)35 b(e\016cien)m(tly)f(add)
8559 f(elemen)m(ts)i(at)f(either)g(end)f(of)i(the)f(list.)51
8560 b(A)34 b(v)-5 b(ariet)m(y)34 b(of)h(metho)s(ds)e(are)h(pro)m(vided)f
8561 (to)150 2556 y(insert)f(and)g(remo)m(v)m(e)j(individual)28
8562 b(elemen)m(ts,)34 b(as)g(w)m(ell)e(as)h(to)h(com)m(bine)e(en)m(tire)h
8563 (lists)f(in)f(di\013eren)m(t)i(w)m(a)m(ys.)150 2666 y(All)c(of)i(these)
8564 f(op)s(erations)g(are)h(straigh)m(tforw)m(ard)f(and)g(are)g(clearly)g
8565 (do)s(cumen)m(ted)g(in)f(the)i(co)s(de.)275 2800 y(The)42
8566 b(SUIF)g(library)f(also)i(pro)m(vides)e(iterators)i(for)g(lists.)76
8567 b(This)41 b(allo)m(ws)i(y)m(ou)g(to)g(write)f(co)s(de)h(at)150
8568 2909 y(a)f(higher)e(lev)m(el)i(of)g(abstraction.)75 b(Instead)41
8569 b(of)h(rewriting)e(the)i(same)g(co)s(de)g(ev)m(erywhere)g(that)g(y)m
8570 (our)150 3019 y(program)36 b(tra)m(v)m(erses)i(lists,)f(y)m(ou)f(can)h
8571 (just)f(use)g(the)g(built-in)e(iterators.)59 b(The)35
8572 b(base)i(iterator)g(class)f(is)150 3128 y Fi(glist_iter)p
8573 Fn(.)53 b(An)35 b(iterator)g(is)g(initialized)d(with)i(a)i(p)s(oin)m
8574 (ter)e(to)i(a)g(particular)d(list.)55 b(It)35 b(then)g(returns)150
8575 3238 y(successiv)m(e)27 b(elemen)m(ts)h(from)f(the)g(list)f(\(via)h
8576 (the)g Fi(step)f Fn(metho)s(d\))h(un)m(til)e(the)j Fi(is_empty)d
8577 Fn(metho)s(d)h(returns)150 3348 y Fi(TRUE)p Fn(.)64 b(Other)38
8578 b(metho)s(ds)g(are)h(a)m(v)-5 b(ailable)38 b(to)h(access)h(the)f
8579 (curren)m(t)f(and)g(next)h(list)e(elemen)m(ts)i(without)150
8580 3457 y(adv)-5 b(ancing)30 b(the)g(iterator.)275 3591
8581 y(T)-8 b(o)23 b(mak)m(e)h(a)g(list)d(with)h(a)i(particular)d(t)m(yp)s
8582 (e)i(of)h(elemen)m(ts,)h(one)e(m)m(ust)g(deriv)m(e)g(new)f(list)g
8583 (classes)h(that)h(in-)150 3700 y(herit)g(from)g(the)h(base)g(classes)g
8584 (describ)s(ed)d(ab)s(o)m(v)m(e.)40 b(While)24 b(this)f(is)h(not)h
8585 (di\016cult,)f(it)g(is)g(cum)m(b)s(ersome)h(and)150 3810
8586 y(time)35 b(consuming.)53 b(Instead)35 b(of)g(explicitly)e(declaring)g
8587 (these)j(deriv)m(ed)e(classes,)i(the)g Fi(DECLARE_LIST_)150
8588 3919 y(CLASS)25 b Fn(macro)j(ma)m(y)f(b)s(e)f(used)g(to)h(declare)g
8589 (them)f(automatically)-8 b(.)40 b(This)25 b(macro)i(tak)m(es)h(t)m(w)m
8590 (o)g(argumen)m(ts:)150 4029 y(the)g(name)f(of)h(the)g(new)f(list)f
8591 (class)h(and)g(the)h(t)m(yp)s(e)f(for)h(the)f(data)i(in)d(the)h(list)g
8592 (elemen)m(ts.)40 b(It)27 b(then)h(creates)150 4139 y(classes)e(deriv)m
8593 (ed)e(from)i Fi(glist)p Fn(,)f Fi(glist_e)p Fn(,)g(and)g
8594 Fi(glist_iter)e Fn(that)j(use)f(the)h(sp)s(eci\014ed)e(t)m(yp)s(e)i
8595 (for)f(the)h(el-)150 4248 y(emen)m(t)34 b(data)599 4215
8596 y Fg(1)637 4248 y Fn(.)48 b(F)-8 b(or)33 b(example,)h
8597 Fi(DECLARE_LIST_CLASS\(stri)o(ng_l)o(ist,)24 b(char*\))31
8598 b Fn(generates)j(classes)150 4358 y(named)e Fi(string_list)p
8599 Fn(,)f Fi(string_list_e)p Fn(,)f(and)j Fi(string_list_iter)p
8600 Fn(.)43 b(The)33 b Fi(string_list_e)c Fn(class)150 4467
8601 y(includes)d(a)i Fi(contents)e Fn(\014eld)g(with)h(t)m(yp)s(e)h
8602 Fi(char*)p Fn(.)39 b(The)27 b(metho)s(ds)h(in)e(all)h(of)h(these)h
8603 (classes)f(are)g(c)m(hanged)150 4577 y(to)40 b(use)f(the)g
8604 Fi(char*)f Fn(t)m(yp)s(e)i(where)e(appropriate)g(and)h(some)h(new)e
8605 (metho)s(ds)h(are)h(added.)66 b(\(Once)40 b(the)150 4687
8606 y(elemen)m(t)g(data)g(t)m(yp)s(e)g(is)e(kno)m(wn,)j(it)e(is)g(p)s
8607 (ossible)e(to)j(pro)m(vide)e(metho)s(ds,)k(suc)m(h)d(as)g
8608 Fi(copy)p Fn(,)i(that)f(m)m(ust)150 4796 y(access)32
8609 b(the)e(data)h(\014elds.\))275 4930 y(The)40 b Fi(DECLARE_LIST_CLASS)35
8610 b Fn(macro)41 b(is)f(implemen)m(ted)f(b)m(y)h(other)h(macros,)j(one)d
8611 (for)f(eac)m(h)i(kind)150 5039 y(of)36 b(class.)57 b(Using)36
8612 b(these)g(other)g(macros)h(directly)d(giv)m(es)j(y)m(ou)f(more)g(con)m
8613 (trol)g(o)m(v)m(er)i(the)e(names)g(of)g(the)p 150 5131
8614 1200 4 v 192 5197 a Fg(1)275 5230 y Fn(C)p Fi(++)28 b
8615 Fn(templates)h(w)m(ould)f(b)s(e)h(a)h(b)s(etter)f(solution,)f(but)h(at)
8616 h(the)f(time)g(when)g(this)f(w)m(as)h(dev)m(elop)s(ed,)g(w)m(e)275
8617 5340 y(did)f(not)j(ha)m(v)m(e)g(a)g(C)p Fi(++)e Fn(compiler)g(with)g(a)
8618 i(robust)f(implemen)m(tation)f(of)h(templates.)p eop
8619 %%Page: 80 82
8620 80 81 bop 150 -116 a Fn(80)2385 b(The)30 b(SUIF)g(V)-8
8621 b(ersion)30 b(1)h(Library)150 299 y(new)h(classes)g(and)g(allo)m(ws)g
8622 (y)m(ou)g(to)h(add)f(more)h(metho)s(ds)e(in)g(the)i(deriv)m(ed)e
8623 (classes.)47 b(There)32 b(are)h(sev)m(eral)150 408 y(examples)25
8624 b(of)h(this)e(in)h(the)h(library)d(co)s(de.)39 b(Another)26
8625 b(adv)-5 b(anced)25 b(feature)h(of)g(the)g Fi(DECLARE_LIST_CLASS)150
8626 518 y Fn(macro)35 b(is)f(the)h(virtual)e Fi(set_elem)g
8627 Fn(metho)s(d)h(whic)m(h)g(is)f(included)f(in)i(the)h(generated)h(list)d
8628 (class.)54 b(This)150 628 y(metho)s(d)28 b(is)f(called)g(for)i(ev)m
8629 (ery)g(elemen)m(t)f(that)h(is)e(added)h(to)h(a)g(list.)38
8630 b(The)28 b(base)h Fi(set_elem)d Fn(metho)s(d)h(do)s(es)150
8631 737 y(nothing,)34 b(but)f(a)h(deriv)m(ed)e(class)i(can)g(c)m(hange)g
8632 (this)f(metho)s(d)g(to)h(automatically)g(up)s(date)f(information)150
8633 847 y(in)c(list)g(elemen)m(ts)i(when)e(they)i(are)f(added)g(to)h(a)g
8634 (list.)150 1153 y Fl(11.2)68 b(Mo)l(v)l(e-to-fron)l(t)47
8635 b(Lists)275 1365 y Fn(The)35 b(mo)m(v)m(e-to-fron)m(t)k(list)c(class)h
8636 Fi(mtflist)e Fn(is)h(just)g(a)i(minor)d(v)-5 b(ariation)35
8637 b(of)h(the)h Fi(glist)d Fn(class.)58 b(See)150 1475 y(Section)36
8638 b(11.1)h([Generic)f(Lists],)h(page)g(79.)58 b(The)35
8639 b(user)g(m)m(ust)h(pro)m(vide)f(a)h(function)f(that)h(compares)h(a)150
8640 1584 y(list)26 b(elemen)m(t)j(with)d(some)i(other)h(unsp)s(eci\014ed)c
8641 (ob)5 b(ject.)40 b(The)28 b Fi(mtflist)e Fn(class)h(then)h(pro)m(vides)
8642 e(a)j Fi(lookup)150 1694 y Fn(metho)s(d)k(that)h(uses)f(the)g
8643 (comparison)g(function)f(to)i(searc)m(h)g(for)g(a)f(particular)f
8644 (elemen)m(t.)50 b(After)34 b(ev)m(ery)150 1804 y(successful)f(lo)s
8645 (okup,)h(the)h(returned)e(elemen)m(t)i(is)e(mo)m(v)m(ed)i(to)g(the)g
8646 (fron)m(t)f(of)h(the)f(list.)51 b(This)33 b(w)m(orks)h(w)m(ell)150
8647 1913 y(for)26 b(applications)e(with)g(go)s(o)s(d)i(lo)s(calit)m(y)-8
8648 b(.)39 b(The)26 b Fi(DECLARE_MTFLIST_CLASS)20 b Fn(macro)26
8649 b(w)m(orks)g(just)g(lik)m(e)f(the)150 2023 y Fi(DECLARE_LIST_CLASS)k
8650 Fn(macro,)36 b(but)d(it)h(generates)h(mo)m(v)m(e-to-fron)m(t)i(list)c
8651 (classes.)51 b(The)34 b(co)s(de)g(for)g(the)150 2132
8652 y Fi(mtflist)28 b Fn(class)j(is)e(in)g(the)i(\014les)e(`)p
8653 Fi(mtflist.h)p Fn(')f(and)i(`)p Fi(mtflist.cc)p Fn('.)150
8654 2438 y Fl(11.3)68 b(Asso)t(ciation)46 b(Lists)275 2651
8655 y Fn(An)26 b(asso)s(ciation)i(list)e(elemen)m(t)h(con)m(tains)h(b)s
8656 (oth)f(a)g(k)m(ey)h(and)f(a)h(data)g(p)s(oin)m(ter.)39
8657 b(The)26 b(data)i(asso)s(ciated)150 2760 y(with)37 b(a)h(particular)e
8658 (k)m(ey)j(can)f(b)s(e)g(retriev)m(ed)f(with)g(a)h(simple)e(lo)s(okup)h
8659 (metho)s(d.)63 b(The)37 b(k)m(ey)i(and)e(data)150 2870
8660 y(\014elds)22 b(are)j(b)s(oth)e Fi(void*)g Fn(p)s(oin)m(ters.)37
8661 b(Asso)s(ciation)24 b(lists)e(are)i(implemen)m(ted)f(b)m(y)h(the)g
8662 Fi(alist)f Fn(and)g Fi(alist_e)150 2979 y Fn(classes)k(in)e(the)i
8663 (\014les)f(`)p Fi(alist.h)p Fn(')f(and)h(`)p Fi(alist.cc)p
8664 Fn('.)38 b(These)27 b(classes)f(are)i(deriv)m(ed)d(from)i(the)g
8665 (generic)f(list)150 3089 y(classes)k(\(see)i(Section)e(11.1)i([Generic)
8666 e(Lists],)g(page)h(79\))h(and)e(b)s(eha)m(v)m(e)h(similarly)-8
8667 b(.)275 3243 y(The)37 b Fi(amtflist)f Fn(class)i(has)f(the)i(same)f(in)
8668 m(terface)h(as)f(the)g Fi(alist)f Fn(class)h(and)f(pro)m(vides)g(the)i
8669 (same)150 3353 y(functionalit)m(y)-8 b(.)63 b(The)37
8670 b(only)h(di\013erence)f(is)g(that)i(it)f(is)f(based)h(on)g(the)g(mo)m
8671 (v)m(e-to-fron)m(t)j(list)c(class.)64 b(See)150 3462
8672 y(Section)35 b(11.2)h([Mo)m(v)m(e-to-fron)m(t)j(Lists],)d(page)f(80.)56
8673 b(Y)-8 b(ou)35 b(ma)m(y)h(w)m(an)m(t)f(to)h(use)f(this)e(if)h(y)m(ou)i
8674 (exp)s(ect)f(y)m(our)150 3572 y(application)29 b(to)i(access)g(list)f
8675 (elemen)m(ts)g(with)f(a)i(high)e(degree)i(of)g(lo)s(calit)m(y)-8
8676 b(.)275 3726 y(Lik)m(e)24 b(all)f(of)h(the)h(other)f(SUIF)g(lists,)g
8677 (the)h(asso)s(ciation)f(lists)f(ha)m(v)m(e)i(iterators)g(to)g(mak)m(e)g
8678 (it)f(easy)h(for)f(y)m(ou)150 3835 y(to)31 b(tra)m(v)m(erse)h(them.)40
8679 b(The)30 b Fi(alist_iter)e Fn(class)i(uses)f(the)i(same)g(in)m(terface)
8680 f(as)h(the)f(generic)h(list)e(iterator)150 3945 y(and)h(w)m(orks)g(for)
8681 g(b)s(oth)g Fi(alist)f Fn(and)h Fi(amtflist)e Fn(ob)5
8682 b(jects.)150 4251 y Fl(11.4)68 b(Doubly-Link)l(ed)45
8683 b(Lists)275 4463 y Fn(F)-8 b(or)40 b(some)h(applications,)f(esp)s
8684 (ecially)f(those)h(where)g(it)f(is)g(necessary)h(to)h(tra)m(v)m(erse)h
8685 (lists)c(in)h(b)s(oth)150 4573 y(directions,)c(doubly-link)m(ed)e
8686 (lists)g(w)m(ork)j(m)m(uc)m(h)f(b)s(etter)h(than)f(singly-link)m(ed)d
8687 (lists.)54 b(The)35 b Fi(dlist)f Fn(class)150 4682 y(pro)m(vides)h
8688 (doubly-link)m(ed)e(lists)h(with)h(the)h(same)g(in)m(terface)h(as)f
8689 (the)g(generic)g(lists.)56 b(See)36 b(Section)f(11.1)150
8690 4792 y([Generic)h(Lists],)h(page)g(79.)59 b(Th)m(us)35
8691 b(y)m(ou)h(can)h(in)m(terc)m(hange)f(these)h(data)g(structures)e
8692 (without)g(ha)m(ving)150 4902 y(to)30 b(rewrite)e(y)m(our)h(co)s(de.)41
8693 b(The)29 b Fi(dlist_e)e Fn(elemen)m(ts)j(are)f(deriv)m(ed)f(from)h(the)
8694 g(generic)h(list)d(elemen)m(t)j(class)150 5011 y(but)37
8695 b(they)h(also)g(include)e(the)i(bac)m(kw)m(ards)g(link)e(\014elds.)61
8696 b(The)37 b Fi(dlist_iter)f Fn(iterator)i(w)m(orks)g(lik)m(e)f(the)150
8697 5121 y(standard)i Fi(glist_iter)d Fn(iterator,)43 b(and)38
8698 b(the)i Fi(DECLARE_DLIST_CLASS)34 b Fn(macro)40 b(is)f(the)g(same)h(as)
8699 g(the)150 5230 y Fi(DECLARE_LIST_CLASS)22 b Fn(macro)27
8700 b(except)h(that)f(it)g(pro)s(duces)e(doubly-link)m(ed)f(lists.)38
8701 b(All)25 b(of)i(these)g(things)150 5340 y(are)k(implemen)m(ted)e(in)g
8702 (the)h(`)p Fi(dlist.h)p Fn(')f(and)h(`)p Fi(dlist.cc)p
8703 Fn(')f(\014les.)p eop
8704 %%Page: 81 83
8705 81 82 bop 150 -116 a Fn(Chapter)30 b(11:)41 b(Generic)31
8706 b(Data)h(Structures)2027 b(81)150 299 y Fl(11.5)68 b(Bit)45
8707 b(V)-11 b(ectors)275 491 y Fn(Bit)27 b(v)m(ectors)i(are)f(frequen)m
8708 (tly)e(used)h(in)f(compilers)g(to)i(represen)m(t)g(sets)g(of)g(in)m
8709 (tegers,)g(particularly)d(for)150 600 y(data)31 b(\015o)m(w)g
8710 (analysis.)39 b(The)30 b(SUIF)g(library)e(includes)g(a)j
8711 Fi(bit_set)e Fn(class)h(with)f(an)h(extensiv)m(e)h(collection)150
8712 710 y(of)g(metho)s(ds.)41 b(This)29 b(class)i(is)f(implemen)m(ted)f(in)
8713 h(the)h(`)p Fi(bitset.h)p Fn(')e(and)h(`)p Fi(bitset.cc)p
8714 Fn(')f(\014les.)41 b(When)31 b(y)m(ou)150 819 y(create)h(a)f(new)f
8715 Fi(bit_set)p Fn(,)e(y)m(ou)j(m)m(ust)f(sp)s(ecify)f(the)i(range)f(of)h
8716 (in)m(tegers)g(whic)m(h)e(it)h(ma)m(y)h(con)m(tain.)275
8717 953 y(The)24 b Fi(bit_set_iter)e Fn(class)i(pro)m(vides)g(an)h(easy)h
8718 (and)e(e\016cien)m(t)h(w)m(a)m(y)h(to)g(iterate)g(through)e(the)h(en)m
8719 (tries)150 1063 y(in)k(a)i Fi(bit_set)p Fn(.)39 b(This)29
8720 b(iterator)i(is)f(sligh)m(tly)e(di\013eren)m(t)i(than)h(the)f(SUIF)h
8721 (list)e(iterators.)41 b(Y)-8 b(ou)31 b(m)m(ust)g(call)150
8722 1172 y(the)39 b Fi(is_empty)d Fn(metho)s(d)j(once)g(b)s(efore)g(eac)m
8723 (h)h(call)e(to)h(the)g Fi(step)f Fn(metho)s(d.)65 b(Other)38
8724 b(than)h(that,)j(it)c(is)150 1282 y(straigh)m(tforw)m(ard.)150
8725 1537 y Fl(11.6)68 b(Hash)45 b(T)-11 b(ables)275 1729
8726 y Fn(SUIF)38 b(hash)g(tables)g(are)h(implemen)m(ted)e(b)m(y)i(the)f
8727 Fi(hash_table)e Fn(class)j(in)e(the)i(\014les)e(`)p Fi(hash.h)p
8728 Fn(')h(and)150 1838 y(`)p Fi(hash.cc)p Fn('.)48 b(Eac)m(h)33
8729 b(hash)g(table)g(is)f(a)h(\014xed-size)g(arra)m(y)h(of)f
8730 Fi(hash_chain)d Fn(buc)m(k)m(ets.)50 b(A)34 b Fi(hash_chain)c
8731 Fn(is)150 1948 y(just)i(a)i(mo)m(v)m(e-to-fron)m(t)i(list.)47
8732 b(See)33 b(Section)g(11.2)h([Mo)m(v)m(e-to-fron)m(t)j(Lists],)d(page)f
8733 (80.)50 b(The)32 b(en)m(tries)h(in)f(a)150 2057 y(hash)f(table)i(are)f
8734 (deriv)m(ed)g(from)f(the)i Fi(hash_e)d Fn(class,)j(whic)m(h)e(con)m
8735 (tains)h(a)h(single)e(unsigned)f(v)-5 b(alue)32 b(used)150
8736 2167 y(as)f(the)f(signature.)275 2301 y(If)41 b(y)m(ou)i(wish)d(to)j
8737 (store)g(p)s(oin)m(ters)e(in)g(a)i(hash)e(table,)k(y)m(ou)e(can)f(use)g
8738 (the)h Fi(hash_e)d Fn(class)i(directly)150 2410 y(\(assuming)26
8739 b(that)h(the)g(p)s(oin)m(ters)f(can)h(\014t)g(in)m(to)f(the)h(unsigned)
8740 e(signature)h(\014elds\).)39 b(Otherwise,)26 b(y)m(ou)h(need)150
8741 2520 y(to)39 b(create)g(a)g(deriv)m(ed)e Fi(hash_e)f
8742 Fn(class.)63 b(The)38 b(only)f(other)h(thing)f(needed)h(is)f(a)h
8743 (function)f(to)h(compare)150 2629 y(t)m(w)m(o)32 b Fi(hash_e)d
8744 Fn(en)m(tries)h(to)h(determine)f(if)f(they)i(are)g(equal.)40
8745 b(Y)-8 b(ou)31 b(can)g(then)f(create)i(a)f(new)f Fi(hash_table)150
8746 2739 y Fn(ob)5 b(ject.)41 b(Ev)m(en)31 b(if)e(y)m(ou)h(are)g(using)f(a)
8747 h(deriv)m(ed)f Fi(hash_e)f Fn(class,)i(it)g(ma)m(y)g(b)s(e)g(easier)g
8748 (to)g(just)g(t)m(yp)s(e)g(cast)h(the)150 2848 y(p)s(oin)m(ters)e(than)h
8749 (to)h(deriv)m(e)f(a)h(new)f Fi(hash_table)e Fn(class)i(that)h(includes)
8750 d(the)i(correct)i(t)m(yp)s(e)e(casts.)275 2982 y(The)g(hash)h(table)g
8751 Fi(enter)f Fn(metho)s(d)h(tries)f(to)i(add)f(a)h(new)e(en)m(try)-8
8752 b(.)44 b(If)31 b(the)h(en)m(try)f(w)m(as)h(already)f(in)f(the)150
8753 3092 y(table)h(it)g(returns)f Fi(TRUE)h Fn(and)f(do)s(es)h(not)h(en)m
8754 (ter)g(a)g(duplicate;)f(otherwise,)g(it)g(adds)f(the)i(new)f(en)m(try)h
8755 (and)150 3201 y(returns)c Fi(FALSE)p Fn(.)39 b(The)28
8756 b Fi(lookup)f Fn(metho)s(d)i(c)m(hec)m(ks)h(to)g(see)f(if)f(a)i
8757 (particular)d(en)m(try)i(is)f(in)g(the)h(table.)40 b(If)28
8758 b(so,)150 3311 y(it)i(returns)f(the)i(p)s(oin)m(ter)e(to)i(the)g(en)m
8759 (try)-8 b(.)150 3566 y Fl(11.7)68 b(Extensible)47 b(Arra)l(ys)275
8760 3758 y Fn(Arra)m(ys)37 b(are)g(v)m(ery)h(e\016cien)m(t)g(data)f
8761 (structures)g(but)f(they)i(can)f(only)g(b)s(e)f(used)g(when)h(their)f
8762 (size)h(is)150 3867 y(kno)m(wn)42 b(in)f(adv)-5 b(ance.)77
8763 b(F)-8 b(or)43 b(situations)e(where)h(the)h(n)m(um)m(b)s(er)e(of)i
8764 (elemen)m(ts)f(is)g(not)g(ev)m(en)h(kno)m(wn)f(at)150
8765 3977 y(run-time,)i(most)e(programmers)g(resort)g(to)h(using)e(link)m
8766 (ed)f(lists.)75 b(SUIF)42 b(pro)m(vides)f(a)h(compromise.)150
8767 4086 y(Extensible)33 b(arra)m(ys)i(pro)m(vide)f(almost)h(the)g(same)g
8768 (e\016ciency)g(as)g(arra)m(ys)h(without)d(requiring)g(a)i(b)s(ound)150
8769 4196 y(on)e(the)g(n)m(um)m(b)s(er)f(of)h(elemen)m(ts.)50
8770 b(They)32 b(are)i(not)f(as)g(\015exible)f(as)h(link)m(ed)e(lists,)i(ho)
8771 m(w)m(ev)m(er,)i(b)s(ecause)e(it)g(is)150 4306 y(still)28
8772 b(not)j(p)s(ossible)d(to)j(insert)e(new)h(elemen)m(ts)h(in)e(the)h
8773 (middle)e(of)j(an)f(extensible)f(arra)m(y)-8 b(.)275
8774 4439 y(Extensible)41 b(arra)m(ys)j(are)f(implemen)m(ted)f(b)m(y)h(the)g
8775 Fi(x_array)f Fn(class)h(in)f(the)h(\014les)f(`)p Fi(xarray.h)p
8776 Fn(')g(and)150 4549 y(`)p Fi(xarray.cc)p Fn('.)48 b(When)33
8777 b(an)g Fi(x_array)e Fn(is)i(\014rst)f(created,)k(y)m(ou)d(m)m(ust)h(sp)
8778 s(ecify)e(the)h(n)m(um)m(b)s(er)f(of)i(elemen)m(ts)150
8779 4658 y(to)d(b)s(e)f(allo)s(cated)g(in)f(the)i(\014rst)e(c)m(h)m(unk)h
8780 (of)h(memory)-8 b(.)41 b(If)30 b(more)g(elemen)m(ts)h(are)f(needed)g
8781 (later,)h(additional)150 4768 y(c)m(h)m(unks)26 b(of)g(the)g(same)g
8782 (size)g(will)d(b)s(e)j(allo)s(cated)g(automatically)-8
8783 b(.)39 b(The)26 b Fi(ub)f Fn(metho)s(d)g(returns)g(the)h(n)m(um)m(b)s
8784 (er)150 4878 y(of)31 b(elemen)m(ts)f(that)h(are)g(curren)m(tly)e(in)g
8785 (an)i Fi(x_array)p Fn(.)275 5011 y(The)24 b(elemen)m(ts)h(of)g(an)g
8786 Fi(x_array)e Fn(cannot)j(b)s(e)e(referenced)h(un)m(til)e(they)i(are)h
8787 (added)e(to)i(the)f(arra)m(y)-8 b(.)40 b(New)150 5121
8788 y(elemen)m(ts)c(can)g(only)f(b)s(e)g(added)f(at)j(the)f(end)f(of)g(an)h
8789 (arra)m(y)g(b)m(y)f(using)g(the)g Fi(extend)f Fn(metho)s(d.)56
8790 b(In)35 b(this)150 5230 y(w)m(a)m(y)g(an)f Fi(x_array)e
8791 Fn(b)s(eha)m(v)m(es)j(lik)m(e)e(a)i(link)m(ed)d(list.)51
8792 b(Elemen)m(ts)34 b(m)m(ust)f(b)s(e)h(app)s(ended)e(\(with)h
8793 Fi(extend)p Fn(\))g(to)150 5340 y(the)e(end)e(of)i(an)f(arra)m(y)h(b)s
8794 (efore)f(they)g(can)h(b)s(e)f(used.)p eop
8795 %%Page: 82 84
8796 82 83 bop 150 -116 a Fn(82)2385 b(The)30 b(SUIF)g(V)-8
8797 b(ersion)30 b(1)h(Library)275 299 y(The)37 b Fi(x_array)e
8798 Fn(class)j(also)g(pro)m(vides)e(an)i Fi(operator[])d
8799 Fn(metho)s(d)i(so)h(that)g(once)g(an)g(elemen)m(t)g(has)150
8800 408 y(b)s(een)28 b(en)m(tered)h(in)e(an)i Fi(x_array)d
8801 Fn(it)i(can)h(b)s(e)f(referenced)h(using)e(the)h(standard)g(arra)m(y)h
8802 (reference)g(syn)m(tax.)150 518 y(This)g(w)m(orks)h(regardless)g(of)g
8803 (whic)m(h)f(c)m(h)m(unk)h(of)h(memory)f(con)m(tains)h(the)f(elemen)m
8804 (t.)275 653 y(Eac)m(h)25 b(elemen)m(t)h(of)g(an)f Fi(x_array)e
8805 Fn(is)h(a)i Fi(void*)e Fn(p)s(oin)m(ter.)38 b(Y)-8 b(ou)25
8806 b(can)h(cast)g(these)g(p)s(oin)m(ters)e(to)i(an)m(y)g(other)150
8807 762 y(t)m(yp)s(e)34 b(that)h(\014ts)f(in)e(the)j(same)f(amoun)m(t)g(of)
8808 h(storage.)53 b(A)34 b(b)s(etter)g(solution)f(is)g(to)i(use)e(the)i
8809 Fi(DECLARE_X_)150 872 y(ARRAY)27 b Fn(macro)h(to)h(deriv)m(e)f(a)g(sub)
8810 s(class)e(of)j Fi(x_array)d Fn(with)g(elemen)m(ts)j(that)f(are)h(p)s
8811 (oin)m(ters)e(to)i(the)f(correct)150 981 y(t)m(yp)s(e.)44
8812 b(This)29 b(macro)j(tak)m(es)h(three)f(argumen)m(ts:)43
8813 b(the)31 b(name)h(of)f(the)h(deriv)m(ed)e(class,)i(the)g(t)m(yp)s(e)f
8814 (to)h(whic)m(h)150 1091 y(the)c(elemen)m(ts)f(should)f(p)s(oin)m(t,)h
8815 (and)g(the)g(default)g(c)m(h)m(unk)g(size.)40 b(As)27
8816 b(with)f(the)i(macros)g(for)f(creating)g(new)150 1200
8817 y(list)i(classes,)i(this)e(is)g(just)h(a)h(c)m(heap)g(substitute)e(for)
8818 h(templates.)p eop
8819 %%Page: 83 85
8820 83 84 bop 150 -116 a Fn(Chapter)30 b(12:)41 b(Other)30
8821 b(F)-8 b(eatures)32 b(of)e(the)h(SUIF)f(Library)1570
8822 b(83)150 299 y Fj(12)80 b(Other)53 b(F)-13 b(eatures)53
8823 b(of)g(the)g(SUIF)h(Library)275 528 y Fn(This)24 b(c)m(hapter)i
8824 (describ)s(es)f(v)-5 b(arious)25 b(features)h(of)g(the)g(SUIF)g
8825 (library)e(that)i(are)g(to)s(o)h(small)e(to)h(w)m(arran)m(t)150
8826 638 y(separate)k(c)m(hapters.)40 b(These)29 b(include)d(immediate)i(v)
8827 -5 b(alues)28 b(and)g(sym)m(b)s(olic)f(addresses,)i(whic)m(h)f(are)h
8828 (used)150 747 y(in)40 b(annotations)h(and)f Fi(ldc)h
8829 Fn(instructions,)g(the)h Fi(lexicon)p Fn(,)g(in)e(whic)m(h)f(almost)i
8830 (all)f(c)m(haracter)j(strings)150 857 y(are)34 b(en)m(tered,)h(the)f
8831 Fi(machine_params)c Fn(structure,)k(whic)m(h)f(records)g(a)h(v)-5
8832 b(ariet)m(y)34 b(of)g(parameters)g(for)g(the)150 966
8833 y(target)j(arc)m(hitecture,)i(and)c(a)h(v)-5 b(ariet)m(y)36
8834 b(of)g(functions)f(for)g(initializing)d(the)k(library)-8
8835 b(,)36 b(handling)d(errors,)150 1076 y(and)d(iterating)g(through)f(pro)
8836 s(cedures.)150 1330 y Fl(12.1)68 b(Immediate)47 b(V)-11
8837 b(alues)275 1522 y Fn(An)23 b(immediate)g(v)-5 b(alue)23
8838 b(ma)m(y)h(b)s(e)g(an)f(in)m(teger)h(constan)m(t,)j(string)c(constan)m
8839 (t,)j(\015oating-p)s(oin)m(t)d(constan)m(t,)150 1632
8840 y(SUIF)37 b(t)m(yp)s(e,)i(sym)m(b)s(olic)d(address,)i(expression)e(op)s
8841 (erand,)i(or)g(instruction,)f(or)g(it)g(can)g(b)s(e)g(unde\014ned.)150
8842 1741 y(It)f(can)g(b)s(e)f(used)h(as)g(the)g(source)g(of)g(an)g
8843 Fi(ldc)f Fn(\(load)h(constan)m(t\))h(instruction)d(\(see)j(Section)f
8844 (4.6)h([Load)150 1851 y(Constan)m(t)j(Instructions],)g(page)g(33\))g
8845 (or)f(as)g(an)g(elemen)m(t)h(of)f(an)g(annotation)h(\(see)g(Chapter)e
8846 (8)i([An-)150 1960 y(notations],)c(page)f(63\).)53 b(Only)33
8847 b(in)m(tegers,)j(\015oating-p)s(oin)m(t)d(v)-5 b(alues,)35
8848 b(and)f(sym)m(b)s(olic)e(addresses)i(ma)m(y)h(b)s(e)150
8849 2070 y(used)30 b(in)g Fi(ldc)g Fn(instructions,)g(while)f(an)m(y)i
8850 (kind)e(of)j(immediate)e(v)-5 b(alue)30 b(ma)m(y)i(app)s(ear)f(in)e(an)
8851 i(annotation.)150 2180 y(Immediate)38 b(v)-5 b(alues)38
8852 b(are)g(implemen)m(ted)f(b)m(y)h(the)h Fi(immed)e Fn(class)h(de\014ned)
8853 f(in)g(the)h(\014les)g(`)p Fi(immed.h)p Fn(')f(and)150
8854 2289 y(`)p Fi(immed.cc)p Fn('.)275 2423 y(The)27 b(kind)g(of)i(v)-5
8855 b(alue)28 b(in)f(an)h Fi(immed)f Fn(is)h(iden)m(ti\014ed)e(b)m(y)i(the)
8856 h Fi(kind)e Fn(metho)s(d.)40 b(This)27 b(returns)g(a)i(mem)m(b)s(er)150
8857 2532 y(of)i(the)f Fi(immed_kinds)d Fn(en)m(umerated)k(t)m(yp)s(e.)41
8858 b(The)30 b(mem)m(b)s(ers)f(of)i(this)e(en)m(umeration)h(are:)150
8859 2690 y Fi(im_int)132 b Fn(In)m(teger.)94 b(The)47 b Fi(is_integer)e
8860 Fn(metho)s(d)i(tests)i(for)e(this)g(kind)f(of)i(immediate)f(and)g(the)
8861 630 2799 y Fi(integer)28 b Fn(metho)s(d)i(returns)f(the)i(in)m(teger)g
8862 (v)-5 b(alue.)150 2957 y Fi(im_string)630 3066 y Fn(Character)35
8863 b(string.)53 b(The)35 b(string)f(is)g(automatically)g(en)m(tered)i(in)d
8864 (the)i(lexicon)g(\(see)g(Sec-)630 3176 y(tion)21 b(12.3)j([Lexicon],)g
8865 (page)e(84\))h(when)e(the)h Fi(immed)e Fn(is)h(created.)39
8866 b(The)21 b Fi(is_string)e Fn(metho)s(d)630 3286 y(c)m(hec)m(ks)31
8867 b(if)e(an)g Fi(immed)f Fn(is)h(a)h(string,)f(and)g(the)h
8868 Fi(string)d Fn(metho)s(d)i(returns)g(a)h(p)s(oin)m(ter)e(to)j(the)630
8869 3395 y(string.)150 3553 y Fi(im_float)36 b Fn(Floating-p)s(oin)m(t)30
8870 b(v)-5 b(alue.)40 b(The)30 b(SUIF)g(library)e(stores)j(all)e
8871 (\015oating-p)s(oin)m(t)h(v)-5 b(alues)30 b(using)f(the)630
8872 3662 y Fi(double)k Fn(t)m(yp)s(e,)i(so)g(the)f(precision)f(is)g
8873 (limited)f(b)m(y)i(the)h(precision)d(for)i(the)h Fi(double)e
8874 Fn(t)m(yp)s(e.)630 3772 y(The)38 b Fi(is_flt)f Fn(metho)s(d)i(c)m(hec)m
8875 (ks)h(for)e(this)g(kind)f(of)i(immediate,)h(and)f(the)g
8876 Fi(flt)e Fn(metho)s(d)630 3881 y(returns)29 b(the)i(v)-5
8877 b(alue.)150 4039 y Fi(im_symbol)630 4148 y Fn(Sym)m(b)s(olic)36
8878 b(address.)62 b(See)39 b(Section)e(12.2)j([Sym)m(b)s(olic)c
8879 (Addresses],)k(page)e(84.)64 b(The)38 b Fi(is_)630 4258
8880 y(symbol)e Fn(metho)s(d)h(c)m(hec)m(ks)i(if)d(an)i Fi(immed)e
8881 Fn(is)h(a)h(sym)m(b)s(olic)e(address.)61 b(The)37 b Fi(addr)f
8882 Fn(metho)s(d)630 4368 y(returns)e(the)i(en)m(tire)g Fi(sym_addr)d
8883 Fn(ob)5 b(ject,)39 b(but)c(the)g Fi(symbol)f Fn(and)i
8884 Fi(offset)e Fn(metho)s(ds)h(are)630 4477 y(also)30 b(a)m(v)-5
8885 b(ailable)30 b(to)h(retriev)m(e)g(the)g(sym)m(b)s(ol)e(p)s(oin)m(ter)g
8886 (and)h(in)m(teger)h(o\013set)g(separately)-8 b(.)150
8887 4635 y Fi(im_type)84 b Fn(SUIF)40 b(t)m(yp)s(e.)70 b(The)40
8888 b Fi(is_type)e Fn(metho)s(d)h(c)m(hec)m(ks)j(for)e(this)f(kind)f(of)i
8889 (immediate,)i(and)e(the)630 4744 y Fi(type)29 b Fn(metho)s(d)h(returns)
8890 f(a)i(p)s(oin)m(ter)e(to)i(the)g(SUIF)f(t)m(yp)s(e)h(no)s(de.)150
8891 4902 y Fi(im_op)180 b Fn(Expression)37 b(op)s(erand.)65
8892 b(The)38 b(immed)g(is)g(considered)f(to)j(\\o)m(wn")f(the)g(en)m(tire)g
8893 (expression)630 5011 y(tree)f(when)e(it's)h(in)f(an)h(annotation,)i(so)
8894 f(the)f(same)h(expression)e(shouldn't)f(b)s(e)i(used)f(in)630
8895 5121 y(another)f(annotation)g(or)g(as)h(the)f(source)g(for)g(an)g
8896 (instruction;)g(instead)g(a)g(cop)m(y)h(should)630 5230
8897 y(b)s(e)g(made)h(with)e(the)i Fi(clone)e Fn(metho)s(d.)59
8898 b(The)36 b Fi(is_op)f Fn(metho)s(d)h(c)m(hec)m(ks)i(for)e(this)g(kind)f
8899 (of)630 5340 y(immediate,)30 b(and)f(the)i Fi(op)f Fn(metho)s(d)g
8900 (returns)f(the)h(expression.)p eop
8901 %%Page: 84 86
8902 84 85 bop 150 -116 a Fn(84)2385 b(The)30 b(SUIF)g(V)-8
8903 b(ersion)30 b(1)h(Library)150 299 y Fi(im_instr)36 b
8904 Fn(SUIF)41 b(instruction.)71 b(The)41 b(immed)e(is)i(considered)f(to)h
8905 (\\o)m(wn")i(the)e(instruction)e(and)i(its)630 408 y(expression)32
8906 b(trees)i(when)e(it's)h(in)f(an)h(annotation,)h(so)g(the)f(same)h
8907 (instruction)d(shouldn't)630 518 y(b)s(e)e(used)g(in)f(another)i
8908 (annotation)g(or)f(in)g(a)h Fi(tree_node)d Fn(or)i(expression;)g
8909 (instead)g(a)h(cop)m(y)630 628 y(should)c(b)s(e)h(made)h(with)e(the)i
8910 Fi(clone)e Fn(metho)s(d.)40 b(The)27 b Fi(is_instr)e
8911 Fn(metho)s(d)i(c)m(hec)m(ks)j(for)d(this)630 737 y(kind)i(of)h
8912 (immediate,)g(and)g(the)g Fi(instr)f Fn(metho)s(d)h(returns)f(the)i
8913 (instruction.)150 883 y Fi(im_undef)36 b Fn(Unde\014ned)d(v)-5
8914 b(alue.)51 b(This)32 b(is)i(included)d(to)k(signal)e(errors)g(b)m(y)h
8915 (marking)f(an)h(immediate)g(as)630 992 y(unde\014ned.)k(The)30
8916 b Fi(is_error)e Fn(metho)s(d)i(also)h(c)m(hec)m(ks)g(for)g(this)e
8917 (condition.)275 1137 y(Since)23 b(an)h(immediate)f(v)-5
8918 b(alue)24 b(is)f(small,)i(there)f(are)h(no)f(metho)s(ds)g(to)h(c)m
8919 (hange)g(the)g(v)-5 b(alue)23 b(of)i(an)f Fi(immed)p
8920 Fn(.)150 1247 y(Instead)40 b(a)h(v)-5 b(ariet)m(y)40
8921 b(of)g(constructors)h(are)f(pro)m(vided)f(to)i(mak)m(e)g(it)f(easy)h
8922 (to)g(create)g(new)f(immediate)150 1357 y(v)-5 b(alues.)43
8923 b(That)31 b(is,)g(y)m(ou)g(can)h(initialize)c(di\013eren)m(t)j(kinds)e
8924 (of)j(immediates)e(b)m(y)h(pro)m(viding)e(argumen)m(ts)j(of)150
8925 1466 y(v)-5 b(arious)29 b(t)m(yp)s(es)i(to)g(constructors.)275
8926 1594 y(The)i Fi(immed)f Fn(class)i(pro)m(vides)e(t)m(w)m(o)j(prin)m(t)e
8927 (metho)s(ds,)h Fi(print)e Fn(and)h Fi(rawprint)p Fn(.)49
8928 b(The)33 b(di\013erence)g(b)s(e-)150 1703 y(t)m(w)m(een)f(them)e(is)f
8929 (that)i(the)g(latter)g(do)s(esn't)f(escap)s(e)h(`)p Fi(")p
8930 Fn(')f(and)g(`)p Fi(\\)p Fn(')g(when)g(prin)m(ting)e(strings.)150
8931 1939 y Fl(12.2)68 b(Sym)l(b)t(olic)45 b(Addresses)275
8932 2125 y Fn(Sym)m(b)s(olic)33 b(addresses)h(are)i(curren)m(tly)e(only)g
8933 (used)h(in)e(immediate)i(v)-5 b(alues)34 b(\(see)i(Section)f(12.1)i
8934 ([Im-)150 2235 y(meds],)k(page)f(83\).)68 b(A)40 b(sym)m(b)s(olic)d
8935 (address)h(has)h(t)m(w)m(o)i(parts,)g(a)f(sym)m(b)s(ol)e(and)g(an)h(in)
8936 m(teger)h(o\013set.)68 b(In)150 2344 y(man)m(y)39 b(cases,)j(the)d
8937 (o\013set)h(is)d(set)j(to)f(zero,)j(but)c(for)h(an)f(aggregate)k(data)d
8938 (structure)g(the)g(o\013set)g(ma)m(y)150 2454 y(sp)s(ecify)c(the)h(n)m
8939 (um)m(b)s(er)f(of)h(bits)f(from)h(the)g(b)s(eginning)e(of)i(the)h(data)
8940 f(structure)g(to)h(a)g(particular)d(\014eld.)150 2563
8941 y(The)39 b Fi(sym_addr)e Fn(class)i(de\014ned)f(in)g(the)i(`)p
8942 Fi(symaddr.h)p Fn(')d(and)i(`)p Fi(symaddr.cc)p Fn(')e(\014les)i
8943 (implemen)m(ts)e(these)150 2673 y(sym)m(b)s(olic)29 b(addresses.)275
8944 2800 y(The)40 b Fi(symbol)f Fn(metho)s(d)h(returns)f(a)j(p)s(oin)m(ter)
8945 d(to)j(the)f(sym)m(b)s(ol)e(in)h(a)h(sym)m(b)s(olic)e(address,)k(and)d
8946 (the)150 2910 y Fi(offset)34 b Fn(metho)s(d)h(returns)g(the)h(in)m
8947 (teger)g(o\013set.)59 b(As)36 b(with)e(most)i(other)h(o\013sets)f(in)f
8948 (SUIF,)h(the)g(o\013set)150 3020 y(is)g(in)f Fh(bits)p
8949 Fn(.)58 b(Be)37 b(careful)f(to)i(a)m(v)m(oid)f(treating)g(this)e(as)i
8950 (a)g(b)m(yte)g(or)g(w)m(ord)f(o\013set.)60 b(As)37 b(with)e(immediate)
8951 150 3129 y(v)-5 b(alues,)33 b(there)f(are)h(no)f(metho)s(ds)g(to)h(c)m
8952 (hange)h(the)e(con)m(ten)m(ts)i(of)f(a)g(sym)m(b)s(olic)e(address.)46
8953 b(Because)33 b(these)150 3239 y(are)i(small)f(structures,)i(it)e(is)g
8954 (just)h(as)g(easy)h(to)g(create)g(new)f Fi(sym_addr)e
8955 Fn(ob)5 b(jects)35 b(whenev)m(er)g(they)h(are)150 3348
8956 y(needed.)k(T)-8 b(o)31 b(prin)m(t)e(a)i(sym)m(b)s(olic)e(address,)g
8957 (use)i(the)f Fi(print)f Fn(metho)s(d.)150 3584 y Fl(12.3)68
8958 b(Lexicon)275 3770 y Fn(Almost)39 b(all)f(c)m(haracter)j(strings)d(in)g
8959 (SUIF)i(are)f(en)m(tered)h(in)f(a)g(hash)g(table)g(called)g(the)h
8960 Fi(lexicon)p Fn(.)150 3880 y(This)33 b(table)h(remo)m(v)m(es)i
8961 (duplicate)d(strings)g(so)i(that)g(string)f(comparisons)f(can)i(b)s(e)f
8962 (reduced)g(to)h(simple)150 3989 y(p)s(oin)m(ter)f(comparisons.)54
8963 b(The)34 b Fi(lexicon)f Fn(is)h(an)h(ob)5 b(ject)36 b(of)f(the)g
8964 Fi(string_table)d Fn(class)i(de\014ned)g(in)g(the)150
8965 4099 y(`)p Fi(stringtable.h)p Fn(')27 b(and)j(`)p Fi(stringtable.cc)p
8966 Fn(')d(\014les.)275 4226 y(A)41 b Fi(string_table)d Fn(is)i(an)h(op)s
8967 (en)f(hash)h(table;)46 b(eac)m(h)d(buc)m(k)m(et)f(is)e(a)i(link)m(ed)d
8968 (list)h(of)h(string)f(en)m(tries)150 4336 y(represen)m(ted)i(b)m(y)g
8969 (ob)5 b(jects)42 b(of)g(the)g Fi(string_e)e Fn(class.)75
8970 b(The)41 b(only)g(public)e(metho)s(d)i(in)g(the)h Fi(string_)150
8971 4445 y(table)34 b Fn(class)h(is)g(called)g Fi(enter)p
8972 Fn(.)54 b(This)34 b(metho)s(d)h(searc)m(hes)h(the)g(table)g(for)f(a)h
8973 (sp)s(eci\014ed)e(string.)55 b(If)35 b(the)150 4555 y(string)21
8974 b(is)h(found,)h Fi(enter)e Fn(returns)g(a)h(p)s(oin)m(ter)g(to)h(the)g
8975 (existing)e Fi(string_e)f Fn(en)m(try)-8 b(.)39 b(Otherwise,)23
8976 b(it)f(creates)150 4665 y(a)29 b(new)e(en)m(try)i(and)f(adds)f(it)h(to)
8977 h(the)f(table.)40 b(In)28 b(either)f(case,)j(the)f(actual)f(c)m
8978 (haracter)i(string)d(p)s(oin)m(ter)h(can)150 4774 y(b)s(e)i(retriev)m
8979 (ed)g(directly)f(from)h(the)h Fi(sp)e Fn(\014eld)g(of)i(the)f
8980 (resulting)f Fi(string_e)f Fn(en)m(try)-8 b(.)275 4902
8981 y(None)37 b(of)h(the)f(strings)f(in)g(the)i Fi(lexicon)d
8982 Fn(are)i(deallo)s(cated)h(un)m(til)d(a)j(SUIF)f(program)g(terminates.)
8983 150 5011 y(Consequen)m(tly)-8 b(,)35 b(when)e(adding)g(a)i(new)f
8984 (string)f(to)i(the)f(table,)h(it)f(is)f(copied)h(to)h(the)g(heap)f(in)e
8985 (case)k(the)150 5121 y(original)f(string)h(is)f(stored)i(on)g(the)g
8986 (stac)m(k.)61 b(If)36 b(the)h(string)f(is)g(kno)m(wn)g(to)i(b)s(e)e
8987 (allo)s(cated)h(on)f(the)h(heap)150 5230 y(and)e(will)e(nev)m(er)j(b)s
8988 (e)f(mo)s(di\014ed)e(or)j(deallo)s(cated,)h(this)e(string)f(cop)m(y)j
8989 (can)e(b)s(e)g(a)m(v)m(oided)h(b)m(y)g(setting)g(the)150
8990 5340 y(optional)30 b Fi(fixed)e Fn(\015ag)j(when)f(calling)e
8991 Fi(enter)p Fn(.)p eop
8992 %%Page: 85 87
8993 85 86 bop 150 -116 a Fn(Chapter)30 b(12:)41 b(Other)30
8994 b(F)-8 b(eatures)32 b(of)e(the)h(SUIF)f(Library)1570
8995 b(85)150 299 y Fl(12.4)68 b(T)-11 b(arget)46 b(Mac)l(hine)f(P)l
8996 (arameters)275 494 y Fn(The)21 b(SUIF)g(library)e(includes)h(a)i
8997 (structure)f(to)h(record)g(v)-5 b(arious)20 b(parameters)i(of)g(the)g
8998 (target)h(mac)m(hine.)150 603 y(The)28 b(bac)m(k-end)g(of)h(the)f
8999 (compiler)f(ma)m(y)i(b)s(e)e(either)h(a)g(co)s(de)h(generator)g(for)f
9000 (a)h(sp)s(eci\014c)e(pro)s(cessor)h(or)g(the)150 713
9001 y(system's)g(C)f(compiler,)g(using)f(the)i(SUIF-to-C)g(translator.)40
9002 b(Th)m(us,)27 b(the)h(target)h(mac)m(hine)f(parameters)150
9003 823 y(include)i(\014elds)g(that)i(deal)g(b)s(oth)f(with)f(hardw)m(are)i
9004 (requiremen)m(ts)f(and)g(with)g(details)f(of)i(the)g(bac)m(k-end)150
9005 932 y(C)j(compiler.)56 b(These)35 b(parameters)i(are)f(stored)g(in)e
9006 (the)i Fi(target)e(machine_params)e Fn(structure.)56
9007 b(The)150 1042 y(fron)m(t-end)36 b(is)f(resp)s(onsible)e(for)j(setting)
9008 g(the)g(target)h(parameters,)h(but)e(they)g(are)g(then)g(sa)m(v)m(ed)h
9009 (in)e(the)150 1151 y(SUIF)30 b(\014les)f(and)h(passed)g(along)h(to)g
9010 (all)e(subsequen)m(t)h(passes)g(of)g(the)h(compiler.)275
9011 1288 y(The)e(\014rst)g(\014elds)g(in)g(the)h Fi(machine_params)c
9012 Fn(structure)j(deal)h(with)f(the)h(addressing)e(in)h(the)h(under-)150
9013 1398 y(lying)h(hardw)m(are.)47 b(The)32 b Fi(is_big_endian)d
9014 Fn(\014eld)i(sp)s(eci\014es)g(the)i(b)m(yte)g(order,)g(and)f(the)g
9015 Fi(addressable_)150 1507 y(size)i Fn(\014eld)f(sp)s(eci\014es)h(the)h
9016 (size)g(in)e(bits)h(of)h(the)g(smallest)g(addressable)e(unit.)53
9017 b(Since)34 b(most)h(mac)m(hines)150 1617 y(are)c(b)m(yte-addressable,)f
9018 (the)h Fi(addressable_size)26 b Fn(is)j(usually)f(set)j(to)g(eigh)m(t.)
9019 275 1754 y(Next,)k(the)f(sizes)f(and)g(alignmen)m(ts)g(for)h(v)-5
9020 b(arious)32 b(C)i(t)m(yp)s(es)f(are)h(sp)s(eci\014ed.)49
9021 b(The)33 b(p)s(ossible)f(C)h(t)m(yp)s(es)150 1863 y(are)e(listed)e(in)g
9022 (the)h Fi(C_types)f Fn(en)m(umeration:)150 2026 y Fi(C_char)150
9023 2188 y(C_short)150 2349 y(C_int)150 2511 y(C_long)150
9024 2673 y(C_longlong)150 2808 y(C_float)150 2970 y(C_double)150
9025 3132 y(C_longdouble)150 3267 y(C_ptr)150 3430 y Fn(The)h
9026 Fi(size)f Fn(and)h Fi(align)e Fn(\014elds)h(of)i(the)f
9027 Fi(machine_params)d Fn(structure)i(are)i(arra)m(ys)g(con)m(taining)f
9028 (the)g(size)150 3540 y(and)k(alignmen)m(t)f(for)i(eac)m(h)g(C)f(t)m(yp)
9029 s(e.)53 b(Both)35 b(are)g(sp)s(eci\014ed)d(in)h(bits)h(\(not)h(b)m
9030 (ytes\).)53 b(Some)35 b(C)f(compilers)150 3649 y(require)e(additional)f
9031 (alignmen)m(t)h(restrictions)g(for)h(arra)m(ys)g(and)g(structures.)48
9032 b(The)33 b Fi(array_align)d Fn(and)150 3759 y Fi(struct_align)f
9033 Fn(\014elds)h(con)m(tain)i(these)h(alignmen)m(t)e(requiremen)m(ts)g(in)
9034 f(bits.)45 b(Note)33 b(that)f(these)h(do)f(not)150 3869
9035 y(replace)38 b(the)g(alignmen)m(t)f(restrictions)g(for)h(the)g(comp)s
9036 (onen)m(ts)g(of)g(an)g(arra)m(y)h(or)f(structure;)j(the)e(most)150
9037 3978 y(restrictiv)m(e)30 b(alignmen)m(ts)g(m)m(ust)g(alw)m(a)m(ys)h(b)s
9038 (e)f(main)m(tained.)275 4115 y(The)39 b(remaining)f(\014elds)g(are)i
9039 (only)f(applicable)e(to)k(the)e(bac)m(k-end)i(C)e(compiler.)67
9040 b(The)39 b Fi(char_is_)150 4224 y(signed)26 b Fn(\014eld)g(sp)s
9041 (eci\014es)h(if)f(the)i(default)f Fi(char)g Fn(t)m(yp)s(e)g(is)g
9042 (signed.)39 b(This)26 b(is)g(just)i(to)g(allo)m(w)f(the)h(SUIF-to-C)150
9043 4334 y(translator)35 b(to)g(a)m(v)m(oid)g(cluttering)f(up)g(the)h(C)f
9044 (co)s(de)h(b)m(y)g(explicitly)d(putting)i Fi(signed)f
9045 Fn(or)i Fi(unsigned)d Fn(in)150 4444 y(ev)m(ery)i(declaration)f(of)g(a)
9046 h Fi(char)e Fn(t)m(yp)s(e.)50 b(When)33 b(t)m(w)m(o)i(p)s(oin)m(ters)d
9047 (are)i(subtracted)f(in)f(C,)h(the)h(result)e(t)m(yp)s(e)150
9048 4553 y(is)c(implemen)m(tation)g(de\014ned.)39 b(The)29
9049 b Fi(ptr_diff_type)c Fn(\014eld)j(in)g Fi(machine_params)d
9050 Fn(sp)s(eci\014es)j(the)i(t)m(yp)s(e)150 4663 y(pro)s(duced)f(b)m(y)h
9051 (suc)m(h)g(p)s(oin)m(ter)f(subtractions)h(for)g(use)g(in)f(SUIF-to-C.)
9052 150 4926 y Fl(12.5)68 b(Initialization)48 b(and)d(Finalization)275
9053 5121 y Fn(Before)38 b(using)f(an)m(y)h(features)g(of)g(the)g(SUIF)f
9054 (library)-8 b(,)38 b(a)g(program)g(m)m(ust)g(\014rst)f(initialize)e
9055 (it.)62 b(The)150 5230 y Fi(init_suif)38 b Fn(function,)k(de\014ned)e
9056 (in)f(the)i(`)p Fi(initsuif.h)p Fn(')d(and)i(`)p Fi(initsuif.cc)p
9057 Fn(')e(\014les,)43 b(p)s(erforms)c(this)150 5340 y(initialization.)74
9058 b(The)41 b Fi(main)g Fn(function)g(of)i(a)g(SUIF)f(program)g(should)e
9059 (call)i Fi(init_suif)e Fn(\014rst.)75 b(The)p eop
9060 %%Page: 86 88
9061 86 87 bop 150 -116 a Fn(86)2385 b(The)30 b(SUIF)g(V)-8
9062 b(ersion)30 b(1)h(Library)150 299 y Fi(argc)h Fn(and)g
9063 Fi(argv)g Fn(parameters)h(are)g(passed)g(to)g Fi(init_suif)e
9064 Fn(so)i(that)h(it)e(can)h(c)m(hec)m(k)i(for)d(the)h(follo)m(wing)150
9065 408 y(standard)d(options:)150 552 y Fi(-version)36 b
9066 Fn(Prin)m(t)29 b(the)i(v)m(ersion)f(n)m(um)m(b)s(ers)f(and)h
9067 (compilation)f(information)g(for)h(the)h(program)f(and)g(for)630
9068 661 y(an)m(y)40 b(libraries)c(with)i(whic)m(h)g(it)h(is)f(link)m(ed.)66
9069 b(The)39 b Fi(prog_ver_string)c Fn(and)j Fi(prog_who_)630
9070 771 y(string)25 b Fn(strings)g(con)m(tain)i(the)g(v)m(ersion)f(n)m(um)m
9071 (b)s(er)f(and)h(compilation)f(information)g(for)i(the)630
9072 881 y(program.)45 b(They)32 b(are)g(usually)e(set)j(automatically)f(b)m
9073 (y)f(the)i(standard)e(SUIF)h(mak)m(e\014les.)630 990
9074 y(Similarly)-8 b(,)46 b(the)f Fi(libsuif1_ver_string)40
9075 b Fn(and)45 b Fi(libsuif1_who_string)40 b Fn(strings)k(are)630
9076 1100 y(used)25 b(for)h(the)h(SUIF)f(library)-8 b(.)37
9077 b(Information)25 b(for)h(other)h(libraries)c(is)i(recorded)i(when)e
9078 (they)630 1209 y(are)31 b(registered)f(\(as)h(describ)s(ed)d(b)s(elo)m
9079 (w\).)150 1353 y Fi(-print-flat)630 1462 y Fn(Do)48 b(not)f(prin)m(t)e
9080 (structured)h(annotations)h(\(see)h(Section)f(8.3)g([Structured)f
9081 (Annotes],)630 1572 y(page)24 b(64\))h(using)d(the)h(user-de\014ned)f
9082 (prin)m(ting)f(functions.)37 b(If)23 b(all)f(annotations)i(are)f(prin)m
9083 (ted)630 1681 y(as)j(\015at)f(lists)f(of)h(immediate)g(v)-5
9084 b(alues,)26 b(the)f(output)g(could)f(b)s(e)h(parsed)g(and)f(con)m(v)m
9085 (erted)j(bac)m(k)630 1791 y(to)k(a)g(binary)d(SUIF)j(\014le.)150
9086 1934 y Fi(-no-types)630 2044 y Fn(Do)38 b(not)g(prin)m(t)f(the)h
9087 (result)e(t)m(yp)s(es)i(for)f(instructions.)61 b(This)36
9088 b(is)g(just)h(to)i(help)d(mak)m(e)j(the)630 2153 y(output)30
9089 b(more)h(readable)e(in)g(situations)h(where)f(the)i(result)e(t)m(yp)s
9090 (es)i(are)g(not)f(of)h(in)m(terest.)150 2297 y Fi(-no-symtabs)630
9091 2406 y Fn(Do)e(not)f(prin)m(t)f(out)h(sym)m(b)s(ol)f(tables.)40
9092 b(If)27 b(the)h(sym)m(b)s(olic)f(information)f(is)h(not)i(needed,)f
9093 (this)630 2516 y(mak)m(es)j(the)g(output)f(shorter)g(and)g(easier)g(to)
9094 h(read.)150 2659 y(These)g(options)g(are)g(p)s(oten)m(tially)f
9095 (applicable)f(to)j(all)e(SUIF)h(programs,)h(so)f(they)h(are)f(included)
9096 e(in)h(the)150 2769 y(library)-8 b(.)275 2895 y(A)m(t)33
9097 b(the)g(end)e(of)i(a)g(SUIF)f(program,)h(the)g(data)g(structures)f(in)f
9098 (the)h(SUIF)h(library)d(ma)m(y)j(b)s(e)e(deallo-)150
9099 3005 y(cated.)54 b(Although)34 b(this)g(is)f(not)i(absolutely)e
9100 (necessary)-8 b(,)37 b(it)d(ma)m(y)h(simplify)d(debugging)h(b)m(y)h
9101 (making)g(it)150 3114 y(easier)c(to)g(read)g(the)g(output)f(from)h
9102 (Purify)d(and)j(other)g(to)s(ols.)40 b(Besides)29 b(deallo)s(cating)g
9103 (the)h(data)h(struc-)150 3224 y(tures,)37 b(it)e(ma)m(y)h(someda)m(y)h
9104 (b)s(e)e(useful)e(to)k(p)s(erform)d(other)i(actions)g(at)g(the)g(end)f
9105 (of)h(a)g(SUIF)f(program.)150 3334 y(The)25 b Fi(exit_suif)f
9106 Fn(function)g(is)h(pro)m(vided)f(to)j(p)s(erform)d(this)h
9107 (\014nalization.)38 b(If)25 b(used,)h(it)g(should)e(b)s(e)h(called)150
9108 3443 y(at)31 b(the)g(v)m(ery)f(end)g(of)h(the)f(program.)275
9109 3570 y(Besides)d(the)h(base)g(SUIF)g(library)-8 b(,)27
9110 b(man)m(y)h(SUIF)g(programs)g(are)g(link)m(ed)e(with)h(other)h
9111 (libraries)d(that)150 3679 y(also)33 b(need)h(to)g(b)s(e)f
9112 (initialized.)47 b(Rather)34 b(than)f(just)g(initializing)c(them)34
9113 b(directly)-8 b(,)34 b(they)f(are)h(registered)150 3789
9114 y(with)25 b(the)i(SUIF)f(library)e(along)i(with)f(initialization)f(and)
9115 h(\014nalization)g(functions.)38 b(The)26 b(initialization)150
9116 3898 y(functions)42 b(are)h(then)g(called)g(automatically)g(b)m(y)g
9117 Fi(init_suif)e Fn(and)h(the)i(\014nalization)d(functions)h(b)m(y)150
9118 4008 y Fi(exit_suif)p Fn(.)55 b(This)34 b(allo)m(ws)h(the)h(SUIF)f
9119 (library)f(to)i(record)g(and)f(prin)m(t)g(v)m(ersion)g(n)m(um)m(b)s
9120 (ers)f(and)i(other)150 4118 y(information)27 b(for)h(all)f(of)h(the)g
9121 (libraries)e(link)m(ed)g(with)h(a)i(program.)40 b(The)27
9122 b Fi(register_library)d Fn(function)150 4227 y(records)k(the)g(name,)h
9123 (v)m(ersion,)g(and)e(compilation)g(information)g(for)h(a)g(library)e
9124 (along)i(with)f(p)s(oin)m(ters)g(to)150 4337 y(the)32
9125 b(functions)f(to)h(initialize)e(and)h(\014nalize)g(that)h(library)-8
9126 b(.)44 b(The)32 b(initialization)c(function)j(m)m(ust)h(matc)m(h)150
9127 4446 y(the)39 b Fi(lib_init_f)e Fn(t)m(yp)s(e,)k(whic)m(h)d(tak)m(es)j
9128 (the)e Fi(argc)f Fn(and)g Fi(argv)g Fn(parameters)i(for)e(the)i
9129 (command)f(line)150 4556 y(and)e(returns)g Fi(void)p
9130 Fn(.)63 b(Similarly)-8 b(,)37 b(the)h(\014nalization)e(function)h(m)m
9131 (ust)h(matc)m(h)h(the)f Fi(lib_exit_f)e Fn(t)m(yp)s(e,)150
9132 4666 y(whic)m(h)f(tak)m(es)i(no)f(argumen)m(ts)h(and)e(returns)g
9133 Fi(void)p Fn(.)57 b(The)36 b(parameters)g(for)g(the)g(name,)i(v)m
9134 (ersion,)g(and)150 4775 y(compilation)d(information)g(are)j(required,)e
9135 (but)g(the)h(initialization)d(and)i(\014nalization)f(functions)h(are)
9136 150 4885 y(optional.)k(The)29 b(libraries)d(m)m(ust)j(b)s(e)g
9137 (registered,)h(in)e(the)i(order)f(in)f(whic)m(h)g(they)i(should)d(b)s
9138 (e)i(initialized,)150 4994 y(b)s(efore)d(calling)e Fi(init_suif)p
9139 Fn(.)37 b(The)25 b(\014nalization)g(functions)f(are)i(called)g(in)e
9140 (the)i(rev)m(erse)h(order)f(in)e(whic)m(h)150 5104 y(the)31
9141 b(libraries)c(w)m(ere)k(registered.)275 5230 y(The)39
9142 b(situation)g(is)f(m)m(uc)m(h)i(simpler)e(if)h(y)m(ou)h(use)f(the)h
9143 (standard)f(SUIF)h(mak)m(e\014les.)69 b(These)40 b(mak)m(e-)150
9144 5340 y(\014les)33 b(automatically)g(generate)j(strings)c(holding)g(the)
9145 i(v)m(ersion)f(and)h(compilation)e(information.)49 b(The)p
9147 %%Page: 87 89
9148 87 88 bop 150 -116 a Fn(Chapter)30 b(12:)41 b(Other)30
9149 b(F)-8 b(eatures)32 b(of)e(the)h(SUIF)f(Library)1570
9150 b(87)150 299 y Fi(LIBRARY)25 b Fn(macro)i(ma)m(y)h(b)s(e)e(used)g(to)i
9151 (register)f(a)g(library)d(using)i(these)h(v)m(ersion)f(strings.)39
9152 b(Y)-8 b(ou)27 b(only)f(need)150 408 y(to)32 b(sp)s(ecify)e(the)h(base)
9153 g(name)h(of)f(the)g(library)e(and)i(the)g(names)g(of)h(the)f
9154 (initialization)d(and)j(\014nalization)150 518 y(functions)513
9155 485 y Fg(1)549 518 y Fn(.)57 b(T)-8 b(o)36 b(mak)m(e)h(things)e(ev)m
9156 (en)h(easier,)i(the)e(SUIF)g(mak)m(e\014les)f(also)h(generate)i(a)e
9157 (new)f(function)150 628 y(called)k Fi(start_suif)p Fn(.)66
9158 b(This)38 b(function)h(automatically)g(registers)h(all)e(of)i(the)g
9159 (libraries)d(link)m(ed)h(with)150 737 y(the)32 b(program)g(and)f(then)h
9160 (calls)f Fi(init_suif)p Fn(.)42 b(So)32 b(to)h(mak)m(e)f(a)h(long)e
9161 (story)h(short,)g(if)f(a)i(SUIF)e(program)150 847 y(b)s(egins)k(with)g
9162 (a)i(call)f(to)h Fi(start_suif)c Fn(all)j(of)g(the)h(libraries)c(will)h
9163 (b)s(e)i(automatically)g(registered)h(and)150 956 y(initialized.)150
9164 1251 y Fl(12.6)68 b(Command-Line)46 b(P)l(arser)275 1459
9165 y Fn(The)30 b(SUIF)h(library)d(pro)m(vides)i(a)h(generic)g(in)m
9166 (terface)g(for)g(a)g(command)g(line)e(parser.)41 b(The)31
9167 b(parser)f(is)150 1568 y(de\014ned)e(and)h(implemen)m(ted)f(in)g(the)h
9168 (\014les)g(`)p Fi(cmdparse.h)p Fn(')e(and)h(`)p Fi(cmdparse.cc)p
9169 Fn('.)38 b(The)29 b(SUIF)g(program)150 1678 y(can)e(pro)m(vide)g(a)g
9170 (structure)g(that)h(con)m(tains)f(a)h(list)d(of)j(command)f(line)e
9171 (options,)j(the)f(t)m(yp)s(e)g(of)h(argumen)m(ts)150
9172 1787 y(these)35 b(options)f(can)h(handle,)f(and)g(p)s(oin)m(ters)f(to)i
9173 (data)g(where)f(the)h(argumen)m(t)g(v)-5 b(alues)34 b(will)e(b)s(e)i
9174 (stored.)150 1897 y(The)c(data)i(lo)s(cations)e(will)e(b)s(e)i
9175 (initialized)d(to)32 b(default)e(v)-5 b(alues)30 b(sp)s(eci\014ed)f(in)
9176 g(the)i(options)f(table)g(b)s(efore)150 2007 y(parsing)d(b)s(egins.)38
9177 b(The)28 b Fi(parse_cmd_line)c Fn(function)j(is)h(called)f(with)g
9178 Fi(argc)p Fn(,)h Fi(argv)p Fn(,)g(the)g(options)g(table,)150
9179 2116 y(and)43 b(the)h(n)m(um)m(b)s(er)e(of)i(options)f(in)f(the)i
9180 (table.)80 b(If)43 b(the)h(parser)f(\014nds)f(one)i(of)g(the)f(options)
9181 g(on)h(the)150 2226 y(command)35 b(line,)h(the)f(option)g(\(and)h(its)f
9182 (argumen)m(t,)i(if)e(an)m(y\))h(are)g(remo)m(v)m(ed)g(from)f
9183 Fi(argv)g Fn(and)g Fi(argc)f Fn(is)150 2335 y(appropriately)j
9184 (adjusted.)66 b(Th)m(us)38 b(when)g(parsing)f(is)h(\014nished,)h
9185 Fi(argv)e Fn(con)m(tains)j(only)e(unrecognized)150 2445
9186 y(options)30 b(\(suc)m(h)g(as)h(\014le)e(names\).)275
9187 2594 y(The)g(follo)m(wing)g(t)m(yp)s(es)i(of)f(argumen)m(ts)h(are)g
9188 (supp)s(orted:)150 2776 y Fi(CLO_NOARG)630 2886 y Fn(No)k(argumen)m(t)h
9189 (is)e(exp)s(ected.)54 b(The)35 b(default)f(v)-5 b(alue)34
9190 b(is)g(0.)55 b(If)34 b(the)h(argumen)m(t)h(is)e(presen)m(t,)630
9191 2995 y(the)d(v)-5 b(alue)29 b(b)s(ecomes)i(1.)150 3170
9192 y Fi(CLO_INT)84 b Fn(A)30 b(single)g(in)m(teger)g(is)g(exp)s(ected.)150
9193 3344 y Fi(CLO_STRING)630 3454 y Fn(A)g(single)g(string)f(is)g(exp)s
9194 (ected.)150 3628 y Fi(CLO_MULTI_STRING)630 3738 y Fn(A)36
9195 b(single)f(string)h(is)f(exp)s(ected)i(for)f(eac)m(h)i(o)s(ccurrence)e
9196 (of)h(this)e(option,)i(but)f(the)g(option)630 3847 y(can)31
9197 b(b)s(e)e(rep)s(eated)i(with)e(di\013eren)m(t)h(argumen)m(ts.)275
9198 4029 y(F)-8 b(or)31 b(example:)390 4173 y Fi(static)46
9199 b(boolean)g(quiet;)390 4277 y(static)g(int)h(size;)390
9200 4380 y(static)f(cmd_line_option)e(my_options[])g(=)k({)581
9201 4484 y({)f(CLO_NOARG,)e("-quiet",)h("",)h(&quiet)f(},)581
9202 4588 y({)h(CLO_INT,)f("-size",)f("8",)i(&size)f(})390
9203 4692 y(};)390 4899 y(parse_cmd_line\(argc,)c(argv,)47
9204 b(my_options,)1106 5003 y(sizeof\(my_options\)/sizeo)o(f\(cm)o(d_l)o
9205 (ine_)o(opti)o(on\))o(\);)p 150 5131 1200 4 v 192 5197
9206 a Fg(1)275 5230 y Fn(Unlik)m(e)38 b(when)h(calling)g
9207 Fi(register_library)c Fn(directly)-8 b(,)42 b(the)e(function)f(argumen)
9208 m(ts)h(are)h(required)275 5340 y(when)29 b(using)g(the)h
9209 Fi(LIBRARY)f Fn(macro.)p eop
9210 %%Page: 88 90
9211 88 89 bop 150 -116 a Fn(88)2385 b(The)30 b(SUIF)g(V)-8
9212 b(ersion)30 b(1)h(Library)150 299 y Fl(12.7)68 b(Error)46
9213 b(Handling)275 492 y Fn(The)21 b(SUIF)h(library)e(includes)f(a)k(n)m
9214 (um)m(b)s(er)d(of)j(functions)d(for)i(error)g(handling.)35
9215 b(These)22 b(functions)e(han-)150 602 y(dle)25 b(three)h(kinds)e(of)h
9216 (problems:)37 b(errors,)26 b(w)m(arnings,)g(and)f(assertions.)39
9217 b(Assertions)25 b(are)h(tests)h(for)e(things)150 711
9218 y(that)36 b(should)e(nev)m(er)i(o)s(ccur)g(in)f(a)h(correct)h(program.)
9219 57 b(An)m(y)36 b(problem)e(that)j(could)e(p)s(oten)m(tially)f(o)s(ccur)
9220 150 821 y(in)28 b(a)h(correct)i(program)e(due)f(to)i(bad)e(input)g(or)h
9221 (other)g(external)g(conditions)f(should)f(b)s(e)i(treated)h(as)f(an)150
9222 930 y(error)f(rather)h(than)f(an)h(assertion)f(failure.)39
9223 b(W)-8 b(arnings)28 b(are)h(used)f(to)h(rep)s(ort)f(p)s(oten)m(tially)f
9224 (troublesome)150 1040 y(conditions)i(that)i(are)g(not)f(serious)f
9225 (enough)i(to)g(cause)g(a)f(fatal)h(error.)275 1175 y(Tw)m(o)39
9226 b(macros)g(are)g(a)m(v)-5 b(ailable)39 b(to)g(implemen)m(t)f
9227 (assertions.)66 b(The)38 b Fi(assert)f Fn(macro)j(tak)m(es)g(a)f
9228 (single)150 1285 y(expression)24 b(as)h(an)f(argumen)m(t.)40
9229 b(If)24 b(the)h(expression)f(ev)-5 b(aluates)25 b(to)h(zero,)g(a)g
9230 (message)g(is)d(prin)m(ted)h(sho)m(wing)150 1394 y(the)42
9231 b(curren)m(t)f(line)f(n)m(um)m(b)s(er,)k(\014le)d(name,)k(and)c(the)h
9232 (expression)e(that)j(failed,)g(and)e(then)g(the)h Fi(abort)150
9233 1504 y Fn(function)h(is)h(called)g(to)i(terminate)e(the)h(program.)84
9234 b(The)44 b Fi(assert_msg)e Fn(macro)j(is)f(similar)e(except)150
9235 1614 y(that)29 b(it)f(also)g(prin)m(ts)f(a)i(user-de\014ned)d(message)k
9236 (if)d(the)h(assertion)g(fails.)39 b(Besides)28 b(the)g(expression)g(to)
9237 h(b)s(e)150 1723 y(tested,)d Fi(assert_msg)21 b Fn(tak)m(es)k(an)e
9238 (argumen)m(t)h(that)g(con)m(tains)g(the)f(message)i(to)f(b)s(e)f(prin)m
9239 (ted.)37 b(This)22 b(second)150 1833 y(argumen)m(t)36
9240 b(m)m(ust)g(hold)f(the)h Fi(printf)e Fn(format)i(string)f(and)g(the)i
9241 (argumen)m(ts)f(for)f(the)i(call)e(to)h Fi(printf)p Fn(,)150
9242 1942 y(separated)28 b(b)m(y)f(commas.)40 b(T)-8 b(o)28
9243 b(k)m(eep)g(the)g(commas)g(from)e(splitting)f(up)i(the)g(second)h
9244 (argumen)m(t,)g(it)f(m)m(ust)150 2052 y(b)s(e)j(surrounded)d(b)m(y)k
9245 (paren)m(theses.)41 b(F)-8 b(or)31 b(example:)390 2181
9246 y Fi(assert_msg\(sym->parent\(\))o(,)42 b(\("no)47 b(parent)f(for)h
9247 (\045s",)f(sym->name\(\)\)\);)275 2316 y Fn(Errors)34
9248 b(ma)m(y)j(b)s(e)e(rep)s(orted)h(using)e(the)i Fi(error_line)e
9249 Fn(function.)56 b(The)36 b Fi(return_code)c Fn(parameter)150
9250 2426 y(sp)s(eci\014es)d(the)i(metho)s(d)e(of)i(terminating)e(the)i
9251 (program.)40 b(If)30 b(the)h(return)e(co)s(de)i(is)e(negativ)m(e,)j
9252 (the)e Fi(abort)150 2535 y Fn(function)j(is)g(called.)50
9253 b(If)34 b(it)f(is)g(greater)i(than)f(zero,)i(the)e Fi(exit)f
9254 Fn(function)g(is)g(called)g(with)f(the)j(sp)s(eci\014ed)150
9255 2645 y(return)c(co)s(de.)47 b(If)32 b(the)g(return)f(co)s(de)i(is)e
9256 (zero,)j(the)f(error)f(message)h(will)d(b)s(e)h(prin)m(ted)g(but)h(the)
9257 g(program)150 2755 y(will)e(not)i(terminate.)47 b(The)32
9258 b Fi(the_node)e Fn(parameter)j(is)e(optional)h(and)f(ma)m(y)i(b)s(e)f
9259 (set)h(to)g Fi(NULL)p Fn(.)46 b(If)31 b(used,)150 2864
9260 y(it)44 b(p)s(oin)m(ts)g(to)h(the)g(AST)e(no)s(de)h(closest)h(to)h(the)
9261 f(p)s(oin)m(t)e(where)h(the)h(error)f(w)m(as)h(detected,)50
9262 b(and)44 b(the)150 2974 y(library)30 b(tries)i(to)h(use)f(it)g(to)i
9263 (\014nd)d(and)h(prin)m(t)f(the)h(corresp)s(onding)f(source)h(line)f(n)m
9264 (um)m(b)s(er.)46 b(Finally)-8 b(,)32 b(the)150 3083 y
9265 Fi(fmt)f Fn(parameter)h(sp)s(eci\014es)f(the)h Fi(printf)e
9266 Fn(format)i(string)f(used)g(to)i(prin)m(t)e(the)h(error)f(message)i
9267 (and)f(an)m(y)150 3193 y(additional)f(parameters)i(are)g(passed)f(on)h
9268 (to)g Fi(printf)p Fn(.)46 b(The)33 b Fi(verror_line)c
9269 Fn(function)j(is)g(iden)m(tical)f(to)150 3303 y Fi(error_line)c
9270 Fn(except)j(that)g(it)f(passes)g(the)h(v)-5 b(ariable)28
9271 b(argumen)m(ts)i(for)f Fi(printf)f Fn(using)f(a)j Fi(varargs)p
9272 Fn(-st)m(yle)150 3412 y(list.)39 b(This)29 b(is)g(just)h(lik)m(e)g(the)
9273 g(standard)g Fi(vprintf)e Fn(function.)275 3547 y(The)33
9274 b Fi(warning_line)d Fn(and)j Fi(vwarning_line)e Fn(functions)h(are)i
9275 (just)f(lik)m(e)h(the)g(corresp)s(onding)d(error)150
9276 3657 y(functions,)44 b(except)f(that)g(they)f(prin)m(t)f(w)m(arning)g
9277 (messages)i(and)f(do)g(not)g(terminate)h(the)f(program.)150
9278 3766 y(Consequen)m(tly)-8 b(,)30 b(they)h(do)f(not)h(ha)m(v)m(e)g
9279 Fi(return_code)d Fn(parameters.)150 4025 y Fl(12.8)68
9280 b(Pro)t(cedure)45 b(Iterators)275 4219 y Fn(Most)25 b(SUIF)f(programs)g
9281 (w)m(ork)h(on)f(one)h(pro)s(cedure)e(at)i(a)g(time.)38
9282 b(These)24 b(programs)g(require)g(basically)150 4328
9283 y(the)31 b(same)g(co)s(de)f(to)i(iterate)f(through)f(the)g(\014le)g
9284 (set)h(en)m(tries)f(and)g(pro)s(cedures.)40 b(The)30
9285 b Fi(suif_proc_iter)150 4438 y Fn(routine)f(is)h(pro)m(vided)f(to)i
9286 (handle)e(this)g(common)i(case.)275 4573 y(Before)45
9287 b(calling)d(the)i(pro)s(cedure)f(iterator,)48 b(y)m(ou)d(m)m(ust)e
9288 (initialize)f(the)i(SUIF)g(library)d(\(see)k(Sec-)150
9289 4682 y(tion)36 b(12.5)i([Initialization],)f(page)g(85\),)j(whic)m(h)35
9290 b(also)i(parses)f(and)g(remo)m(v)m(es)i(some)f(standard)f(options)150
9291 4792 y(from)k(the)g(command-line)f(argumen)m(ts.)71 b(Either)39
9292 b(the)i(SUIF)f(library's)e(command-line)g(parser)i(\(see)150
9293 4902 y(Section)32 b(12.6)i([Command-Line)d(P)m(arser],)i(page)g(87\))h
9294 (or)e(the)h Fi(getopt)d Fn(function)h(\(from)h(the)h(standard)150
9295 5011 y(C)f(library\))f(ma)m(y)i(b)s(e)f(called)g(b)s(efore)g(the)h(pro)
9296 s(cedure)e(iterator)i(to)g(parse)g(command-line)e(options)h(not)150
9297 5121 y(remo)m(v)m(ed)i(b)m(y)g(the)f(library)e(initialization.)47
9298 b(The)33 b Fi(suif_proc_iter)c Fn(function)j(then)h(reads)g(the)h
9299 (input)150 5230 y(and)d(output)f(\014le)h(names)g(from)g(the)g
9300 (command-line.)42 b(The)31 b(\014rst)f(\014le)g(name)i(on)f(the)g
9301 (command)g(line)f(is)150 5340 y(treated)g(as)g(an)f(input)e(\014le.)39
9302 b(If)29 b(the)h Fi(writeback)c Fn(\015ag)k(is)e(set,)i(the)g(second)f
9303 (\014le)f(is)h(treated)h(as)f(an)g(output)p eop
9304 %%Page: 89 91
9305 89 90 bop 150 -116 a Fn(Chapter)30 b(12:)41 b(Other)30
9306 b(F)-8 b(eatures)32 b(of)e(the)h(SUIF)f(Library)1570
9307 b(89)150 299 y(\014le)27 b(and)g(an)m(y)h(additional)d(\014le)i(names)h
9308 (on)f(the)h(command)g(line)e(are)i(alternately)f(treated)i(as)f(input)e
9309 (and)150 408 y(output)k(\014les.)40 b(If)30 b(the)g Fi(writeback)e
9310 Fn(\015ag)j(is)e(not)i(set,)g(all)e(the)i(\014le)e(names)h(are)h
9311 (treated)h(as)e(input)f(\014les.)275 543 y(The)40 b(pro)s(cedure)f(b)s
9312 (o)s(dies)g(are)i(then)g(read)f(one)i(at)f(a)g(time)g(and)f(pro)s
9313 (cessed)g(b)m(y)h(a)g(user-sp)s(eci\014ed)150 653 y(function.)49
9314 b(This)31 b(function)i(m)m(ust)g(b)s(e)g(of)g(the)h(t)m(yp)s(e)g
9315 Fi(prociter_f)p Fn(,)d(whic)m(h)i(tak)m(es)h(a)g(single)e
9316 Fi(tree_proc)150 762 y Fn(argumen)m(t)d(and)f(has)g(a)h
9317 Fi(void)e Fn(return)g(t)m(yp)s(e.)41 b(When)28 b(a)h(pro)s(cedure)e(is)
9318 h(read,)h(the)f Fi(exp_trees)e Fn(and)i Fi(use_)150 872
9319 y(fortran_form)f Fn(parameters)k(are)g(passed)f(on)g(to)h(the)g
9320 Fi(read_proc)d Fn(metho)s(d)i(for)g(the)h Fi(proc_sym)p
9321 Fn(.)38 b(The)150 981 y Fi(exp_trees)f Fn(argumen)m(t)i(sp)s(eci\014es)
9322 f(whether)h(the)g(pro)s(cedure)f(b)s(o)s(dies)f(are)j(con)m(v)m(erted)g
9323 (to)g(expression)150 1091 y(trees)c(\(see)h(Section)e(4.3)i
9324 ([Expression)d(T)-8 b(rees],)38 b(page)f(28\),)h(and)d(the)h
9325 Fi(use_fortran_form)31 b Fn(argumen)m(t)150 1200 y(determines)d
9326 (whether)g(F)-8 b(ortran)30 b(form)e(is)g(used)g(\(see)i(Chapter)e(10)i
9327 ([F)-8 b(ortran],)30 b(page)g(77\).)42 b(The)28 b(defaults)150
9328 1310 y(are)h(to)g(create)i(expression)c(trees)i(but)f(not)h(to)h(use)e
9329 (F)-8 b(ortran)29 b(form.)40 b(If)28 b(the)h Fi(writeback)d
9330 Fn(\015ag)j(is)f(set,)i(the)150 1420 y(pro)s(cedure)f(b)s(o)s(dies)g
9331 (are)h(written)g(to)h(the)f(output)g(\014les)g(after)h(they)f(ha)m(v)m
9332 (e)i(b)s(een)d(pro)s(cessed.)p eop
9333 %%Page: 90 92
9334 90 91 bop 150 -116 a Fn(90)2385 b(The)30 b(SUIF)g(V)-8
9335 b(ersion)30 b(1)h(Library)p eop
9336 %%Page: 91 93
9337 91 92 bop 150 -116 a Fn(App)s(endix)3120 b(91)150 299
9338 y Fj(App)t(endix)150 656 y Fl(Class)46 b(Inheritance)f(of)h(Ma)7
9339 b(jor)45 b(SUIF)g(Structures)275 848 y Fn(All)e(ma)5
9340 b(jor)46 b(SUIF)f(data)h(structures)e(are)i(deriv)m(ed)e(from)h(the)g
9341 Fi(suif_object)d Fn(base)k(class.)85 b(See)150 958 y(Section)35
9342 b(8.7)h([SUIF)f(Ob)5 b(jects],)36 b(page)g(70.)55 b(The)35
9343 b(class)g Fi(file_set_entry)c Fn(is)j(de\014ned)f(in)h(Section)h(2.2)
9344 150 1068 y([File)43 b(Set)g(En)m(tries],)j(page)e(8,)j(the)d(class)f
9345 Fi(tree_node)d Fn(and)j(its)g(deriv)m(ed)f(classes)h(are)h(explained)d
9346 (in)150 1177 y(Section)31 b(3.1)g([T)-8 b(ree)32 b(No)s(des],)f(page)h
9347 (11,)g(the)f(class)f Fi(sym_node)f Fn(and)h(its)g(deriv)m(ed)g(classes)
9348 h(are)g(describ)s(ed)150 1287 y(in)d(Chapter)h(6)h([Sym)m(b)s(ols],)f
9349 (page)h(45,)h(the)e(class)g Fi(type_node)e Fn(and)i(its)g(deriv)m(ed)g
9350 (classes)g(are)h(de\014ned)e(in)150 1396 y(Chapter)36
9351 b(7)h([T)m(yp)s(es],)h(page)f(53,)i(the)e(class)f Fi(instruction)d
9352 Fn(and)j(its)g(deriv)m(ed)g(classes)g(are)h(de\014ned)e(in)150
9353 1506 y(Chapter)c(4)h([Instructions],)f(page)h(23)h(and)e(the)h(class)f
9354 Fi(var_def)f Fn(is)g(de\014ned)h(in)f(Section)i(6.4)g([V)-8
9355 b(ariable)150 1616 y(Sym)m(b)s(ols],)29 b(page)i(47.)150
9356 1757 y
9357  28417720 20460758 1184071 14208860 51836026 50915082 startTexFig
9358  150 1757 a
9359 %%BeginDocument: suif_inherit.epsf
9360 %!PS-Adobe-2.0 EPSF-1.2
9361 %%BoundingBox: 18 216 788 774
9362 %%DocumentFonts: (atend)
9363 %%EndComments
9365 % FrameMaker PostScript Prolog 3.0, for use with FrameMaker 3.0
9366 % Copyright (c) 1986,87,89,90,91 by Frame Technology Corporation.
9367 % All rights reserved.
9369 % Modified to be sort of EPSF-compliant by bwilson@shasta.stanford.edu
9371 % Known Problems:
9372 %       - setscreen and settransfer are not EPSF-compliant but I think they
9373 %         will work anyway.
9374 %       - since Frame doesn't really calculate bounding boxes, you need to
9375 %         edit the output and manually determine the size of the bounding box
9377 /FMversion (3.0) def 
9378 % Set up Color vs. Black-and-White
9379         /FMPrintInColor systemdict /colorimage known
9380                 systemdict /currentcolortransfer known or def
9381 % Uncomment this line to force b&w on color printer
9382 %   /FMPrintInColor false def
9383 /FrameDict 195 dict def 
9384 systemdict /errordict known not {/errordict 10 dict def
9385                 errordict /rangecheck {stop} put} if
9386 % The readline in 23.0 doesn't recognize cr's as nl's on AppleTalk
9387 FrameDict /tmprangecheck errordict /rangecheck get put 
9388 errordict /rangecheck {FrameDict /bug true put} put 
9389 FrameDict /bug false put 
9390 mark 
9391 % Some PS machines read past the CR, so keep the following 3 lines together!
9392 currentfile 5 string readline
9394 0000000000
9395 cleartomark 
9396 errordict /rangecheck FrameDict /tmprangecheck get put 
9397 FrameDict /bug get { 
9398         /readline {
9399                 /gstring exch def
9400                 /gfile exch def
9401                 /gindex 0 def
9402                 {
9403                         gfile read pop 
9404                         dup 10 eq {exit} if 
9405                         dup 13 eq {exit} if 
9406                         gstring exch gindex exch put 
9407                         /gindex gindex 1 add def 
9408                 } loop
9409                 pop 
9410                 gstring 0 gindex getinterval true 
9411                 } def
9412         } if
9413 /FMVERSION {
9414         FMversion ne {
9415                 /Times-Roman findfont 18 scalefont setfont
9416                 100 100 moveto
9417                 (FrameMaker version does not match postscript_prolog!)
9418                 dup =
9419                 show showpage
9420                 } if
9421         } def 
9422 /FMLOCAL {
9423         FrameDict begin
9424         0 def 
9425         end 
9426         } def 
9427         /gstring FMLOCAL
9428         /gfile FMLOCAL
9429         /gindex FMLOCAL
9430         /orgxfer FMLOCAL
9431         /orgproc FMLOCAL
9432         /organgle FMLOCAL
9433         /orgfreq FMLOCAL
9434 /FMDOCUMENT { 
9435         array /FMfonts exch def 
9436         FrameDict begin
9437         pop
9438         pop
9439         pop
9440         pop
9441         /yscale exch def
9442         /xscale exch def
9443         currenttransfer cvlit /orgxfer exch def
9444         currentscreen cvlit /orgproc exch def
9445         /organgle exch def /orgfreq exch def
9446         end 
9447         } def 
9448         /pagesave FMLOCAL
9449         /orgmatrix FMLOCAL
9450         /landscape FMLOCAL
9451 /FMBEGINPAGE { 
9452         FrameDict begin 
9453         /pagesave save def
9454         3.86 setmiterlimit
9455         pop pop pop
9456         /landscape false def
9457         xscale yscale scale
9458         /orgmatrix matrix def
9459         gsave 
9460         } def 
9461 /FMENDPAGE {
9462         grestore 
9463         pagesave restore
9464         end 
9465         showpage
9466         } def 
9467 /FMFONTDEFINE { 
9468         FrameDict begin
9469         findfont 
9470         ReEncode 
9471         1 index exch 
9472         definefont 
9473         FMfonts 3 1 roll 
9474         put
9475         end 
9476         } def 
9477 /FMFILLS {
9478         FrameDict begin
9479         array /fillvals exch def
9480         end 
9481         } def 
9482 /FMFILL {
9483         FrameDict begin
9484         fillvals 3 1 roll put
9485         end 
9486         } def 
9487 /FMNORMALIZEGRAPHICS { 
9488         newpath
9489         0.0 0.0 moveto
9490         1 setlinewidth
9491         0 setlinecap
9492         0 0 0 sethsbcolor
9493         0 setgray 
9494         } bind def
9495         /fx FMLOCAL
9496         /fy FMLOCAL
9497         /fh FMLOCAL
9498         /fw FMLOCAL
9499         /llx FMLOCAL
9500         /lly FMLOCAL
9501         /urx FMLOCAL
9502         /ury FMLOCAL
9503 /FMBEGINEPSF { 
9504         end 
9505         /FMEPSF save def 
9506         /showpage {} def 
9507         FMNORMALIZEGRAPHICS 
9508         [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall 
9509         fx fy translate 
9510         rotate
9511         fw urx llx sub div fh ury lly sub div scale 
9512         llx neg lly neg translate 
9513         } bind def
9514 /FMENDEPSF {
9515         FMEPSF restore
9516         FrameDict begin 
9517         } bind def
9518 FrameDict begin 
9519 /max {2 copy lt {exch} if pop} bind def
9520 /min {2 copy gt {exch} if pop} bind def
9521 /inch {72 mul} def
9522 /savematrix {
9523         orgmatrix currentmatrix pop
9524         } bind def
9525 /restorematrix {
9526         orgmatrix setmatrix
9527         } bind def
9528 /dmatrix matrix def
9529 /dpi    72 0 dmatrix defaultmatrix dtransform
9530     dup mul exch   dup mul add   sqrt def
9531 /freq dpi 18.75 div 8 div round dup 0 eq {pop 1} if 8 mul dpi exch div def
9532 /sangle 1 0 dmatrix defaultmatrix dtransform exch atan def
9533 /DiacriticEncoding [
9534 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
9535 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
9536 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
9537 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
9538 /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl
9539 /numbersign /dollar /percent /ampersand /quotesingle /parenleft
9540 /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
9541 /two /three /four /five /six /seven /eight /nine /colon /semicolon
9542 /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K
9543 /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash
9544 /bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h
9545 /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar
9546 /braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute
9547 /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis
9548 /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis
9549 /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve
9550 /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex
9551 /udieresis /dagger /.notdef /cent /sterling /section /bullet
9552 /paragraph /germandbls /registered /copyright /trademark /acute
9553 /dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef
9554 /yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
9555 /ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown
9556 /exclamdown /logicalnot /.notdef /florin /.notdef /.notdef
9557 /guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde
9558 /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright
9559 /quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis
9560 /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl
9561 /periodcentered /quotesinglbase /quotedblbase /perthousand
9562 /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute
9563 /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve
9564 /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron
9565 /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron
9566 ] def
9567 /ReEncode { 
9568         dup 
9569         length 
9570         dict begin 
9571         {
9572         1 index /FID ne 
9573                 {def} 
9574                 {pop pop} ifelse 
9575         } forall 
9576         0 eq {/Encoding DiacriticEncoding def} if 
9577         currentdict 
9578         end 
9579         } bind def
9580 /graymode true def
9581         /bwidth FMLOCAL
9582         /bpside FMLOCAL
9583         /bstring FMLOCAL
9584         /onbits FMLOCAL
9585         /offbits FMLOCAL
9586         /xindex FMLOCAL
9587         /yindex FMLOCAL
9588         /x FMLOCAL
9589         /y FMLOCAL
9590 /setpattern {
9591          /bwidth  exch def
9592          /bpside  exch def
9593          /bstring exch def
9594          /onbits 0 def  /offbits 0 def
9595          freq sangle landscape {90 add} if 
9596                 {/y exch def
9597                  /x exch def
9598                  /xindex x 1 add 2 div bpside mul cvi def
9599                  /yindex y 1 add 2 div bpside mul cvi def
9600                  bstring yindex bwidth mul xindex 8 idiv add get
9601                  1 7 xindex 8 mod sub bitshift and 0 ne
9602                  {/onbits  onbits  1 add def 1}
9603                  {/offbits offbits 1 add def 0}
9604                  ifelse
9605                 }
9606                 setscreen
9607          {} settransfer
9608          offbits offbits onbits add div FMsetgray
9609         /graymode false def
9610         } bind def
9611 /grayness {
9612         FMsetgray
9613         graymode not {
9614                 /graymode true def
9615                 orgxfer cvx settransfer
9616                 orgfreq organgle orgproc cvx setscreen
9617                 } if
9618         } bind def
9619         /HUE FMLOCAL
9620         /SAT FMLOCAL
9621         /BRIGHT FMLOCAL
9622         /Colors FMLOCAL
9623 FMPrintInColor
9625         {
9626         /HUE 0 def
9627         /SAT 0 def
9628         /BRIGHT 0 def
9629         % array of arrays Hue and Sat values for the separations [HUE BRIGHT]
9630         /Colors   
9631         [[0    0  ]    % black
9632          [0    0  ]    % white
9633          [0.00 1.0]    % red
9634          [0.37 1.0]    % green
9635          [0.60 1.0]    % blue
9636          [0.60 1.0]    % cyan
9637          [0.83 1.0]    % magenta
9638          [0.16 1.0]    % comment / yellow
9639          ] def
9640       
9641         /BEGINBITMAPCOLOR { 
9642                 BITMAPCOLOR} def
9643         /BEGINBITMAPCOLORc { 
9644                 BITMAPCOLORc} def
9645         /BEGINBITMAPTRUECOLOR { 
9646                 BITMAPTRUECOLOR } def
9647         /BEGINBITMAPTRUECOLORc { 
9648                 BITMAPTRUECOLORc } def
9649         /K { 
9650                 Colors exch get dup
9651                 0 get /HUE exch store 
9652                 1 get /BRIGHT exch store
9653                   HUE 0 eq BRIGHT 0 eq and
9654                         {1.0 SAT sub setgray}
9655                         {HUE SAT BRIGHT sethsbcolor} 
9656                   ifelse
9657                 } def
9658         /FMsetgray { 
9659                 /SAT exch 1.0 exch sub store 
9660                   HUE 0 eq BRIGHT 0 eq and
9661                         {1.0 SAT sub setgray}
9662                         {HUE SAT BRIGHT sethsbcolor} 
9663                   ifelse
9664                 } bind def
9665         }
9666         
9667         {
9668         /BEGINBITMAPCOLOR { 
9669                 BITMAPGRAY} def
9670         /BEGINBITMAPCOLORc { 
9671                 BITMAPGRAYc} def
9672         /BEGINBITMAPTRUECOLOR { 
9673                 BITMAPTRUEGRAY } def
9674         /BEGINBITMAPTRUECOLORc { 
9675                 BITMAPTRUEGRAYc } def
9676         /FMsetgray {setgray} bind def
9677         /K { 
9678                 pop
9679                 } def
9680         }
9681 ifelse
9682 /normalize {
9683         transform round exch round exch itransform
9684         } bind def
9685 /dnormalize {
9686         dtransform round exch round exch idtransform
9687         } bind def
9688 /lnormalize { 
9689         0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop
9690         } bind def
9691 /H { 
9692         lnormalize setlinewidth
9693         } bind def
9694 /Z {
9695         setlinecap
9696         } bind def
9697         /fillvals FMLOCAL
9698 /X { 
9699         fillvals exch get
9700         dup type /stringtype eq
9701         {8 1 setpattern} 
9702         {grayness}
9703         ifelse
9704         } bind def
9705 /V { 
9706         gsave eofill grestore
9707         } bind def
9708 /N { 
9709         stroke
9710         } bind def
9711 /M {newpath moveto} bind def
9712 /E {lineto} bind def
9713 /D {curveto} bind def
9714 /O {closepath} bind def
9715         /n FMLOCAL
9716 /L { 
9717         /n exch def
9718         newpath
9719         normalize
9720         moveto 
9721         2 1 n {pop normalize lineto} for
9722         } bind def
9723 /Y { 
9724         L 
9725         closepath
9726         } bind def
9727         /x1 FMLOCAL
9728         /x2 FMLOCAL
9729         /y1 FMLOCAL
9730         /y2 FMLOCAL
9731         /rad FMLOCAL
9732 /R { 
9733         /y2 exch def
9734         /x2 exch def
9735         /y1 exch def
9736         /x1 exch def
9737         x1 y1
9738         x2 y1
9739         x2 y2
9740         x1 y2
9741         4 Y 
9742         } bind def
9743 /RR { 
9744         /rad exch def
9745         normalize
9746         /y2 exch def
9747         /x2 exch def
9748         normalize
9749         /y1 exch def
9750         /x1 exch def
9751         newpath
9752         x1 y1 rad add moveto
9753         x1 y2 x2 y2 rad arcto
9754         x2 y2 x2 y1 rad arcto
9755         x2 y1 x1 y1 rad arcto
9756         x1 y1 x1 y2 rad arcto
9757         closepath
9758         16 {pop} repeat
9759         } bind def
9760 /C { 
9761         grestore
9762         gsave
9763         R 
9764         clip
9765         } bind def
9766         /FMpointsize FMLOCAL
9767 /F { 
9768         FMfonts exch get
9769         FMpointsize scalefont
9770         setfont
9771         } bind def
9772 /Q { 
9773         /FMpointsize exch def
9774         F 
9775         } bind def
9776 /T { 
9777         moveto show
9778         } bind def
9779 /RF { 
9780         rotate
9781         0 ne {-1 1 scale} if
9782         } bind def
9783 /TF { 
9784         gsave
9785         moveto 
9786         RF
9787         show
9788         grestore
9789         } bind def
9790 /P { 
9791         moveto
9792         0 32 3 2 roll widthshow
9793         } bind def
9794 /PF { 
9795         gsave
9796         moveto 
9797         RF
9798         0 32 3 2 roll widthshow
9799         grestore
9800         } bind def
9801 /S { 
9802         moveto
9803         0 exch ashow
9804         } bind def
9805 /SF { 
9806         gsave
9807         moveto
9808         RF
9809         0 exch ashow
9810         grestore
9811         } bind def
9812 /B { 
9813         moveto
9814         0 32 4 2 roll 0 exch awidthshow
9815         } bind def
9816 /BF { 
9817         gsave
9818         moveto
9819         RF
9820         0 32 4 2 roll 0 exch awidthshow
9821         grestore
9822         } bind def
9823 /G { 
9824         gsave
9825         newpath
9826         normalize translate 0.0 0.0 moveto 
9827         dnormalize scale 
9828         0.0 0.0 1.0 5 3 roll arc 
9829         closepath fill
9830         grestore
9831         } bind def
9832 /A { 
9833         gsave
9834         savematrix
9835         newpath
9836         2 index 2 div add exch 3 index 2 div sub exch 
9837         normalize 2 index 2 div sub exch 3 index 2 div add exch 
9838         translate 
9839         scale 
9840         0.0 0.0 1.0 5 3 roll arc 
9841         restorematrix
9842         stroke
9843         grestore
9844         } bind def
9845         /x FMLOCAL
9846         /y FMLOCAL
9847         /w FMLOCAL
9848         /h FMLOCAL
9849         /xx FMLOCAL
9850         /yy FMLOCAL
9851         /ww FMLOCAL
9852         /hh FMLOCAL
9853         /FMsaveobject FMLOCAL
9854         /FMoptop FMLOCAL
9855         /FMdicttop FMLOCAL
9856 /BEGINPRINTCODE { 
9857         /FMdicttop countdictstack 1 add def 
9858         /FMoptop count 4 sub def 
9859         /FMsaveobject save def
9860         userdict begin 
9861         /showpage {} def 
9862         FMNORMALIZEGRAPHICS 
9863         3 index neg 3 index neg translate
9864         } bind def
9865 /ENDPRINTCODE {
9866         count -1 FMoptop {pop pop} for 
9867         countdictstack -1 FMdicttop {pop end} for 
9868         FMsaveobject restore 
9869         } bind def
9870 /gn { 
9871         0 
9872         {       46 mul 
9873                 cf read pop 
9874                 32 sub 
9875                 dup 46 lt {exit} if 
9876                 46 sub add 
9877                 } loop
9878         add 
9879         } bind def
9880         /str FMLOCAL
9881 /cfs { 
9882         /str sl string def 
9883         0 1 sl 1 sub {str exch val put} for 
9884         str def 
9885         } bind def
9886 /ic [ 
9887         0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
9888         0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
9889         0
9890         {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx}
9891         {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx}
9892         {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12}
9893         {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh}
9894         {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh}
9895         {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl}
9896         {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl}
9897         {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl}
9898         {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl}
9899         ] def
9900         /sl FMLOCAL
9901         /val FMLOCAL
9902         /ws FMLOCAL
9903         /im FMLOCAL
9904         /bs FMLOCAL
9905         /cs FMLOCAL
9906         /len FMLOCAL
9907         /pos FMLOCAL
9908 /ms { 
9909         /sl exch def 
9910         /val 255 def 
9911         /ws cfs 
9912         /im cfs 
9913         /val 0 def 
9914         /bs cfs 
9915         /cs cfs 
9916         } bind def
9917 400 ms 
9918 /ip { 
9919         is 
9920         0 
9921         cf cs readline pop 
9922         {       ic exch get exec 
9923                 add 
9924                 } forall 
9925         pop 
9926         
9927         } bind def
9928 /wh { 
9929         /len exch def 
9930         /pos exch def 
9931         ws 0 len getinterval im pos len getinterval copy pop
9932         pos len 
9933         } bind def
9934 /bl { 
9935         /len exch def 
9936         /pos exch def 
9937         bs 0 len getinterval im pos len getinterval copy pop
9938         pos len 
9939         } bind def
9940 /s1 1 string def
9941 /fl { 
9942         /len exch def 
9943         /pos exch def 
9944         /val cf s1 readhexstring pop 0 get def
9945         pos 1 pos len add 1 sub {im exch val put} for
9946         pos len 
9947         } bind def
9948 /hx { 
9949         3 copy getinterval 
9950         cf exch readhexstring pop pop 
9951         } bind def
9952         /h FMLOCAL
9953         /w FMLOCAL
9954         /d FMLOCAL
9955         /lb FMLOCAL
9956         /bitmapsave FMLOCAL
9957         /is FMLOCAL
9958         /cf FMLOCAL
9959 /wbytes { 
9960         dup 
9961         8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse
9962         } bind def
9963 /BEGINBITMAPBWc { 
9964         1 {} COMMONBITMAPc
9965         } bind def
9966 /BEGINBITMAPGRAYc { 
9967         8 {} COMMONBITMAPc
9968         } bind def
9969 /BEGINBITMAP2BITc { 
9970         2 {} COMMONBITMAPc
9971         } bind def
9972 /COMMONBITMAPc { 
9973         /r exch def
9974         /d exch def
9975         gsave
9976         translate rotate scale /h exch def /w exch def
9977         /lb w d wbytes def 
9978         sl lb lt {lb ms} if 
9979         /bitmapsave save def 
9980         r                    
9981         /is im 0 lb getinterval def 
9982         ws 0 lb getinterval is copy pop 
9983         /cf currentfile def 
9984         w h d [w 0 0 h neg 0 h] 
9985         {ip} image 
9986         bitmapsave restore 
9987         grestore
9988         } bind def
9989 /BEGINBITMAPBW { 
9990         1 {} COMMONBITMAP
9991         } bind def
9992 /BEGINBITMAPGRAY { 
9993         8 {} COMMONBITMAP
9994         } bind def
9995 /BEGINBITMAP2BIT { 
9996         2 {} COMMONBITMAP
9997         } bind def
9998 /COMMONBITMAP { 
9999         /r exch def
10000         /d exch def
10001         gsave
10002         translate rotate scale /h exch def /w exch def
10003         /bitmapsave save def 
10004         r                    
10005         /is w d wbytes string def
10006         /cf currentfile def 
10007         w h d [w 0 0 h neg 0 h] 
10008         {cf is readhexstring pop} image
10009         bitmapsave restore 
10010         grestore
10011         } bind def
10012         /proc1 FMLOCAL
10013         /proc2 FMLOCAL
10014         /newproc FMLOCAL
10015 /Fmcc {
10016     /proc2 exch cvlit def
10017     /proc1 exch cvlit def
10018     /newproc proc1 length proc2 length add array def
10019     newproc 0 proc1 putinterval
10020     newproc proc1 length proc2 putinterval
10021     newproc cvx
10022 } bind def
10023 /ngrayt 256 array def
10024 /nredt 256 array def
10025 /nbluet 256 array def
10026 /ngreent 256 array def
10027         /gryt FMLOCAL
10028         /blut FMLOCAL
10029         /grnt FMLOCAL
10030         /redt FMLOCAL
10031         /indx FMLOCAL
10032         /cynu FMLOCAL
10033         /magu FMLOCAL
10034         /yelu FMLOCAL
10035         /k FMLOCAL
10036         /u FMLOCAL
10037 /colorsetup {
10038         currentcolortransfer
10039         /gryt exch def
10040         /blut exch def
10041         /grnt exch def
10042         /redt exch def
10043         0 1 255 {
10044                 /indx exch def
10045                 /cynu 1 red indx get 255 div sub def
10046                 /magu 1 green indx get 255 div sub def
10047                 /yelu 1 blue indx get 255 div sub def
10048                 /k cynu magu min yelu min def
10049                 /u k currentundercolorremoval exec def
10050                 nredt indx 1 0 cynu u sub max sub redt exec put
10051                 ngreent indx 1 0 magu u sub max sub grnt exec put
10052                 nbluet indx 1 0 yelu u sub max sub blut exec put
10053                 ngrayt indx 1 k currentblackgeneration exec sub gryt exec put
10054         } for
10055         {255 mul cvi nredt exch get}
10056         {255 mul cvi ngreent exch get}
10057         {255 mul cvi nbluet exch get}
10058         {255 mul cvi ngrayt exch get}
10059         setcolortransfer
10060         {pop 0} setundercolorremoval
10061         {} setblackgeneration
10062         } bind def
10063         /tran FMLOCAL
10064 /fakecolorsetup {
10065         /tran 256 string def
10066         0 1 255 {/indx exch def 
10067                 tran indx
10068                 red indx get 77 mul
10069                 green indx get 151 mul
10070                 blue indx get 28 mul
10071                 add add 256 idiv put} for
10072         currenttransfer
10073         {255 mul cvi tran exch get 255.0 div}
10074         exch Fmcc settransfer
10075 } bind def
10076 /BITMAPCOLOR { 
10077         /d 8 def
10078         gsave
10079         translate rotate scale /h exch def /w exch def
10080         /bitmapsave save def 
10081         colorsetup
10082         /is w d wbytes string def
10083         /cf currentfile def 
10084         w h d [w 0 0 h neg 0 h] 
10085         {cf is readhexstring pop} {is} {is} true 3 colorimage 
10086         bitmapsave restore 
10087         grestore
10088         } bind def
10089 /BITMAPCOLORc { 
10090         /d 8 def
10091         gsave
10092         translate rotate scale /h exch def /w exch def
10093         /lb w d wbytes def 
10094         sl lb lt {lb ms} if 
10095         /bitmapsave save def 
10096         colorsetup
10097         /is im 0 lb getinterval def 
10098         ws 0 lb getinterval is copy pop 
10099         /cf currentfile def 
10100         w h d [w 0 0 h neg 0 h] 
10101         {ip} {is} {is} true 3 colorimage
10102         bitmapsave restore 
10103         grestore
10104         } bind def
10105 /BITMAPTRUECOLORc { 
10106         gsave
10107         translate rotate scale /h exch def /w exch def
10108         /bitmapsave save def 
10109         
10110         /is w string def
10111         
10112         ws 0 w getinterval is copy pop 
10113         /cf currentfile def 
10114         w h 8 [w 0 0 h neg 0 h] 
10115         {ip} {gip} {bip} true 3 colorimage
10116         bitmapsave restore 
10117         grestore
10118         } bind def
10119 /BITMAPTRUECOLOR { 
10120         gsave
10121         translate rotate scale /h exch def /w exch def
10122         /bitmapsave save def 
10123         /is w string def
10124         /gis w string def
10125         /bis w string def
10126         /cf currentfile def 
10127         w h 8 [w 0 0 h neg 0 h] 
10128         { cf is readhexstring pop } 
10129         { cf gis readhexstring pop } 
10130         { cf bis readhexstring pop } 
10131         true 3 colorimage 
10132         bitmapsave restore 
10133         grestore
10134         } bind def
10135 /BITMAPTRUEGRAYc { 
10136         gsave
10137         translate rotate scale /h exch def /w exch def
10138         /bitmapsave save def 
10139         
10140         /is w string def
10141         
10142         ws 0 w getinterval is copy pop 
10143         /cf currentfile def 
10144         w h 8 [w 0 0 h neg 0 h] 
10145         {ip gip bip w gray} image
10146         bitmapsave restore 
10147         grestore
10148         } bind def
10149 /ww FMLOCAL
10150 /r FMLOCAL
10151 /g FMLOCAL
10152 /b FMLOCAL
10153 /i FMLOCAL
10154 /gray { 
10155         /ww exch def
10156         /b exch def
10157         /g exch def
10158         /r exch def
10159         0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul
10160                         b i get .114 mul add add r i 3 -1 roll floor cvi put } for
10161         r
10162         } bind def
10163 /BITMAPTRUEGRAY { 
10164         gsave
10165         translate rotate scale /h exch def /w exch def
10166         /bitmapsave save def 
10167         /is w string def
10168         /gis w string def
10169         /bis w string def
10170         /cf currentfile def 
10171         w h 8 [w 0 0 h neg 0 h] 
10172         { cf is readhexstring pop 
10173           cf gis readhexstring pop 
10174           cf bis readhexstring pop w gray}  image
10175         bitmapsave restore 
10176         grestore
10177         } bind def
10178 /BITMAPGRAY { 
10179         8 {fakecolorsetup} COMMONBITMAP
10180         } bind def
10181 /BITMAPGRAYc { 
10182         8 {fakecolorsetup} COMMONBITMAPc
10183         } bind def
10184 /ENDBITMAP {
10185         } bind def
10186 end 
10187         /ALDsave FMLOCAL
10188         /ALDmatrix matrix def ALDmatrix currentmatrix pop
10189 /StartALD {
10190         /ALDsave save def
10191          savematrix
10192          ALDmatrix setmatrix
10193         } bind def
10194 /InALD {
10195          restorematrix
10196         } bind def
10197 /DoneALD {
10198          ALDsave restore
10199         } bind def
10200 %%EndProlog
10201 %%BeginSetup
10202 (3.0) FMVERSION
10203 1 1 612 792 0 1 3 FMDOCUMENT
10204 0 0 /Helvetica FMFONTDEFINE
10205 32 FMFILLS
10206 0 0 FMFILL
10207 1 0.1 FMFILL
10208 2 0.3 FMFILL
10209 3 0.5 FMFILL
10210 4 0.7 FMFILL
10211 5 0.9 FMFILL
10212 6 0.97 FMFILL
10213 7 1 FMFILL
10214 8 <0f1e3c78f0e1c387> FMFILL
10215 9 <0f87c3e1f0783c1e> FMFILL
10216 10 <cccccccccccccccc> FMFILL
10217 11 <ffff0000ffff0000> FMFILL
10218 12 <8142241818244281> FMFILL
10219 13 <03060c183060c081> FMFILL
10220 14 <8040201008040201> FMFILL
10221 16 1 FMFILL
10222 17 0.9 FMFILL
10223 18 0.7 FMFILL
10224 19 0.5 FMFILL
10225 20 0.3 FMFILL
10226 21 0.1 FMFILL
10227 22 0.03 FMFILL
10228 23 0 FMFILL
10229 24 <f0e1c3870f1e3c78> FMFILL
10230 25 <f0783c1e0f87c3e1> FMFILL
10231 26 <3333333333333333> FMFILL
10232 27 <0000ffff0000ffff> FMFILL
10233 28 <7ebddbe7e7dbbd7e> FMFILL
10234 29 <fcf9f3e7cf9f3f7e> FMFILL
10235 30 <7fbfdfeff7fbfdfe> FMFILL
10236 %%EndSetup
10237 612 792 1 FMBEGINPAGE
10238 26.16 206.4 782.16 778.52 C
10239 26.16 206.4 782.16 778.52 R
10240 7 X
10241 0 K
10243 307.08 539.85 316.19 535.73 306.19 535.79 306.64 537.82 4 Y
10244 0 X
10245 5 K
10247 275.31 544.52 306.65 537.81 2 L
10248 0.2 H
10249 2 Z
10251 583.03 540.2 591.79 535.37 581.82 536.22 582.42 538.21 4 Y
10253 561.87 544.16 582.45 538.2 2 L
10255 43.86 596.88 125.18 629.4 16.26 RR
10256 7 X
10257 4 K
10259 1 H
10260 0 X
10262 0 12 Q
10263 0 K
10264 (base_symtab) 48.86 608.5 T
10265 618.82 596.88 700.14 629.4 16.26 RR
10266 7 X
10267 4 K
10269 0 X
10271 0 K
10272 (instruction) 632.15 608.5 T
10273 332.93 596.88 414.25 629.4 16.26 RR
10274 7 X
10275 4 K
10277 0 X
10279 0 K
10280 (sym_node) 345.93 608.5 T
10281 187.86 596.88 269.18 629.4 16.26 RR
10282 7 X
10283 4 K
10285 0 X
10287 0 K
10288 (tree_node) 201.52 608.5 T
10289 474.67 596.88 555.99 629.4 16.26 RR
10290 7 X
10291 4 K
10293 0 X
10295 0 K
10296 (type_node) 487.33 608.5 T
10297 100.18 543.85 165.24 569.88 13.01 RR
10298 7 X
10299 4 K
10301 0 X
10303 0 10 Q
10304 0 K
10305 (block_symtab) 102.16 552.54 T
10306 139.26 517.84 204.32 534.85 8.51 RR
10307 7 X
10308 4 K
10310 0 X
10312 0 K
10313 (proc_symtab) 143.19 522.64 T
10314 95.68 471.85 169.74 497.88 13.01 RR
10315 7 X
10316 4 K
10318 0 X
10320 0 K
10321 (global_symtab) 100.49 480.54 T
10322 673.45 543.85 738.51 569.88 13.01 RR
10323 7 X
10324 4 K
10326 0 X
10328 0 K
10329 (in_rrr) 694.32 552.54 T
10330 673.45 497.88 738.51 523.9 13.01 RR
10331 7 X
10332 4 K
10334 0 X
10336 0 K
10337 (in_ldc) 692.93 506.56 T
10338 673.45 452.88 738.51 478.9 13.01 RR
10339 7 X
10340 4 K
10342 0 X
10344 0 K
10345 (in_array) 687.93 461.56 T
10346 673.45 407.88 738.51 433.9 13.01 RR
10347 7 X
10348 4 K
10350 0 X
10352 0 K
10353 (in_cal) 692.93 416.56 T
10354 673.45 363.85 738.51 389.88 13.01 RR
10355 7 X
10356 4 K
10358 0 X
10360 0 K
10361 (in_mbr) 690.71 372.54 T
10362 673.45 318.85 738.51 344.88 13.01 RR
10363 7 X
10364 4 K
10366 0 X
10368 0 K
10369 (in_lab) 692.65 327.54 T
10370 673.45 273.85 738.51 299.88 13.01 RR
10371 7 X
10372 4 K
10374 0 X
10376 0 K
10377 (in_bj) 695.42 282.54 T
10378 673.45 228.85 738.51 254.88 13.01 RR
10379 7 X
10380 4 K
10382 0 X
10384 0 K
10385 (in_gen) 690.98 237.54 T
10386 386.72 543.85 451.77 569.88 13.01 RR
10387 7 X
10388 4 K
10390 0 X
10392 0 K
10393 (var_sym) 400.36 552.54 T
10394 386.72 497.88 451.77 523.9 13.01 RR
10395 7 X
10396 4 K
10398 0 X
10400 0 K
10401 (proc_sym) 397.59 506.56 T
10402 386.72 452.88 451.77 478.9 13.01 RR
10403 7 X
10404 4 K
10406 0 X
10408 0 K
10409 (label_sym) 396.75 461.56 T
10410 241.65 543.85 306.7 569.88 13.01 RR
10411 7 X
10412 4 K
10414 0 X
10416 0 K
10417 (tree_block) 251.12 552.54 T
10418 279.88 517.84 344.94 534.85 8.51 RR
10419 7 X
10420 4 K
10422 0 X
10424 0 K
10425 (tree_proc) 291.3 522.64 T
10426 241.65 472.83 306.7 498.85 13.01 RR
10427 7 X
10428 4 K
10430 0 X
10432 0 K
10433 (tree_for) 256.95 481.52 T
10434 241.65 427.83 306.7 453.85 13.01 RR
10435 7 X
10436 4 K
10438 0 X
10440 0 K
10441 (tree_if) 260.29 436.52 T
10442 241.65 382.83 306.7 408.85 13.01 RR
10443 7 X
10444 4 K
10446 0 X
10448 0 K
10449 (tree_loop) 253.34 391.52 T
10450 241.65 337.83 306.7 363.85 13.01 RR
10451 7 X
10452 4 K
10454 0 X
10456 0 K
10457 (tree_instr) 253.34 346.52 T
10458 527.61 543.85 592.67 569.88 13.01 RR
10459 7 X
10460 4 K
10462 0 X
10464 0 K
10465 (base_type) 537.08 552.54 T
10466 556.85 517.84 621.9 534.85 8.51 RR
10467 7 X
10468 4 K
10470 0 X
10472 0 K
10473 (enum_type) 564.66 522.64 T
10474 527.61 470.88 592.67 497.88 13.5 RR
10475 7 X
10476 4 K
10478 0 X
10480 0 K
10481 (array_type) 536.53 479.99 T
10482 527.61 425.88 592.67 451.9 13.01 RR
10483 7 X
10484 4 K
10486 0 X
10488 0 K
10489 (func_type) 538.47 434.56 T
10490 527.61 379.9 592.67 406.9 13.5 RR
10491 7 X
10492 4 K
10494 0 X
10496 0 K
10497 (modi\336er_type) 530.15 389.01 T
10498 527.61 335.88 592.67 361.9 13.01 RR
10499 7 X
10500 4 K
10502 0 X
10504 0 K
10505 (ptr_type) 542.09 344.56 T
10506 527.61 290.88 592.67 316.9 13.01 RR
10507 7 X
10508 4 K
10510 0 X
10512 0 K
10513 (struct_type) 535.7 299.56 T
10514 165.08 539.82 174.18 535.67 164.18 535.77 164.63 537.79 4 Y
10515 5 K
10517 134.85 544.27 164.63 537.79 2 L
10518 0.2 H
10520 659.48 596.88 659.48 241.89 2 L
10522 84.52 596.88 84.52 484.8 2 L
10524 228.52 596.88 228.52 350.84 2 L
10526 373.59 596.88 373.59 466.09 2 L
10528 515.34 596.88 515.34 303.69 2 L
10530 663.3 559.37 673.08 557.29 663.3 555.21 663.3 557.29 4 Y
10532 659.48 557.29 663.3 557.29 2 L
10534 663.67 512.97 673.45 510.89 663.67 508.81 663.67 510.89 4 Y
10536 663.67 510.89 659.48 510.89 2 L
10538 663.67 467.97 673.45 465.89 663.67 463.81 663.67 465.89 4 Y
10540 663.67 465.89 659.48 465.89 2 L
10542 663.67 422.97 673.45 420.89 663.67 418.81 663.67 420.89 4 Y
10544 663.67 420.89 659.48 420.89 2 L
10546 663.67 378.94 673.45 376.86 663.67 374.79 663.67 376.86 4 Y
10548 663.67 376.86 659.48 376.86 2 L
10550 663.67 333.94 673.45 331.86 663.67 329.79 663.67 331.86 4 Y
10552 663.67 331.86 659.48 331.86 2 L
10554 663.67 288.94 673.45 286.86 663.67 284.79 663.67 286.86 4 Y
10556 663.67 286.86 659.48 286.86 2 L
10558 663.67 243.94 673.45 241.86 663.67 239.79 663.67 241.86 4 Y
10560 663.67 241.86 659.48 241.86 2 L
10562 90.4 558.94 100.18 556.87 90.4 554.79 90.4 556.87 4 Y
10564 90.4 556.87 84.52 556.87 2 L
10566 85.9 486.94 95.68 484.86 85.9 482.79 85.9 484.86 4 Y
10568 85.9 484.86 84.71 484.86 2 L
10570 376.94 558.94 386.72 556.87 376.94 554.79 376.94 556.87 4 Y
10572 376.94 556.87 373.59 556.87 2 L
10574 376.94 512.97 386.72 510.89 376.94 508.81 376.94 510.89 4 Y
10576 376.94 510.89 373.59 510.89 2 L
10578 376.94 467.97 386.72 465.89 376.94 463.81 376.94 465.89 4 Y
10580 376.94 465.89 373.71 465.89 2 L
10582 517.83 558.94 527.61 556.87 517.83 554.79 517.83 556.87 4 Y
10584 517.83 556.87 515.34 556.87 2 L
10586 517.83 486.45 527.61 484.38 517.83 482.3 517.83 484.38 4 Y
10588 517.83 484.38 515.34 484.38 2 L
10590 517.83 440.97 527.61 438.89 517.83 436.81 517.83 438.89 4 Y
10592 517.83 438.89 515.34 438.89 2 L
10594 517.83 395.48 527.61 393.4 517.83 391.32 517.83 393.4 4 Y
10596 517.83 393.4 515.34 393.4 2 L
10598 517.83 350.97 527.61 348.89 517.83 346.81 517.83 348.89 4 Y
10600 517.83 348.89 515.34 348.89 2 L
10602 517.83 305.97 527.61 303.89 517.83 301.81 517.83 303.89 4 Y
10604 517.83 303.89 515.51 303.89 2 L
10606 723.06 695.73 732.49 692.4 722.52 691.61 722.79 693.67 4 Y
10608 405.62 734.88 722.8 693.67 2 L
10610 649.95 635.12 658.16 629.41 648.34 631.29 649.15 633.2 4 Y
10612 405.62 734.88 649.17 633.2 2 L
10614 510.77 637.64 516.44 629.41 507.91 634.63 509.34 636.13 4 Y
10616 405.62 734.88 509.34 636.13 2 L
10618 376.37 638.06 371.36 629.41 372.42 639.35 374.39 638.71 4 Y
10620 405.62 734.88 374.4 638.7 2 L
10622 236.83 632.64 227.37 629.41 234.7 636.21 235.76 634.43 4 Y
10624 405.62 734.88 235.77 634.42 2 L
10626 95.49 630.51 85.55 629.41 94.18 634.46 94.84 632.48 4 Y
10628 405.62 734.88 94.84 632.48 2 L
10630 85.78 691.6 75.81 692.41 85.25 695.73 85.51 693.66 4 Y
10632 405.62 734.88 85.51 693.66 2 L
10634 231.87 487.92 241.65 485.84 231.87 483.76 231.87 485.84 4 Y
10636 231.87 485.84 228.52 485.84 2 L
10638 231.87 442.92 241.65 440.84 231.87 438.76 231.87 440.84 4 Y
10640 231.87 440.84 228.52 440.84 2 L
10642 231.87 397.92 241.65 395.84 231.87 393.76 231.87 395.84 4 Y
10644 231.87 395.84 228.52 395.84 2 L
10646 231.87 352.92 241.65 350.84 231.87 348.76 231.87 350.84 4 Y
10648 231.87 350.84 228.71 350.84 2 L
10650 231.87 558.94 241.65 556.87 231.87 554.79 231.87 556.87 4 Y
10652 231.87 556.87 228.52 556.87 2 L
10654 691.84 659.88 773.16 692.4 16.26 RR
10655 7 X
10656 4 K
10658 1 H
10659 0 X
10661 0 12 Q
10662 0 K
10663 (var_def) 712.49 671.5 T
10664 35.15 659.88 116.47 692.4 16.26 RR
10665 7 X
10666 4 K
10668 0 X
10670 0 K
10671 (\336le_set_entry) 40.15 671.5 T
10672 359.15 734.89 452.09 772.06 18 RR
10673 7 X
10674 4 K
10676 0 X
10678 0 14 Q
10679 0 K
10680 (suif_object) 372.18 748.68 T
10681 0 180 792 792 C
10682 FMENDPAGE
10683 %%Trailer
10684 %%DocumentFonts: Helvetica
10686 %%EndDocument
10688  endTexFig
10689  eop
10690 %%Page: 92 94
10691 92 93 bop 150 -116 a Fn(92)2385 b(The)30 b(SUIF)g(V)-8
10692 b(ersion)30 b(1)h(Library)150 299 y Fl(Ov)l(erview)46
10693 b(of)f(the)h(SUIF)e(Hierarc)l(h)l(y)275 491 y Fn(This)26
10694 b(diagram)h(represen)m(ts)h(the)h(o)m(v)m(erall)f(hierarc)m(hical)e
10695 (structure)i(of)g(the)h(SUIF)e(in)m(termediate)h(rep-)150
10696 601 y(resen)m(tation.)75 b(A)m(t)42 b(the)g(top)f(lev)m(el,)k(the)c
10697 (global)g(sym)m(b)s(ol)f(information)g(is)g(k)m(ept.)75
10698 b(See)42 b(Section)f(5.1.1)150 711 y([Global)36 b(Sym)m(b)s(ol)e(T)-8
10699 b(able],)38 b(page)e(37.)59 b(In)36 b(the)g(next)g(lev)m(el,)i
10700 (information)c(regarding)h(eac)m(h)i(input)e(and)150
10701 820 y(output)40 b(\014le)f(is)h(k)m(ept.)71 b(See)40
10702 b(Chapter)g(2)h([File)f(Represen)m(tation],)j(page)e(7.)71
10703 b(The)40 b(third)e(lev)m(el)i(is)g(the)150 930 y(abstract)j(syn)m(tax)f
10704 (tree)g(represen)m(tation.)74 b(See)42 b(Chapter)f(3)h([T)-8
10705 b(rees],)46 b(page)c(11.)75 b(The)41 b(b)s(ottom)h(lev)m(el)150
10706 1039 y(con)m(tains)31 b(the)f(expression)f(trees.)42
10707 b(See)30 b(Chapter)g(4)h([Instructions],)e(page)i(23.)450
10708 1071 y
10709  23681433 31259490 1184071 2368143 37890293 50915082 startTexFig
10710  450 1071 a
10711 %%BeginDocument: suif_struct.epsf
10712 %!PS-Adobe-2.0 EPSF-1.2
10713 %%BoundingBox: 18 36 576 774
10714 %%DocumentFonts: (atend)
10715 %%EndComments
10717 % FrameMaker PostScript Prolog 3.0, for use with FrameMaker 3.0
10718 % Copyright (c) 1986,87,89,90,91 by Frame Technology Corporation.
10719 % All rights reserved.
10721 % Modified to be sort of EPSF-compliant by bwilson@shasta.stanford.edu
10723 % Known Problems:
10724 %       - setscreen and settransfer are not EPSF-compliant but I think they
10725 %         will work anyway.
10726 %       - since Frame doesn't really calculate bounding boxes, you need to
10727 %         edit the output and manually determine the size of the bounding box
10729 /FMversion (3.0) def 
10730 % Set up Color vs. Black-and-White
10731         /FMPrintInColor systemdict /colorimage known
10732                 systemdict /currentcolortransfer known or def
10733 % Uncomment this line to force b&w on color printer
10734 %   /FMPrintInColor false def
10735 /FrameDict 195 dict def 
10736 systemdict /errordict known not {/errordict 10 dict def
10737                 errordict /rangecheck {stop} put} if
10738 % The readline in 23.0 doesn't recognize cr's as nl's on AppleTalk
10739 FrameDict /tmprangecheck errordict /rangecheck get put 
10740 errordict /rangecheck {FrameDict /bug true put} put 
10741 FrameDict /bug false put 
10742 mark 
10743 % Some PS machines read past the CR, so keep the following 3 lines together!
10744 currentfile 5 string readline
10746 0000000000
10747 cleartomark 
10748 errordict /rangecheck FrameDict /tmprangecheck get put 
10749 FrameDict /bug get { 
10750         /readline {
10751                 /gstring exch def
10752                 /gfile exch def
10753                 /gindex 0 def
10754                 {
10755                         gfile read pop 
10756                         dup 10 eq {exit} if 
10757                         dup 13 eq {exit} if 
10758                         gstring exch gindex exch put 
10759                         /gindex gindex 1 add def 
10760                 } loop
10761                 pop 
10762                 gstring 0 gindex getinterval true 
10763                 } def
10764         } if
10765 /FMVERSION {
10766         FMversion ne {
10767                 /Times-Roman findfont 18 scalefont setfont
10768                 100 100 moveto
10769                 (FrameMaker version does not match postscript_prolog!)
10770                 dup =
10771                 show showpage
10772                 } if
10773         } def 
10774 /FMLOCAL {
10775         FrameDict begin
10776         0 def 
10777         end 
10778         } def 
10779         /gstring FMLOCAL
10780         /gfile FMLOCAL
10781         /gindex FMLOCAL
10782         /orgxfer FMLOCAL
10783         /orgproc FMLOCAL
10784         /organgle FMLOCAL
10785         /orgfreq FMLOCAL
10786 /FMDOCUMENT { 
10787         array /FMfonts exch def 
10788         FrameDict begin
10789         pop
10790         pop
10791         pop
10792         pop
10793         /yscale exch def
10794         /xscale exch def
10795         currenttransfer cvlit /orgxfer exch def
10796         currentscreen cvlit /orgproc exch def
10797         /organgle exch def /orgfreq exch def
10798         end 
10799         } def 
10800         /pagesave FMLOCAL
10801         /orgmatrix FMLOCAL
10802         /landscape FMLOCAL
10803 /FMBEGINPAGE { 
10804         FrameDict begin 
10805         /pagesave save def
10806         3.86 setmiterlimit
10807         pop pop pop
10808         /landscape false def
10809         xscale yscale scale
10810         /orgmatrix matrix def
10811         gsave 
10812         } def 
10813 /FMENDPAGE {
10814         grestore 
10815         pagesave restore
10816         end 
10817         showpage
10818         } def 
10819 /FMFONTDEFINE { 
10820         FrameDict begin
10821         findfont 
10822         ReEncode 
10823         1 index exch 
10824         definefont 
10825         FMfonts 3 1 roll 
10826         put
10827         end 
10828         } def 
10829 /FMFILLS {
10830         FrameDict begin
10831         array /fillvals exch def
10832         end 
10833         } def 
10834 /FMFILL {
10835         FrameDict begin
10836         fillvals 3 1 roll put
10837         end 
10838         } def 
10839 /FMNORMALIZEGRAPHICS { 
10840         newpath
10841         0.0 0.0 moveto
10842         1 setlinewidth
10843         0 setlinecap
10844         0 0 0 sethsbcolor
10845         0 setgray 
10846         } bind def
10847         /fx FMLOCAL
10848         /fy FMLOCAL
10849         /fh FMLOCAL
10850         /fw FMLOCAL
10851         /llx FMLOCAL
10852         /lly FMLOCAL
10853         /urx FMLOCAL
10854         /ury FMLOCAL
10855 /FMBEGINEPSF { 
10856         end 
10857         /FMEPSF save def 
10858         /showpage {} def 
10859         FMNORMALIZEGRAPHICS 
10860         [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall 
10861         fx fy translate 
10862         rotate
10863         fw urx llx sub div fh ury lly sub div scale 
10864         llx neg lly neg translate 
10865         } bind def
10866 /FMENDEPSF {
10867         FMEPSF restore
10868         FrameDict begin 
10869         } bind def
10870 FrameDict begin 
10871 /max {2 copy lt {exch} if pop} bind def
10872 /min {2 copy gt {exch} if pop} bind def
10873 /inch {72 mul} def
10874 /savematrix {
10875         orgmatrix currentmatrix pop
10876         } bind def
10877 /restorematrix {
10878         orgmatrix setmatrix
10879         } bind def
10880 /dmatrix matrix def
10881 /dpi    72 0 dmatrix defaultmatrix dtransform
10882     dup mul exch   dup mul add   sqrt def
10883 /freq dpi 18.75 div 8 div round dup 0 eq {pop 1} if 8 mul dpi exch div def
10884 /sangle 1 0 dmatrix defaultmatrix dtransform exch atan def
10885 /DiacriticEncoding [
10886 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
10887 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
10888 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
10889 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
10890 /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl
10891 /numbersign /dollar /percent /ampersand /quotesingle /parenleft
10892 /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
10893 /two /three /four /five /six /seven /eight /nine /colon /semicolon
10894 /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K
10895 /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash
10896 /bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h
10897 /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar
10898 /braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute
10899 /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis
10900 /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis
10901 /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve
10902 /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex
10903 /udieresis /dagger /.notdef /cent /sterling /section /bullet
10904 /paragraph /germandbls /registered /copyright /trademark /acute
10905 /dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef
10906 /yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
10907 /ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown
10908 /exclamdown /logicalnot /.notdef /florin /.notdef /.notdef
10909 /guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde
10910 /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright
10911 /quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis
10912 /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl
10913 /periodcentered /quotesinglbase /quotedblbase /perthousand
10914 /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute
10915 /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve
10916 /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron
10917 /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron
10918 ] def
10919 /ReEncode { 
10920         dup 
10921         length 
10922         dict begin 
10923         {
10924         1 index /FID ne 
10925                 {def} 
10926                 {pop pop} ifelse 
10927         } forall 
10928         0 eq {/Encoding DiacriticEncoding def} if 
10929         currentdict 
10930         end 
10931         } bind def
10932 /graymode true def
10933         /bwidth FMLOCAL
10934         /bpside FMLOCAL
10935         /bstring FMLOCAL
10936         /onbits FMLOCAL
10937         /offbits FMLOCAL
10938         /xindex FMLOCAL
10939         /yindex FMLOCAL
10940         /x FMLOCAL
10941         /y FMLOCAL
10942 /setpattern {
10943          /bwidth  exch def
10944          /bpside  exch def
10945          /bstring exch def
10946          /onbits 0 def  /offbits 0 def
10947          freq sangle landscape {90 add} if 
10948                 {/y exch def
10949                  /x exch def
10950                  /xindex x 1 add 2 div bpside mul cvi def
10951                  /yindex y 1 add 2 div bpside mul cvi def
10952                  bstring yindex bwidth mul xindex 8 idiv add get
10953                  1 7 xindex 8 mod sub bitshift and 0 ne
10954                  {/onbits  onbits  1 add def 1}
10955                  {/offbits offbits 1 add def 0}
10956                  ifelse
10957                 }
10958                 setscreen
10959          {} settransfer
10960          offbits offbits onbits add div FMsetgray
10961         /graymode false def
10962         } bind def
10963 /grayness {
10964         FMsetgray
10965         graymode not {
10966                 /graymode true def
10967                 orgxfer cvx settransfer
10968                 orgfreq organgle orgproc cvx setscreen
10969                 } if
10970         } bind def
10971         /HUE FMLOCAL
10972         /SAT FMLOCAL
10973         /BRIGHT FMLOCAL
10974         /Colors FMLOCAL
10975 FMPrintInColor
10977         {
10978         /HUE 0 def
10979         /SAT 0 def
10980         /BRIGHT 0 def
10981         % array of arrays Hue and Sat values for the separations [HUE BRIGHT]
10982         /Colors   
10983         [[0    0  ]    % black
10984          [0    0  ]    % white
10985          [0.00 1.0]    % red
10986          [0.37 1.0]    % green
10987          [0.60 1.0]    % blue
10988          [0.50 1.0]    % cyan
10989          [0.83 1.0]    % magenta
10990          [0.16 1.0]    % comment / yellow
10991          ] def
10992       
10993         /BEGINBITMAPCOLOR { 
10994                 BITMAPCOLOR} def
10995         /BEGINBITMAPCOLORc { 
10996                 BITMAPCOLORc} def
10997         /BEGINBITMAPTRUECOLOR { 
10998                 BITMAPTRUECOLOR } def
10999         /BEGINBITMAPTRUECOLORc { 
11000                 BITMAPTRUECOLORc } def
11001         /K { 
11002                 Colors exch get dup
11003                 0 get /HUE exch store 
11004                 1 get /BRIGHT exch store
11005                   HUE 0 eq BRIGHT 0 eq and
11006                         {1.0 SAT sub setgray}
11007                         {HUE SAT BRIGHT sethsbcolor} 
11008                   ifelse
11009                 } def
11010         /FMsetgray { 
11011                 /SAT exch 1.0 exch sub store 
11012                   HUE 0 eq BRIGHT 0 eq and
11013                         {1.0 SAT sub setgray}
11014                         {HUE SAT BRIGHT sethsbcolor} 
11015                   ifelse
11016                 } bind def
11017         }
11018         
11019         {
11020         /BEGINBITMAPCOLOR { 
11021                 BITMAPGRAY} def
11022         /BEGINBITMAPCOLORc { 
11023                 BITMAPGRAYc} def
11024         /BEGINBITMAPTRUECOLOR { 
11025                 BITMAPTRUEGRAY } def
11026         /BEGINBITMAPTRUECOLORc { 
11027                 BITMAPTRUEGRAYc } def
11028         /FMsetgray {setgray} bind def
11029         /K { 
11030                 pop
11031                 } def
11032         }
11033 ifelse
11034 /normalize {
11035         transform round exch round exch itransform
11036         } bind def
11037 /dnormalize {
11038         dtransform round exch round exch idtransform
11039         } bind def
11040 /lnormalize { 
11041         0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop
11042         } bind def
11043 /H { 
11044         lnormalize setlinewidth
11045         } bind def
11046 /Z {
11047         setlinecap
11048         } bind def
11049         /fillvals FMLOCAL
11050 /X { 
11051         fillvals exch get
11052         dup type /stringtype eq
11053         {8 1 setpattern} 
11054         {grayness}
11055         ifelse
11056         } bind def
11057 /V { 
11058         gsave eofill grestore
11059         } bind def
11060 /N { 
11061         stroke
11062         } bind def
11063 /M {newpath moveto} bind def
11064 /E {lineto} bind def
11065 /D {curveto} bind def
11066 /O {closepath} bind def
11067         /n FMLOCAL
11068 /L { 
11069         /n exch def
11070         newpath
11071         normalize
11072         moveto 
11073         2 1 n {pop normalize lineto} for
11074         } bind def
11075 /Y { 
11076         L 
11077         closepath
11078         } bind def
11079         /x1 FMLOCAL
11080         /x2 FMLOCAL
11081         /y1 FMLOCAL
11082         /y2 FMLOCAL
11083         /rad FMLOCAL
11084 /R { 
11085         /y2 exch def
11086         /x2 exch def
11087         /y1 exch def
11088         /x1 exch def
11089         x1 y1
11090         x2 y1
11091         x2 y2
11092         x1 y2
11093         4 Y 
11094         } bind def
11095 /RR { 
11096         /rad exch def
11097         normalize
11098         /y2 exch def
11099         /x2 exch def
11100         normalize
11101         /y1 exch def
11102         /x1 exch def
11103         newpath
11104         x1 y1 rad add moveto
11105         x1 y2 x2 y2 rad arcto
11106         x2 y2 x2 y1 rad arcto
11107         x2 y1 x1 y1 rad arcto
11108         x1 y1 x1 y2 rad arcto
11109         closepath
11110         16 {pop} repeat
11111         } bind def
11112 /C { 
11113         grestore
11114         gsave
11115         R 
11116         clip
11117         } bind def
11118         /FMpointsize FMLOCAL
11119 /F { 
11120         FMfonts exch get
11121         FMpointsize scalefont
11122         setfont
11123         } bind def
11124 /Q { 
11125         /FMpointsize exch def
11126         F 
11127         } bind def
11128 /T { 
11129         moveto show
11130         } bind def
11131 /RF { 
11132         rotate
11133         0 ne {-1 1 scale} if
11134         } bind def
11135 /TF { 
11136         gsave
11137         moveto 
11138         RF
11139         show
11140         grestore
11141         } bind def
11142 /P { 
11143         moveto
11144         0 32 3 2 roll widthshow
11145         } bind def
11146 /PF { 
11147         gsave
11148         moveto 
11149         RF
11150         0 32 3 2 roll widthshow
11151         grestore
11152         } bind def
11153 /S { 
11154         moveto
11155         0 exch ashow
11156         } bind def
11157 /SF { 
11158         gsave
11159         moveto
11160         RF
11161         0 exch ashow
11162         grestore
11163         } bind def
11164 /B { 
11165         moveto
11166         0 32 4 2 roll 0 exch awidthshow
11167         } bind def
11168 /BF { 
11169         gsave
11170         moveto
11171         RF
11172         0 32 4 2 roll 0 exch awidthshow
11173         grestore
11174         } bind def
11175 /G { 
11176         gsave
11177         newpath
11178         normalize translate 0.0 0.0 moveto 
11179         dnormalize scale 
11180         0.0 0.0 1.0 5 3 roll arc 
11181         closepath fill
11182         grestore
11183         } bind def
11184 /A { 
11185         gsave
11186         savematrix
11187         newpath
11188         2 index 2 div add exch 3 index 2 div sub exch 
11189         normalize 2 index 2 div sub exch 3 index 2 div add exch 
11190         translate 
11191         scale 
11192         0.0 0.0 1.0 5 3 roll arc 
11193         restorematrix
11194         stroke
11195         grestore
11196         } bind def
11197         /x FMLOCAL
11198         /y FMLOCAL
11199         /w FMLOCAL
11200         /h FMLOCAL
11201         /xx FMLOCAL
11202         /yy FMLOCAL
11203         /ww FMLOCAL
11204         /hh FMLOCAL
11205         /FMsaveobject FMLOCAL
11206         /FMoptop FMLOCAL
11207         /FMdicttop FMLOCAL
11208 /BEGINPRINTCODE { 
11209         /FMdicttop countdictstack 1 add def 
11210         /FMoptop count 4 sub def 
11211         /FMsaveobject save def
11212         userdict begin 
11213         /showpage {} def 
11214         FMNORMALIZEGRAPHICS 
11215         3 index neg 3 index neg translate
11216         } bind def
11217 /ENDPRINTCODE {
11218         count -1 FMoptop {pop pop} for 
11219         countdictstack -1 FMdicttop {pop end} for 
11220         FMsaveobject restore 
11221         } bind def
11222 /gn { 
11223         0 
11224         {       46 mul 
11225                 cf read pop 
11226                 32 sub 
11227                 dup 46 lt {exit} if 
11228                 46 sub add 
11229                 } loop
11230         add 
11231         } bind def
11232         /str FMLOCAL
11233 /cfs { 
11234         /str sl string def 
11235         0 1 sl 1 sub {str exch val put} for 
11236         str def 
11237         } bind def
11238 /ic [ 
11239         0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
11240         0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
11241         0
11242         {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx}
11243         {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx}
11244         {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12}
11245         {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh}
11246         {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh}
11247         {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl}
11248         {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl}
11249         {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl}
11250         {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl}
11251         ] def
11252         /sl FMLOCAL
11253         /val FMLOCAL
11254         /ws FMLOCAL
11255         /im FMLOCAL
11256         /bs FMLOCAL
11257         /cs FMLOCAL
11258         /len FMLOCAL
11259         /pos FMLOCAL
11260 /ms { 
11261         /sl exch def 
11262         /val 255 def 
11263         /ws cfs 
11264         /im cfs 
11265         /val 0 def 
11266         /bs cfs 
11267         /cs cfs 
11268         } bind def
11269 400 ms 
11270 /ip { 
11271         is 
11272         0 
11273         cf cs readline pop 
11274         {       ic exch get exec 
11275                 add 
11276                 } forall 
11277         pop 
11278         
11279         } bind def
11280 /wh { 
11281         /len exch def 
11282         /pos exch def 
11283         ws 0 len getinterval im pos len getinterval copy pop
11284         pos len 
11285         } bind def
11286 /bl { 
11287         /len exch def 
11288         /pos exch def 
11289         bs 0 len getinterval im pos len getinterval copy pop
11290         pos len 
11291         } bind def
11292 /s1 1 string def
11293 /fl { 
11294         /len exch def 
11295         /pos exch def 
11296         /val cf s1 readhexstring pop 0 get def
11297         pos 1 pos len add 1 sub {im exch val put} for
11298         pos len 
11299         } bind def
11300 /hx { 
11301         3 copy getinterval 
11302         cf exch readhexstring pop pop 
11303         } bind def
11304         /h FMLOCAL
11305         /w FMLOCAL
11306         /d FMLOCAL
11307         /lb FMLOCAL
11308         /bitmapsave FMLOCAL
11309         /is FMLOCAL
11310         /cf FMLOCAL
11311 /wbytes { 
11312         dup 
11313         8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse
11314         } bind def
11315 /BEGINBITMAPBWc { 
11316         1 {} COMMONBITMAPc
11317         } bind def
11318 /BEGINBITMAPGRAYc { 
11319         8 {} COMMONBITMAPc
11320         } bind def
11321 /BEGINBITMAP2BITc { 
11322         2 {} COMMONBITMAPc
11323         } bind def
11324 /COMMONBITMAPc { 
11325         /r exch def
11326         /d exch def
11327         gsave
11328         translate rotate scale /h exch def /w exch def
11329         /lb w d wbytes def 
11330         sl lb lt {lb ms} if 
11331         /bitmapsave save def 
11332         r                    
11333         /is im 0 lb getinterval def 
11334         ws 0 lb getinterval is copy pop 
11335         /cf currentfile def 
11336         w h d [w 0 0 h neg 0 h] 
11337         {ip} image 
11338         bitmapsave restore 
11339         grestore
11340         } bind def
11341 /BEGINBITMAPBW { 
11342         1 {} COMMONBITMAP
11343         } bind def
11344 /BEGINBITMAPGRAY { 
11345         8 {} COMMONBITMAP
11346         } bind def
11347 /BEGINBITMAP2BIT { 
11348         2 {} COMMONBITMAP
11349         } bind def
11350 /COMMONBITMAP { 
11351         /r exch def
11352         /d exch def
11353         gsave
11354         translate rotate scale /h exch def /w exch def
11355         /bitmapsave save def 
11356         r                    
11357         /is w d wbytes string def
11358         /cf currentfile def 
11359         w h d [w 0 0 h neg 0 h] 
11360         {cf is readhexstring pop} image
11361         bitmapsave restore 
11362         grestore
11363         } bind def
11364         /proc1 FMLOCAL
11365         /proc2 FMLOCAL
11366         /newproc FMLOCAL
11367 /Fmcc {
11368     /proc2 exch cvlit def
11369     /proc1 exch cvlit def
11370     /newproc proc1 length proc2 length add array def
11371     newproc 0 proc1 putinterval
11372     newproc proc1 length proc2 putinterval
11373     newproc cvx
11374 } bind def
11375 /ngrayt 256 array def
11376 /nredt 256 array def
11377 /nbluet 256 array def
11378 /ngreent 256 array def
11379         /gryt FMLOCAL
11380         /blut FMLOCAL
11381         /grnt FMLOCAL
11382         /redt FMLOCAL
11383         /indx FMLOCAL
11384         /cynu FMLOCAL
11385         /magu FMLOCAL
11386         /yelu FMLOCAL
11387         /k FMLOCAL
11388         /u FMLOCAL
11389 /colorsetup {
11390         currentcolortransfer
11391         /gryt exch def
11392         /blut exch def
11393         /grnt exch def
11394         /redt exch def
11395         0 1 255 {
11396                 /indx exch def
11397                 /cynu 1 red indx get 255 div sub def
11398                 /magu 1 green indx get 255 div sub def
11399                 /yelu 1 blue indx get 255 div sub def
11400                 /k cynu magu min yelu min def
11401                 /u k currentundercolorremoval exec def
11402                 nredt indx 1 0 cynu u sub max sub redt exec put
11403                 ngreent indx 1 0 magu u sub max sub grnt exec put
11404                 nbluet indx 1 0 yelu u sub max sub blut exec put
11405                 ngrayt indx 1 k currentblackgeneration exec sub gryt exec put
11406         } for
11407         {255 mul cvi nredt exch get}
11408         {255 mul cvi ngreent exch get}
11409         {255 mul cvi nbluet exch get}
11410         {255 mul cvi ngrayt exch get}
11411         setcolortransfer
11412         {pop 0} setundercolorremoval
11413         {} setblackgeneration
11414         } bind def
11415         /tran FMLOCAL
11416 /fakecolorsetup {
11417         /tran 256 string def
11418         0 1 255 {/indx exch def 
11419                 tran indx
11420                 red indx get 77 mul
11421                 green indx get 151 mul
11422                 blue indx get 28 mul
11423                 add add 256 idiv put} for
11424         currenttransfer
11425         {255 mul cvi tran exch get 255.0 div}
11426         exch Fmcc settransfer
11427 } bind def
11428 /BITMAPCOLOR { 
11429         /d 8 def
11430         gsave
11431         translate rotate scale /h exch def /w exch def
11432         /bitmapsave save def 
11433         colorsetup
11434         /is w d wbytes string def
11435         /cf currentfile def 
11436         w h d [w 0 0 h neg 0 h] 
11437         {cf is readhexstring pop} {is} {is} true 3 colorimage 
11438         bitmapsave restore 
11439         grestore
11440         } bind def
11441 /BITMAPCOLORc { 
11442         /d 8 def
11443         gsave
11444         translate rotate scale /h exch def /w exch def
11445         /lb w d wbytes def 
11446         sl lb lt {lb ms} if 
11447         /bitmapsave save def 
11448         colorsetup
11449         /is im 0 lb getinterval def 
11450         ws 0 lb getinterval is copy pop 
11451         /cf currentfile def 
11452         w h d [w 0 0 h neg 0 h] 
11453         {ip} {is} {is} true 3 colorimage
11454         bitmapsave restore 
11455         grestore
11456         } bind def
11457 /BITMAPTRUECOLORc { 
11458         gsave
11459         translate rotate scale /h exch def /w exch def
11460         /bitmapsave save def 
11461         
11462         /is w string def
11463         
11464         ws 0 w getinterval is copy pop 
11465         /cf currentfile def 
11466         w h 8 [w 0 0 h neg 0 h] 
11467         {ip} {gip} {bip} true 3 colorimage
11468         bitmapsave restore 
11469         grestore
11470         } bind def
11471 /BITMAPTRUECOLOR { 
11472         gsave
11473         translate rotate scale /h exch def /w exch def
11474         /bitmapsave save def 
11475         /is w string def
11476         /gis w string def
11477         /bis w string def
11478         /cf currentfile def 
11479         w h 8 [w 0 0 h neg 0 h] 
11480         { cf is readhexstring pop } 
11481         { cf gis readhexstring pop } 
11482         { cf bis readhexstring pop } 
11483         true 3 colorimage 
11484         bitmapsave restore 
11485         grestore
11486         } bind def
11487 /BITMAPTRUEGRAYc { 
11488         gsave
11489         translate rotate scale /h exch def /w exch def
11490         /bitmapsave save def 
11491         
11492         /is w string def
11493         
11494         ws 0 w getinterval is copy pop 
11495         /cf currentfile def 
11496         w h 8 [w 0 0 h neg 0 h] 
11497         {ip gip bip w gray} image
11498         bitmapsave restore 
11499         grestore
11500         } bind def
11501 /ww FMLOCAL
11502 /r FMLOCAL
11503 /g FMLOCAL
11504 /b FMLOCAL
11505 /i FMLOCAL
11506 /gray { 
11507         /ww exch def
11508         /b exch def
11509         /g exch def
11510         /r exch def
11511         0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul
11512                         b i get .114 mul add add r i 3 -1 roll floor cvi put } for
11513         r
11514         } bind def
11515 /BITMAPTRUEGRAY { 
11516         gsave
11517         translate rotate scale /h exch def /w exch def
11518         /bitmapsave save def 
11519         /is w string def
11520         /gis w string def
11521         /bis w string def
11522         /cf currentfile def 
11523         w h 8 [w 0 0 h neg 0 h] 
11524         { cf is readhexstring pop 
11525           cf gis readhexstring pop 
11526           cf bis readhexstring pop w gray}  image
11527         bitmapsave restore 
11528         grestore
11529         } bind def
11530 /BITMAPGRAY { 
11531         8 {fakecolorsetup} COMMONBITMAP
11532         } bind def
11533 /BITMAPGRAYc { 
11534         8 {fakecolorsetup} COMMONBITMAPc
11535         } bind def
11536 /ENDBITMAP {
11537         } bind def
11538 end 
11539         /ALDsave FMLOCAL
11540         /ALDmatrix matrix def ALDmatrix currentmatrix pop
11541 /StartALD {
11542         /ALDsave save def
11543          savematrix
11544          ALDmatrix setmatrix
11545         } bind def
11546 /InALD {
11547          restorematrix
11548         } bind def
11549 /DoneALD {
11550          ALDsave restore
11551         } bind def
11552 %%EndProlog
11553 %%BeginSetup
11554 (3.0) FMVERSION
11555 1 1 612 792 0 1 6 FMDOCUMENT
11556 0 0 /Times-Bold FMFONTDEFINE
11557 1 0 /Times-Roman FMFONTDEFINE
11558 2 0 /Helvetica FMFONTDEFINE
11559 3 0 /Helvetica-Bold FMFONTDEFINE
11560 32 FMFILLS
11561 0 0 FMFILL
11562 1 0.1 FMFILL
11563 2 0.3 FMFILL
11564 3 0.5 FMFILL
11565 4 0.7 FMFILL
11566 5 0.9 FMFILL
11567 6 0.97 FMFILL
11568 7 1 FMFILL
11569 8 <0f1e3c78f0e1c387> FMFILL
11570 9 <0f87c3e1f0783c1e> FMFILL
11571 10 <cccccccccccccccc> FMFILL
11572 11 <ffff0000ffff0000> FMFILL
11573 12 <8142241818244281> FMFILL
11574 13 <03060c183060c081> FMFILL
11575 14 <8040201008040201> FMFILL
11576 16 1 FMFILL
11577 17 0.9 FMFILL
11578 18 0.7 FMFILL
11579 19 0.5 FMFILL
11580 20 0.3 FMFILL
11581 21 0.1 FMFILL
11582 22 0.03 FMFILL
11583 23 0 FMFILL
11584 24 <f0e1c3870f1e3c78> FMFILL
11585 25 <f0783c1e0f87c3e1> FMFILL
11586 26 <3333333333333333> FMFILL
11587 27 <0000ffff0000ffff> FMFILL
11588 28 <7ebddbe7e7dbbd7e> FMFILL
11589 29 <fcf9f3e7cf9f3f7e> FMFILL
11590 30 <7fbfdfeff7fbfdfe> FMFILL
11591 %%EndSetup
11592 612 792 0 FMBEGINPAGE
11593 22.32 19.73 587.02 771.91 C
11594 8.93 74.29 598.18 214.68 R
11595 6 X
11596 7 K
11598 8.93 234 598.18 535.32 R
11600 8.93 551.88 600.41 607.68 R
11602 8.93 625.53 600.41 681.33 R
11604 8.93 698.26 600.41 754.06 R
11606 154.91 667.54 145.08 665.71 152.9 671.94 153.9 669.74 4 Y
11607 0 X
11608 2 K
11610 241.67 709.42 153.91 669.73 2 L
11611 7 X
11613 1 H
11614 2 Z
11615 0 X
11617 276.91 531.2 274.49 521.5 272.07 531.2 274.49 531.2 4 Y
11619 274.49 563.04 274.49 531.2 2 L
11620 7 X
11622 0 X
11624 321.41 576.43 379.44 576.43 2 L
11625 7 X
11626 4 K
11628 2 H
11629 10 X
11631 214.27 709.42 290.16 738.43 14.51 RR
11632 7 X
11634 0.5 H
11635 0 X
11637 0 12 Q
11638 0 K
11639 (\336leset) 237.56 719.83 T
11640 109.37 636.69 185.26 665.71 14.51 RR
11641 7 X
11642 4 K
11644 0 X
11646 0 K
11647 (\336leset entry) 117.5 647.11 T
11648 236.59 563.04 312.48 592.05 14.51 RR
11649 7 X
11650 4 K
11652 0 X
11654 0 K
11655 (tr) 251.61 573.45 T
11656 (ee pr) 260.71 573.45 T
11657 (oc) 286.14 573.45 T
11658 386.14 563.04 462.02 592.05 14.51 RR
11659 7 X
11660 4 K
11662 0 X
11664 0 K
11665 (tr) 401.15 573.45 T
11666 (ee pr) 410.26 573.45 T
11667 (oc) 435.68 573.45 T
11668 312.48 636.69 388.37 665.71 14.51 RR
11669 7 X
11670 4 K
11672 0 X
11674 0 K
11675 (\336leset entry) 320.61 647.11 T
11676 234.32 255.42 310.2 284.43 14.51 RR
11677 7 X
11678 4 K
11680 0 X
11682 1 F
11683 0 K
11684 (tree instr) 249.94 265.84 T
11685 (.) 291.58 265.84 T
11686 359.8 322.38 435.69 351.39 14.51 RR
11687 7 X
11688 4 K
11690 0 X
11692 0 K
11693 (tree loop) 376.59 332.8 T
11694 110.29 319.42 186.18 348.43 14.51 RR
11695 7 X
11696 4 K
11698 0 X
11700 0 K
11701 (tree if) 134.08 329.84 T
11702 31.25 441.18 107.14 470.2 14.51 RR
11703 7 X
11704 4 K
11706 0 X
11708 0 K
11709 (tree block) 45.38 451.6 T
11710 79.18 469.83 69.19 470.21 78.19 474.56 78.69 472.19 4 Y
11711 2 K
11713 258.89 509.2 78.69 472.18 2 L
11714 1 H
11716 156.06 354.67 148.23 348.45 152.23 357.61 154.14 356.14 4 Y
11718 269.92 508.11 154.15 356.13 2 L
11720 276.91 294.18 274.49 284.48 272.07 294.18 274.49 294.18 4 Y
11722 274.49 508.11 274.49 294.18 2 L
11724 393.79 360.6 397.73 351.41 389.93 357.68 391.86 359.14 4 Y
11726 279.77 508.11 391.88 359.12 2 L
11728 467.83 475.68 476.9 471.46 466.91 470.93 467.37 473.3 4 Y
11730 285.42 508.11 467.38 473.3 2 L
11732 41.67 393.38 89.17 406.77 6.7 RR
11733 7 X
11734 4 K
11736 0.2 H
11737 0 X
11739 1 8 Q
11740 0 K
11741 (tree node list) 44.76 397.35 T
11742 55.87 283.96 103.38 297.35 6.7 RR
11743 7 X
11744 4 K
11746 0 X
11748 0 K
11749 (tree node list) 58.97 287.93 T
11750 80.76 248.86 128.27 262.25 6.7 RR
11751 7 X
11752 4 K
11754 0 X
11756 0 K
11757 (tree node list) 83.86 252.82 T
11758 169 248.86 216.5 262.25 6.7 RR
11759 7 X
11760 4 K
11762 0 X
11764 0 K
11765 (tree node list) 172.1 252.82 T
11766 328.1 299.19 375.61 312.58 6.7 RR
11767 7 X
11768 4 K
11770 0 X
11772 0 K
11773 (tree node list) 331.2 303.16 T
11774 369.88 265.38 417.38 278.77 6.7 RR
11775 7 X
11776 4 K
11778 0 X
11780 0 K
11781 (tree node list) 372.98 269.34 T
11782 188.81 271.47 192.74 262.27 184.95 268.54 186.88 270 4 Y
11783 2 K
11785 149.81 319.35 186.89 269.98 2 L
11787 93.08 298.5 83.14 297.36 91.38 303.03 92.23 300.77 4 Y
11789 142.48 319.42 92.23 300.75 2 L
11791 67.76 416.48 65.34 406.77 62.92 416.48 65.34 416.48 4 Y
11793 65.34 441.18 65.34 416.48 2 L
11795 361.81 313.43 351.84 312.6 360.25 318.02 361.03 315.73 4 Y
11797 380.78 322.38 361.04 315.71 2 L
11799 395.99 288.5 393.61 278.79 391.15 288.48 393.57 288.49 4 Y
11801 393.45 322.38 393.59 288.47 2 L
11803 524.48 418.37 571.99 431.76 6.7 RR
11804 7 X
11805 4 K
11807 0 X
11809 0 K
11810 (tree node list) 527.58 422.34 T
11811 495.82 396.7 543.32 410.09 6.7 RR
11812 7 X
11813 4 K
11815 0 X
11817 0 K
11818 (tree node list) 498.92 400.67 T
11819 387.83 418.37 423.55 431.76 6.7 RR
11820 7 X
11821 4 K
11823 0 X
11825 0 K
11826 (operand) 392.81 422.34 T
11827 539.22 436.14 548.21 431.77 538.22 431.41 538.72 433.77 4 Y
11828 2 K
11830 496.82 442.43 538.74 433.76 2 L
11832 514.51 418.74 519.55 410.11 511.04 415.37 512.78 417.06 4 Y
11834 487.82 442.43 512.8 417.04 2 L
11836 478.49 394.75 475.9 385.09 473.65 394.83 476.07 394.79 4 Y
11838 476.91 442.43 476.07 394.79 2 L
11840 443.16 415.72 434.89 410.1 439.56 418.94 441.36 417.33 4 Y
11842 463.82 442.43 441.37 417.32 2 L
11844 415.23 431.77 405.23 431.76 414.05 436.47 414.64 434.12 4 Y
11846 451.8 443.19 414.65 434.12 2 L
11848 363.82 441.37 411.32 454.76 6.7 RR
11849 7 X
11850 4 K
11852 0 X
11854 0 K
11855 (var sym) 374.8 445.34 T
11856 421.29 451.12 411.3 451.65 420.37 455.87 420.83 453.5 4 Y
11857 2 K
11859 438.96 456.94 420.85 453.48 2 L
11861 342.81 672.2 350.42 665.71 340.65 667.87 341.73 670.04 4 Y
11863 261.96 709.42 341.74 670.04 2 L
11864 1 H
11866 112.35 268.47 104.51 262.27 108.52 271.43 110.43 269.95 4 Y
11868 148.24 319.42 110.44 269.93 2 L
11869 0.2 H
11871 285.5 136.07 317.96 149.46 6.7 RR
11872 7 X
11873 4 K
11875 0 X
11877 0 K
11878 (operand) 288.85 140.04 T
11879 259.92 142.76 282.24 142.76 2 L
11880 2 H
11881 10 X
11882 4 K
11884 248.24 155.73 240.43 149.49 244.39 158.67 246.32 157.2 4 Y
11885 0 X
11886 2 K
11888 264.1 180.72 246.33 157.17 2 L
11889 0.2 H
11891 255.49 94.6 296.86 104.32 4.86 RR
11892 7 X
11893 4 K
11895 0 X
11897 0 K
11898 (var sym) 263.4 96.97 T
11899 271.23 113.03 276.17 104.33 267.73 109.69 269.48 111.36 4 Y
11900 2 K
11902 245.09 136.82 269.48 111.35 2 L
11904 (or) 239.5 129.27 T
11905 198.65 651.38 301.32 651.38 2 L
11906 7 X
11907 4 K
11909 2 H
11910 10 X
11912 247.06 508.11 301.92 521.5 6.7 RR
11913 7 X
11915 0.2 H
11916 0 X
11918 1 9 Q
11919 0 K
11920 (tree node list) 251.28 511.74 T
11921 438.96 442.43 514.85 471.45 14.51 RR
11922 7 X
11923 4 K
11925 0.5 H
11926 0 X
11928 1 12 Q
11929 0 K
11930 (tree for) 459.43 452.85 T
11931 274.68 219.17 272.26 209.47 269.84 219.17 272.26 219.17 4 Y
11932 2 K
11934 272.26 255.42 272.26 219.17 2 L
11935 1 H
11937 298.36 158.65 302.32 149.47 294.51 155.72 296.43 157.18 4 Y
11939 278.67 180.71 296.45 157.16 2 L
11940 0.2 H
11942 2 8 Q
11943 4 K
11944 (lower bound) 367.75 411.18 T
11945 (upper bound) 396.76 387.97 T
11946 (step size) 458.95 364.3 T
11947 416.85 396.03 452.56 409.42 6.7 RR
11948 7 X
11950 0 X
11952 1 F
11953 0 K
11954 (operand) 421.83 400 T
11955 457.03 371.48 492.74 384.87 6.7 RR
11956 7 X
11957 4 K
11959 0 X
11961 0 K
11962 (operand) 462 375.45 T
11963 2 F
11964 4 K
11965 (body) 524.51 387.97 T
11966 (landing pad) 545.68 410.29 T
11967 (test part) 63.06 277.39 T
11968 (then part) 87.3 241.68 T
11969 (else part) 177.48 240.79 T
11970 (body) 384.4 256.44 T
11971 (test part) 334.8 291.27 T
11972 3 14 Q
11973 6 K
11974 (FILES) 540.66 646.1 T
11975 (GLOBAL) 521.24 718.82 T
11976 (PROCEDURES) 481.59 572.44 T
11977 (STRUCTURED) 483.94 290.55 T
11978 (CONTROL) 511.14 272.38 T
11979 (FLOW) 539.12 254.2 T
11980 (EXPRESSION) 489.34 170.75 T
11981 (TREES) 533.67 152.57 T
11982 156.13 478.86 M
11983  162.72 462.2 162.72 462.2 166.69 456.26 D
11984  170.67 450.32 170.67 450.32 175.53 445.18 D
11985  180.4 440.04 180.4 440.04 194.4 429.49 D
11986 2 H
11987 8 X
11988 4 K
11990 213.3 420 M
11991  225.01 416.07 225.01 416.07 230.72 414.74 D
11992  236.44 413.41 236.44 413.41 243.28 412.51 D
11993  250.13 411.61 250.13 411.61 265.27 411.25 D
11994 10 X
11996 281.23 412.56 M
11997  293.81 415.23 293.81 415.23 300.97 417.59 D
11998  308.12 419.96 308.12 419.96 314.49 422.96 D
11999  320.86 425.96 320.86 425.96 329.19 431.04 D
12000 9 X
12002 339.34 438.28 M
12003  347.25 445.87 347.25 445.87 350.54 449.9 D
12004  353.83 453.93 353.83 453.93 356.63 458.43 D
12005  359.43 462.94 359.43 462.94 361.45 467.44 D
12006  363.47 471.93 363.47 471.93 366.66 483.58 D
12008 2 8 Q
12009 0 X
12010 (Index) 357.65 433.52 T
12011 224.21 136.07 256.67 149.46 6.7 RR
12012 7 X
12014 0.2 H
12015 0 X
12017 1 F
12018 0 K
12019 (operand) 227.56 140.04 T
12020 156.24 84.95 232.13 113.97 14.51 RR
12021 7 X
12022 4 K
12024 0.5 H
12025 0 X
12027 1 12 Q
12028 0 K
12029 (instruction) 168.53 95.37 T
12030 210.38 117.09 200.87 113.99 207.81 121.19 209.1 119.14 4 Y
12031 2 K
12033 236.11 135.81 209.1 119.12 2 L
12034 0.2 H
12036 283.99 595.29 274.53 592.06 281.36 599.35 282.68 597.32 4 Y
12038 342.91 635.76 282.69 597.32 2 L
12039 1 H
12041 421.69 599.35 428.53 592.06 419.07 595.29 420.38 597.32 4 Y
12043 360.17 635.76 420.39 597.32 2 L
12045 234.32 180.45 310.2 209.47 14.51 RR
12046 7 X
12047 4 K
12049 0.5 H
12050 0 X
12052 0 K
12053 (instruction) 246.6 190.87 T
12054 0 0 612 792 C
12055 FMENDPAGE
12056 %%Trailer
12057 %%DocumentFonts: Times-Bold
12058 %%+ Times-Roman
12059 %%+ Helvetica
12060 %%+ Helvetica-Bold
12062 %%EndDocument
12064  endTexFig
12065  eop
12066 %%Page: 93 95
12067 93 94 bop 150 -116 a Fn(App)s(endix)3120 b(93)150 299
12068 y Fl(The)44 b(Sym)l(b)t(ol)h(T)-11 b(able)45 b(Represen)l(tation)275
12069 491 y Fn(The)35 b(\014rst)h(diagram)f(b)s(elo)m(w)h(illustrates)e(the)i
12070 (sym)m(b)s(ol)f(table)h(structure.)58 b(The)36 b(second)g(sho)m(ws)g
12071 (the)150 601 y(hierarc)m(h)m(y)i(of)h(sym)m(b)s(ol)f(tables.)65
12072 b(See)39 b(Section)g(5.1)h([Sym)m(b)s(ol)d(T)-8 b(able)39
12073 b(Hierarc)m(h)m(y],)i(page)f(37)f(for)g(more)150 711
12074 y(details.)750 829 y
12075  18945146 10988178 1184071 30785863 35522150 50915082 startTexFig
12076  750 829 a
12077 %%BeginDocument: suif_symtab.epsf
12078 %!PS-Adobe-2.0 EPSF-1.2
12079 %%BoundingBox: 18 468 540 774
12080 %%DocumentFonts: (atend)
12081 %%EndComments
12083 % FrameMaker PostScript Prolog 3.0, for use with FrameMaker 3.0
12084 % Copyright (c) 1986,87,89,90,91 by Frame Technology Corporation.
12085 % All rights reserved.
12087 % Modified to be sort of EPSF-compliant by bwilson@shasta.stanford.edu
12089 % Known Problems:
12090 %       - setscreen and settransfer are not EPSF-compliant but I think they
12091 %         will work anyway.
12092 %       - since Frame doesn't really calculate bounding boxes, you need to
12093 %         edit the output and manually determine the size of the bounding box
12095 /FMversion (3.0) def 
12096 % Set up Color vs. Black-and-White
12097         /FMPrintInColor systemdict /colorimage known
12098                 systemdict /currentcolortransfer known or def
12099 % Uncomment this line to force b&w on color printer
12100 %   /FMPrintInColor false def
12101 /FrameDict 195 dict def 
12102 systemdict /errordict known not {/errordict 10 dict def
12103                 errordict /rangecheck {stop} put} if
12104 % The readline in 23.0 doesn't recognize cr's as nl's on AppleTalk
12105 FrameDict /tmprangecheck errordict /rangecheck get put 
12106 errordict /rangecheck {FrameDict /bug true put} put 
12107 FrameDict /bug false put 
12108 mark 
12109 % Some PS machines read past the CR, so keep the following 3 lines together!
12110 currentfile 5 string readline
12112 0000000000
12113 cleartomark 
12114 errordict /rangecheck FrameDict /tmprangecheck get put 
12115 FrameDict /bug get { 
12116         /readline {
12117                 /gstring exch def
12118                 /gfile exch def
12119                 /gindex 0 def
12120                 {
12121                         gfile read pop 
12122                         dup 10 eq {exit} if 
12123                         dup 13 eq {exit} if 
12124                         gstring exch gindex exch put 
12125                         /gindex gindex 1 add def 
12126                 } loop
12127                 pop 
12128                 gstring 0 gindex getinterval true 
12129                 } def
12130         } if
12131 /FMVERSION {
12132         FMversion ne {
12133                 /Times-Roman findfont 18 scalefont setfont
12134                 100 100 moveto
12135                 (FrameMaker version does not match postscript_prolog!)
12136                 dup =
12137                 show showpage
12138                 } if
12139         } def 
12140 /FMLOCAL {
12141         FrameDict begin
12142         0 def 
12143         end 
12144         } def 
12145         /gstring FMLOCAL
12146         /gfile FMLOCAL
12147         /gindex FMLOCAL
12148         /orgxfer FMLOCAL
12149         /orgproc FMLOCAL
12150         /organgle FMLOCAL
12151         /orgfreq FMLOCAL
12152 /FMDOCUMENT { 
12153         array /FMfonts exch def 
12154         FrameDict begin
12155         pop
12156         pop
12157         pop
12158         pop
12159         /yscale exch def
12160         /xscale exch def
12161         currenttransfer cvlit /orgxfer exch def
12162         currentscreen cvlit /orgproc exch def
12163         /organgle exch def /orgfreq exch def
12164         end 
12165         } def 
12166         /pagesave FMLOCAL
12167         /orgmatrix FMLOCAL
12168         /landscape FMLOCAL
12169 /FMBEGINPAGE { 
12170         FrameDict begin 
12171         /pagesave save def
12172         3.86 setmiterlimit
12173         pop pop pop
12174         /landscape false def
12175         xscale yscale scale
12176         /orgmatrix matrix def
12177         gsave 
12178         } def 
12179 /FMENDPAGE {
12180         grestore 
12181         pagesave restore
12182         end 
12183         showpage
12184         } def 
12185 /FMFONTDEFINE { 
12186         FrameDict begin
12187         findfont 
12188         ReEncode 
12189         1 index exch 
12190         definefont 
12191         FMfonts 3 1 roll 
12192         put
12193         end 
12194         } def 
12195 /FMFILLS {
12196         FrameDict begin
12197         array /fillvals exch def
12198         end 
12199         } def 
12200 /FMFILL {
12201         FrameDict begin
12202         fillvals 3 1 roll put
12203         end 
12204         } def 
12205 /FMNORMALIZEGRAPHICS { 
12206         newpath
12207         0.0 0.0 moveto
12208         1 setlinewidth
12209         0 setlinecap
12210         0 0 0 sethsbcolor
12211         0 setgray 
12212         } bind def
12213         /fx FMLOCAL
12214         /fy FMLOCAL
12215         /fh FMLOCAL
12216         /fw FMLOCAL
12217         /llx FMLOCAL
12218         /lly FMLOCAL
12219         /urx FMLOCAL
12220         /ury FMLOCAL
12221 /FMBEGINEPSF { 
12222         end 
12223         /FMEPSF save def 
12224         /showpage {} def 
12225         FMNORMALIZEGRAPHICS 
12226         [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall 
12227         fx fy translate 
12228         rotate
12229         fw urx llx sub div fh ury lly sub div scale 
12230         llx neg lly neg translate 
12231         } bind def
12232 /FMENDEPSF {
12233         FMEPSF restore
12234         FrameDict begin 
12235         } bind def
12236 FrameDict begin 
12237 /max {2 copy lt {exch} if pop} bind def
12238 /min {2 copy gt {exch} if pop} bind def
12239 /inch {72 mul} def
12240 /savematrix {
12241         orgmatrix currentmatrix pop
12242         } bind def
12243 /restorematrix {
12244         orgmatrix setmatrix
12245         } bind def
12246 /dmatrix matrix def
12247 /dpi    72 0 dmatrix defaultmatrix dtransform
12248     dup mul exch   dup mul add   sqrt def
12249 /freq dpi 18.75 div 8 div round dup 0 eq {pop 1} if 8 mul dpi exch div def
12250 /sangle 1 0 dmatrix defaultmatrix dtransform exch atan def
12251 /DiacriticEncoding [
12252 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
12253 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
12254 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
12255 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
12256 /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl
12257 /numbersign /dollar /percent /ampersand /quotesingle /parenleft
12258 /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
12259 /two /three /four /five /six /seven /eight /nine /colon /semicolon
12260 /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K
12261 /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash
12262 /bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h
12263 /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar
12264 /braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute
12265 /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis
12266 /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis
12267 /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve
12268 /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex
12269 /udieresis /dagger /.notdef /cent /sterling /section /bullet
12270 /paragraph /germandbls /registered /copyright /trademark /acute
12271 /dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef
12272 /yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
12273 /ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown
12274 /exclamdown /logicalnot /.notdef /florin /.notdef /.notdef
12275 /guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde
12276 /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright
12277 /quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis
12278 /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl
12279 /periodcentered /quotesinglbase /quotedblbase /perthousand
12280 /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute
12281 /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve
12282 /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron
12283 /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron
12284 ] def
12285 /ReEncode { 
12286         dup 
12287         length 
12288         dict begin 
12289         {
12290         1 index /FID ne 
12291                 {def} 
12292                 {pop pop} ifelse 
12293         } forall 
12294         0 eq {/Encoding DiacriticEncoding def} if 
12295         currentdict 
12296         end 
12297         } bind def
12298 /graymode true def
12299         /bwidth FMLOCAL
12300         /bpside FMLOCAL
12301         /bstring FMLOCAL
12302         /onbits FMLOCAL
12303         /offbits FMLOCAL
12304         /xindex FMLOCAL
12305         /yindex FMLOCAL
12306         /x FMLOCAL
12307         /y FMLOCAL
12308 /setpattern {
12309          /bwidth  exch def
12310          /bpside  exch def
12311          /bstring exch def
12312          /onbits 0 def  /offbits 0 def
12313          freq sangle landscape {90 add} if 
12314                 {/y exch def
12315                  /x exch def
12316                  /xindex x 1 add 2 div bpside mul cvi def
12317                  /yindex y 1 add 2 div bpside mul cvi def
12318                  bstring yindex bwidth mul xindex 8 idiv add get
12319                  1 7 xindex 8 mod sub bitshift and 0 ne
12320                  {/onbits  onbits  1 add def 1}
12321                  {/offbits offbits 1 add def 0}
12322                  ifelse
12323                 }
12324                 setscreen
12325          {} settransfer
12326          offbits offbits onbits add div FMsetgray
12327         /graymode false def
12328         } bind def
12329 /grayness {
12330         FMsetgray
12331         graymode not {
12332                 /graymode true def
12333                 orgxfer cvx settransfer
12334                 orgfreq organgle orgproc cvx setscreen
12335                 } if
12336         } bind def
12337         /HUE FMLOCAL
12338         /SAT FMLOCAL
12339         /BRIGHT FMLOCAL
12340         /Colors FMLOCAL
12341 FMPrintInColor
12343         {
12344         /HUE 0 def
12345         /SAT 0 def
12346         /BRIGHT 0 def
12347         % array of arrays Hue and Sat values for the separations [HUE BRIGHT]
12348         /Colors   
12349         [[0    0  ]    % black
12350          [0    0  ]    % white
12351          [0.00 1.0]    % red
12352          [0.37 1.0]    % green
12353          [0.60 1.0]    % blue
12354          [0.50 1.0]    % cyan
12355          [0.83 1.0]    % magenta
12356          [0.16 1.0]    % comment / yellow
12357          ] def
12358       
12359         /BEGINBITMAPCOLOR { 
12360                 BITMAPCOLOR} def
12361         /BEGINBITMAPCOLORc { 
12362                 BITMAPCOLORc} def
12363         /BEGINBITMAPTRUECOLOR { 
12364                 BITMAPTRUECOLOR } def
12365         /BEGINBITMAPTRUECOLORc { 
12366                 BITMAPTRUECOLORc } def
12367         /K { 
12368                 Colors exch get dup
12369                 0 get /HUE exch store 
12370                 1 get /BRIGHT exch store
12371                   HUE 0 eq BRIGHT 0 eq and
12372                         {1.0 SAT sub setgray}
12373                         {HUE SAT BRIGHT sethsbcolor} 
12374                   ifelse
12375                 } def
12376         /FMsetgray { 
12377                 /SAT exch 1.0 exch sub store 
12378                   HUE 0 eq BRIGHT 0 eq and
12379                         {1.0 SAT sub setgray}
12380                         {HUE SAT BRIGHT sethsbcolor} 
12381                   ifelse
12382                 } bind def
12383         }
12384         
12385         {
12386         /BEGINBITMAPCOLOR { 
12387                 BITMAPGRAY} def
12388         /BEGINBITMAPCOLORc { 
12389                 BITMAPGRAYc} def
12390         /BEGINBITMAPTRUECOLOR { 
12391                 BITMAPTRUEGRAY } def
12392         /BEGINBITMAPTRUECOLORc { 
12393                 BITMAPTRUEGRAYc } def
12394         /FMsetgray {setgray} bind def
12395         /K { 
12396                 pop
12397                 } def
12398         }
12399 ifelse
12400 /normalize {
12401         transform round exch round exch itransform
12402         } bind def
12403 /dnormalize {
12404         dtransform round exch round exch idtransform
12405         } bind def
12406 /lnormalize { 
12407         0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop
12408         } bind def
12409 /H { 
12410         lnormalize setlinewidth
12411         } bind def
12412 /Z {
12413         setlinecap
12414         } bind def
12415         /fillvals FMLOCAL
12416 /X { 
12417         fillvals exch get
12418         dup type /stringtype eq
12419         {8 1 setpattern} 
12420         {grayness}
12421         ifelse
12422         } bind def
12423 /V { 
12424         gsave eofill grestore
12425         } bind def
12426 /N { 
12427         stroke
12428         } bind def
12429 /M {newpath moveto} bind def
12430 /E {lineto} bind def
12431 /D {curveto} bind def
12432 /O {closepath} bind def
12433         /n FMLOCAL
12434 /L { 
12435         /n exch def
12436         newpath
12437         normalize
12438         moveto 
12439         2 1 n {pop normalize lineto} for
12440         } bind def
12441 /Y { 
12442         L 
12443         closepath
12444         } bind def
12445         /x1 FMLOCAL
12446         /x2 FMLOCAL
12447         /y1 FMLOCAL
12448         /y2 FMLOCAL
12449         /rad FMLOCAL
12450 /R { 
12451         /y2 exch def
12452         /x2 exch def
12453         /y1 exch def
12454         /x1 exch def
12455         x1 y1
12456         x2 y1
12457         x2 y2
12458         x1 y2
12459         4 Y 
12460         } bind def
12461 /RR { 
12462         /rad exch def
12463         normalize
12464         /y2 exch def
12465         /x2 exch def
12466         normalize
12467         /y1 exch def
12468         /x1 exch def
12469         newpath
12470         x1 y1 rad add moveto
12471         x1 y2 x2 y2 rad arcto
12472         x2 y2 x2 y1 rad arcto
12473         x2 y1 x1 y1 rad arcto
12474         x1 y1 x1 y2 rad arcto
12475         closepath
12476         16 {pop} repeat
12477         } bind def
12478 /C { 
12479         grestore
12480         gsave
12481         R 
12482         clip
12483         } bind def
12484         /FMpointsize FMLOCAL
12485 /F { 
12486         FMfonts exch get
12487         FMpointsize scalefont
12488         setfont
12489         } bind def
12490 /Q { 
12491         /FMpointsize exch def
12492         F 
12493         } bind def
12494 /T { 
12495         moveto show
12496         } bind def
12497 /RF { 
12498         rotate
12499         0 ne {-1 1 scale} if
12500         } bind def
12501 /TF { 
12502         gsave
12503         moveto 
12504         RF
12505         show
12506         grestore
12507         } bind def
12508 /P { 
12509         moveto
12510         0 32 3 2 roll widthshow
12511         } bind def
12512 /PF { 
12513         gsave
12514         moveto 
12515         RF
12516         0 32 3 2 roll widthshow
12517         grestore
12518         } bind def
12519 /S { 
12520         moveto
12521         0 exch ashow
12522         } bind def
12523 /SF { 
12524         gsave
12525         moveto
12526         RF
12527         0 exch ashow
12528         grestore
12529         } bind def
12530 /B { 
12531         moveto
12532         0 32 4 2 roll 0 exch awidthshow
12533         } bind def
12534 /BF { 
12535         gsave
12536         moveto
12537         RF
12538         0 32 4 2 roll 0 exch awidthshow
12539         grestore
12540         } bind def
12541 /G { 
12542         gsave
12543         newpath
12544         normalize translate 0.0 0.0 moveto 
12545         dnormalize scale 
12546         0.0 0.0 1.0 5 3 roll arc 
12547         closepath fill
12548         grestore
12549         } bind def
12550 /A { 
12551         gsave
12552         savematrix
12553         newpath
12554         2 index 2 div add exch 3 index 2 div sub exch 
12555         normalize 2 index 2 div sub exch 3 index 2 div add exch 
12556         translate 
12557         scale 
12558         0.0 0.0 1.0 5 3 roll arc 
12559         restorematrix
12560         stroke
12561         grestore
12562         } bind def
12563         /x FMLOCAL
12564         /y FMLOCAL
12565         /w FMLOCAL
12566         /h FMLOCAL
12567         /xx FMLOCAL
12568         /yy FMLOCAL
12569         /ww FMLOCAL
12570         /hh FMLOCAL
12571         /FMsaveobject FMLOCAL
12572         /FMoptop FMLOCAL
12573         /FMdicttop FMLOCAL
12574 /BEGINPRINTCODE { 
12575         /FMdicttop countdictstack 1 add def 
12576         /FMoptop count 4 sub def 
12577         /FMsaveobject save def
12578         userdict begin 
12579         /showpage {} def 
12580         FMNORMALIZEGRAPHICS 
12581         3 index neg 3 index neg translate
12582         } bind def
12583 /ENDPRINTCODE {
12584         count -1 FMoptop {pop pop} for 
12585         countdictstack -1 FMdicttop {pop end} for 
12586         FMsaveobject restore 
12587         } bind def
12588 /gn { 
12589         0 
12590         {       46 mul 
12591                 cf read pop 
12592                 32 sub 
12593                 dup 46 lt {exit} if 
12594                 46 sub add 
12595                 } loop
12596         add 
12597         } bind def
12598         /str FMLOCAL
12599 /cfs { 
12600         /str sl string def 
12601         0 1 sl 1 sub {str exch val put} for 
12602         str def 
12603         } bind def
12604 /ic [ 
12605         0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
12606         0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
12607         0
12608         {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx}
12609         {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx}
12610         {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12}
12611         {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh}
12612         {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh}
12613         {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl}
12614         {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl}
12615         {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl}
12616         {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl}
12617         ] def
12618         /sl FMLOCAL
12619         /val FMLOCAL
12620         /ws FMLOCAL
12621         /im FMLOCAL
12622         /bs FMLOCAL
12623         /cs FMLOCAL
12624         /len FMLOCAL
12625         /pos FMLOCAL
12626 /ms { 
12627         /sl exch def 
12628         /val 255 def 
12629         /ws cfs 
12630         /im cfs 
12631         /val 0 def 
12632         /bs cfs 
12633         /cs cfs 
12634         } bind def
12635 400 ms 
12636 /ip { 
12637         is 
12638         0 
12639         cf cs readline pop 
12640         {       ic exch get exec 
12641                 add 
12642                 } forall 
12643         pop 
12644         
12645         } bind def
12646 /wh { 
12647         /len exch def 
12648         /pos exch def 
12649         ws 0 len getinterval im pos len getinterval copy pop
12650         pos len 
12651         } bind def
12652 /bl { 
12653         /len exch def 
12654         /pos exch def 
12655         bs 0 len getinterval im pos len getinterval copy pop
12656         pos len 
12657         } bind def
12658 /s1 1 string def
12659 /fl { 
12660         /len exch def 
12661         /pos exch def 
12662         /val cf s1 readhexstring pop 0 get def
12663         pos 1 pos len add 1 sub {im exch val put} for
12664         pos len 
12665         } bind def
12666 /hx { 
12667         3 copy getinterval 
12668         cf exch readhexstring pop pop 
12669         } bind def
12670         /h FMLOCAL
12671         /w FMLOCAL
12672         /d FMLOCAL
12673         /lb FMLOCAL
12674         /bitmapsave FMLOCAL
12675         /is FMLOCAL
12676         /cf FMLOCAL
12677 /wbytes { 
12678         dup 
12679         8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse
12680         } bind def
12681 /BEGINBITMAPBWc { 
12682         1 {} COMMONBITMAPc
12683         } bind def
12684 /BEGINBITMAPGRAYc { 
12685         8 {} COMMONBITMAPc
12686         } bind def
12687 /BEGINBITMAP2BITc { 
12688         2 {} COMMONBITMAPc
12689         } bind def
12690 /COMMONBITMAPc { 
12691         /r exch def
12692         /d exch def
12693         gsave
12694         translate rotate scale /h exch def /w exch def
12695         /lb w d wbytes def 
12696         sl lb lt {lb ms} if 
12697         /bitmapsave save def 
12698         r                    
12699         /is im 0 lb getinterval def 
12700         ws 0 lb getinterval is copy pop 
12701         /cf currentfile def 
12702         w h d [w 0 0 h neg 0 h] 
12703         {ip} image 
12704         bitmapsave restore 
12705         grestore
12706         } bind def
12707 /BEGINBITMAPBW { 
12708         1 {} COMMONBITMAP
12709         } bind def
12710 /BEGINBITMAPGRAY { 
12711         8 {} COMMONBITMAP
12712         } bind def
12713 /BEGINBITMAP2BIT { 
12714         2 {} COMMONBITMAP
12715         } bind def
12716 /COMMONBITMAP { 
12717         /r exch def
12718         /d exch def
12719         gsave
12720         translate rotate scale /h exch def /w exch def
12721         /bitmapsave save def 
12722         r                    
12723         /is w d wbytes string def
12724         /cf currentfile def 
12725         w h d [w 0 0 h neg 0 h] 
12726         {cf is readhexstring pop} image
12727         bitmapsave restore 
12728         grestore
12729         } bind def
12730         /proc1 FMLOCAL
12731         /proc2 FMLOCAL
12732         /newproc FMLOCAL
12733 /Fmcc {
12734     /proc2 exch cvlit def
12735     /proc1 exch cvlit def
12736     /newproc proc1 length proc2 length add array def
12737     newproc 0 proc1 putinterval
12738     newproc proc1 length proc2 putinterval
12739     newproc cvx
12740 } bind def
12741 /ngrayt 256 array def
12742 /nredt 256 array def
12743 /nbluet 256 array def
12744 /ngreent 256 array def
12745         /gryt FMLOCAL
12746         /blut FMLOCAL
12747         /grnt FMLOCAL
12748         /redt FMLOCAL
12749         /indx FMLOCAL
12750         /cynu FMLOCAL
12751         /magu FMLOCAL
12752         /yelu FMLOCAL
12753         /k FMLOCAL
12754         /u FMLOCAL
12755 /colorsetup {
12756         currentcolortransfer
12757         /gryt exch def
12758         /blut exch def
12759         /grnt exch def
12760         /redt exch def
12761         0 1 255 {
12762                 /indx exch def
12763                 /cynu 1 red indx get 255 div sub def
12764                 /magu 1 green indx get 255 div sub def
12765                 /yelu 1 blue indx get 255 div sub def
12766                 /k cynu magu min yelu min def
12767                 /u k currentundercolorremoval exec def
12768                 nredt indx 1 0 cynu u sub max sub redt exec put
12769                 ngreent indx 1 0 magu u sub max sub grnt exec put
12770                 nbluet indx 1 0 yelu u sub max sub blut exec put
12771                 ngrayt indx 1 k currentblackgeneration exec sub gryt exec put
12772         } for
12773         {255 mul cvi nredt exch get}
12774         {255 mul cvi ngreent exch get}
12775         {255 mul cvi nbluet exch get}
12776         {255 mul cvi ngrayt exch get}
12777         setcolortransfer
12778         {pop 0} setundercolorremoval
12779         {} setblackgeneration
12780         } bind def
12781         /tran FMLOCAL
12782 /fakecolorsetup {
12783         /tran 256 string def
12784         0 1 255 {/indx exch def 
12785                 tran indx
12786                 red indx get 77 mul
12787                 green indx get 151 mul
12788                 blue indx get 28 mul
12789                 add add 256 idiv put} for
12790         currenttransfer
12791         {255 mul cvi tran exch get 255.0 div}
12792         exch Fmcc settransfer
12793 } bind def
12794 /BITMAPCOLOR { 
12795         /d 8 def
12796         gsave
12797         translate rotate scale /h exch def /w exch def
12798         /bitmapsave save def 
12799         colorsetup
12800         /is w d wbytes string def
12801         /cf currentfile def 
12802         w h d [w 0 0 h neg 0 h] 
12803         {cf is readhexstring pop} {is} {is} true 3 colorimage 
12804         bitmapsave restore 
12805         grestore
12806         } bind def
12807 /BITMAPCOLORc { 
12808         /d 8 def
12809         gsave
12810         translate rotate scale /h exch def /w exch def
12811         /lb w d wbytes def 
12812         sl lb lt {lb ms} if 
12813         /bitmapsave save def 
12814         colorsetup
12815         /is im 0 lb getinterval def 
12816         ws 0 lb getinterval is copy pop 
12817         /cf currentfile def 
12818         w h d [w 0 0 h neg 0 h] 
12819         {ip} {is} {is} true 3 colorimage
12820         bitmapsave restore 
12821         grestore
12822         } bind def
12823 /BITMAPTRUECOLORc { 
12824         gsave
12825         translate rotate scale /h exch def /w exch def
12826         /bitmapsave save def 
12827         
12828         /is w string def
12829         
12830         ws 0 w getinterval is copy pop 
12831         /cf currentfile def 
12832         w h 8 [w 0 0 h neg 0 h] 
12833         {ip} {gip} {bip} true 3 colorimage
12834         bitmapsave restore 
12835         grestore
12836         } bind def
12837 /BITMAPTRUECOLOR { 
12838         gsave
12839         translate rotate scale /h exch def /w exch def
12840         /bitmapsave save def 
12841         /is w string def
12842         /gis w string def
12843         /bis w string def
12844         /cf currentfile def 
12845         w h 8 [w 0 0 h neg 0 h] 
12846         { cf is readhexstring pop } 
12847         { cf gis readhexstring pop } 
12848         { cf bis readhexstring pop } 
12849         true 3 colorimage 
12850         bitmapsave restore 
12851         grestore
12852         } bind def
12853 /BITMAPTRUEGRAYc { 
12854         gsave
12855         translate rotate scale /h exch def /w exch def
12856         /bitmapsave save def 
12857         
12858         /is w string def
12859         
12860         ws 0 w getinterval is copy pop 
12861         /cf currentfile def 
12862         w h 8 [w 0 0 h neg 0 h] 
12863         {ip gip bip w gray} image
12864         bitmapsave restore 
12865         grestore
12866         } bind def
12867 /ww FMLOCAL
12868 /r FMLOCAL
12869 /g FMLOCAL
12870 /b FMLOCAL
12871 /i FMLOCAL
12872 /gray { 
12873         /ww exch def
12874         /b exch def
12875         /g exch def
12876         /r exch def
12877         0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul
12878                         b i get .114 mul add add r i 3 -1 roll floor cvi put } for
12879         r
12880         } bind def
12881 /BITMAPTRUEGRAY { 
12882         gsave
12883         translate rotate scale /h exch def /w exch def
12884         /bitmapsave save def 
12885         /is w string def
12886         /gis w string def
12887         /bis w string def
12888         /cf currentfile def 
12889         w h 8 [w 0 0 h neg 0 h] 
12890         { cf is readhexstring pop 
12891           cf gis readhexstring pop 
12892           cf bis readhexstring pop w gray}  image
12893         bitmapsave restore 
12894         grestore
12895         } bind def
12896 /BITMAPGRAY { 
12897         8 {fakecolorsetup} COMMONBITMAP
12898         } bind def
12899 /BITMAPGRAYc { 
12900         8 {fakecolorsetup} COMMONBITMAPc
12901         } bind def
12902 /ENDBITMAP {
12903         } bind def
12904 end 
12905         /ALDsave FMLOCAL
12906         /ALDmatrix matrix def ALDmatrix currentmatrix pop
12907 /StartALD {
12908         /ALDsave save def
12909          savematrix
12910          ALDmatrix setmatrix
12911         } bind def
12912 /InALD {
12913          restorematrix
12914         } bind def
12915 /DoneALD {
12916          ALDsave restore
12917         } bind def
12918 %%EndProlog
12919 %%BeginSetup
12920 (3.0) FMVERSION
12921 1 1 612 792 0 1 4 FMDOCUMENT
12922 0 0 /Times-Roman FMFONTDEFINE
12923 1 0 /Times-Bold FMFONTDEFINE
12924 2 0 /Helvetica FMFONTDEFINE
12925 32 FMFILLS
12926 0 0 FMFILL
12927 1 0.1 FMFILL
12928 2 0.3 FMFILL
12929 3 0.5 FMFILL
12930 4 0.7 FMFILL
12931 5 0.9 FMFILL
12932 6 0.97 FMFILL
12933 7 1 FMFILL
12934 8 <0f1e3c78f0e1c387> FMFILL
12935 9 <0f87c3e1f0783c1e> FMFILL
12936 10 <cccccccccccccccc> FMFILL
12937 11 <ffff0000ffff0000> FMFILL
12938 12 <8142241818244281> FMFILL
12939 13 <03060c183060c081> FMFILL
12940 14 <8040201008040201> FMFILL
12941 16 1 FMFILL
12942 17 0.9 FMFILL
12943 18 0.7 FMFILL
12944 19 0.5 FMFILL
12945 20 0.3 FMFILL
12946 21 0.1 FMFILL
12947 22 0.03 FMFILL
12948 23 0 FMFILL
12949 24 <f0e1c3870f1e3c78> FMFILL
12950 25 <f0783c1e0f87c3e1> FMFILL
12951 26 <3333333333333333> FMFILL
12952 27 <0000ffff0000ffff> FMFILL
12953 28 <7ebddbe7e7dbbd7e> FMFILL
12954 29 <fcf9f3e7cf9f3f7e> FMFILL
12955 30 <7fbfdfeff7fbfdfe> FMFILL
12956 %%EndSetup
12957 612 792 0 FMBEGINPAGE
12958 22.32 17.5 587.02 780.84 C
12959 261.14 620.48 308.13 639.89 9.7 RR
12960 7 X
12961 4 K
12963 0.2 H
12964 2 Z
12965 0 X
12967 0 10 Q
12968 0 K
12969 (base type) 265.9 627.13 T
12970 79.78 660.99 155.67 680.4 9.7 RR
12971 4 K
12973 0 K
12974 (symbol list) 95.64 667.65 T
12975 159.75 611.36 199.93 624.75 6.7 RR
12976 4 K
12978 0 9 Q
12979 0 K
12980 (proc) 171.85 614.99 T
12981 96.61 611.36 136.78 624.75 6.7 RR
12982 4 K
12984 0 K
12985 (label) 107.96 614.99 T
12986 33.48 611.36 73.66 624.75 6.7 RR
12987 4 K
12989 0 K
12990 (var) 47.83 614.99 T
12991 120.53 499.76 176.37 513.15 6.7 RR
12992 7 X
12993 4 K
12995 0 X
12997 0 K
12998 (symbol table) 125.36 503.39 T
12999 210.61 499.76 263.37 513.15 6.7 RR
13000 7 X
13001 4 K
13003 0 X
13005 0 K
13006 (symbol table) 213.9 503.39 T
13007 79.19 618.05 91.86 618.05 2 L
13008 2 H
13009 10 X
13010 4 K
13012 142.19 618.05 154.86 618.05 2 L
13014 182.45 506.45 204.06 506.45 2 L
13016 269.95 588.89 316.94 608.29 9.7 RR
13017 7 X
13019 0.2 H
13020 0 X
13022 0 10 Q
13023 0 K
13024 (array type) 273.33 595.54 T
13025 303.43 557.64 350.42 577.05 9.7 RR
13026 7 X
13027 4 K
13029 0 X
13031 0 K
13032 (func type) 308.19 564.29 T
13033 473.07 588.89 520.06 608.29 9.7 RR
13034 7 X
13035 4 K
13037 0 X
13039 0 K
13040 (enum type) 475.6 595.54 T
13041 437.47 557.64 484.46 577.05 9.7 RR
13042 7 X
13043 4 K
13045 0 X
13047 0 K
13048 (sttruct type) 438.62 564.29 T
13049 481.99 620.48 528.98 639.89 9.7 RR
13050 7 X
13051 4 K
13053 0 X
13055 0 K
13056 (ptr) 489.11 627.13 T
13057 (. type) 499.66 627.13 T
13058 363.82 544.25 420.56 563.65 9.7 RR
13059 7 X
13060 4 K
13062 0 X
13064 0 K
13065 (modi\336er type) 365.39 550.9 T
13066 395.04 573.24 392.17 563.66 390.2 573.47 392.62 573.36 4 Y
13067 2 K
13069 396.7 660.99 392.64 573.35 2 L
13071 457.41 586.42 460.94 577.06 453.43 583.67 455.42 585.04 4 Y
13073 403.99 660.31 455.45 585.03 2 L
13075 489.65 615.54 496.54 608.3 487.06 611.46 488.35 613.5 4 Y
13077 412.77 660.99 488.37 613.5 2 L
13079 496.69 644.67 505.47 639.89 495.47 639.99 496.08 642.33 4 Y
13081 420.67 661.45 496.1 642.33 2 L
13083 334.81 583.2 326.92 577.05 330.99 586.18 332.9 584.69 4 Y
13085 392.1 660.99 332.91 584.69 2 L
13087 303.03 611.13 293.44 608.3 300.58 615.3 301.81 613.21 4 Y
13089 384.1 660.99 301.82 613.21 2 L
13091 294.63 639.84 284.63 639.89 293.49 644.54 294.06 642.19 4 Y
13093 373.91 661.22 294.07 642.18 2 L
13095 358.76 660.99 434.65 680.4 9.7 RR
13096 7 X
13097 4 K
13099 0 X
13101 0 K
13102 (type list) 380.74 667.65 T
13103 456.05 636.86 459.79 648.34 2 L
13104 2 H
13105 9 X
13106 4 K
13108 338.3 637.11 335.35 647.09 2 L
13109 8 X
13111 272.68 749.59 348.57 778.61 14.51 RR
13112 7 X
13114 0.5 H
13115 0 X
13117 1 12 Q
13118 0 K
13119 (symbol table) 278.14 760.01 T
13120 391.33 688.83 396.71 680.4 388 685.32 389.67 687.08 4 Y
13121 2 K
13123 324.08 749.59 389.66 687.08 2 L
13124 0.2 H
13126 201.44 575.62 194.12 568.81 197.39 578.26 199.42 576.94 4 Y
13128 310.63 749.59 199.42 576.93 2 L
13130 127.64 681.7 117.72 680.4 125.87 686.2 126.75 683.95 4 Y
13132 295.08 749.59 126.75 683.95 2 L
13134 156.39 519.23 148.45 513.15 152.61 522.24 154.5 520.73 4 Y
13136 177.19 549.39 154.5 520.73 2 L
13138 234.21 522.77 236.98 513.16 230.03 520.35 232.12 521.56 4 Y
13140 216.21 549.39 232.13 521.55 2 L
13142 120.14 634.99 117.72 625.28 115.31 634.99 117.72 634.99 4 Y
13144 117.72 660.99 117.72 634.99 2 L
13146 173.35 632.38 179.83 624.76 170.53 628.44 171.94 630.41 4 Y
13148 128.76 660.99 171.95 630.4 2 L
13150 62.93 628.26 53.57 624.76 60.19 632.25 61.56 630.26 4 Y
13152 106.76 660.99 61.56 630.25 2 L
13154 439.45 617.36 M
13155  445.04 621.92 445.04 621.92 452.67 630.82 D
13156 2 H
13157 9 X
13158 4 K
13160 397.3 604.51 M
13161  410.1 605.55 410.1 605.55 414.37 606.51 D
13162  418.64 607.46 418.64 607.46 422.31 608.73 D
13163  425.98 609.99 425.98 609.99 431.94 612.74 D
13165 359.83 614.31 M
13166  367.4 610.49 367.4 610.49 371.93 608.9 D
13167  376.47 607.32 376.47 607.32 387.46 605.12 D
13168 8 X
13170 342.12 630.52 347.65 623.77 353.11 618.88 3 L
13172 152.42 549.39 235.84 568.8 9.7 RR
13173 7 X
13175 0.2 H
13176 0 X
13178 0 10 Q
13179 0 K
13180 (symbol table list) 161.09 556.05 T
13181 2 8 Q
13182 4 K
13183 (children list) 122.95 540.65 T
13184 0 0 612 792 C
13185 FMENDPAGE
13186 %%Trailer
13187 %%DocumentFonts: Times-Roman
13188 %%+ Times-Bold
13189 %%+ Helvetica
13191 %%EndDocument
13193  endTexFig
13194  1200 2340 a
13195  11840716 21550098 1184071 14208860 21313290 50915082 startTexFig
13196  1200 2340 a
13197 %%BeginDocument: suif_struct_with_symtab.epsf
13198 %!PS-Adobe-2.0 EPSF-1.2
13199 %%BoundingBox: 18 216 324 774
13200 %%DocumentFonts: (atend)
13201 %%EndComments
13203 % FrameMaker PostScript Prolog 3.0, for use with FrameMaker 3.0
13204 % Copyright (c) 1986,87,89,90,91 by Frame Technology Corporation.
13205 % All rights reserved.
13207 % Modified to be sort of EPSF-compliant by bwilson@shasta.stanford.edu
13209 % Known Problems:
13210 %       - setscreen and settransfer are not EPSF-compliant but I think they
13211 %         will work anyway.
13212 %       - since Frame doesn't really calculate bounding boxes, you need to
13213 %         edit the output and manually determine the size of the bounding box
13215 /FMversion (3.0) def 
13216 % Set up Color vs. Black-and-White
13217         /FMPrintInColor systemdict /colorimage known
13218                 systemdict /currentcolortransfer known or def
13219 % Uncomment this line to force b&w on color printer
13220 %   /FMPrintInColor false def
13221 /FrameDict 195 dict def 
13222 systemdict /errordict known not {/errordict 10 dict def
13223                 errordict /rangecheck {stop} put} if
13224 % The readline in 23.0 doesn't recognize cr's as nl's on AppleTalk
13225 FrameDict /tmprangecheck errordict /rangecheck get put 
13226 errordict /rangecheck {FrameDict /bug true put} put 
13227 FrameDict /bug false put 
13228 mark 
13229 % Some PS machines read past the CR, so keep the following 3 lines together!
13230 currentfile 5 string readline
13232 0000000000
13233 cleartomark 
13234 errordict /rangecheck FrameDict /tmprangecheck get put 
13235 FrameDict /bug get { 
13236         /readline {
13237                 /gstring exch def
13238                 /gfile exch def
13239                 /gindex 0 def
13240                 {
13241                         gfile read pop 
13242                         dup 10 eq {exit} if 
13243                         dup 13 eq {exit} if 
13244                         gstring exch gindex exch put 
13245                         /gindex gindex 1 add def 
13246                 } loop
13247                 pop 
13248                 gstring 0 gindex getinterval true 
13249                 } def
13250         } if
13251 /FMVERSION {
13252         FMversion ne {
13253                 /Times-Roman findfont 18 scalefont setfont
13254                 100 100 moveto
13255                 (FrameMaker version does not match postscript_prolog!)
13256                 dup =
13257                 show showpage
13258                 } if
13259         } def 
13260 /FMLOCAL {
13261         FrameDict begin
13262         0 def 
13263         end 
13264         } def 
13265         /gstring FMLOCAL
13266         /gfile FMLOCAL
13267         /gindex FMLOCAL
13268         /orgxfer FMLOCAL
13269         /orgproc FMLOCAL
13270         /organgle FMLOCAL
13271         /orgfreq FMLOCAL
13272 /FMDOCUMENT { 
13273         array /FMfonts exch def 
13274         FrameDict begin
13275         pop
13276         pop
13277         pop
13278         pop
13279         /yscale exch def
13280         /xscale exch def
13281         currenttransfer cvlit /orgxfer exch def
13282         currentscreen cvlit /orgproc exch def
13283         /organgle exch def /orgfreq exch def
13284         end 
13285         } def 
13286         /pagesave FMLOCAL
13287         /orgmatrix FMLOCAL
13288         /landscape FMLOCAL
13289 /FMBEGINPAGE { 
13290         FrameDict begin 
13291         /pagesave save def
13292         3.86 setmiterlimit
13293         pop pop pop
13294         /landscape false def
13295         xscale yscale scale
13296         /orgmatrix matrix def
13297         gsave 
13298         } def 
13299 /FMENDPAGE {
13300         grestore 
13301         pagesave restore
13302         end 
13303         showpage
13304         } def 
13305 /FMFONTDEFINE { 
13306         FrameDict begin
13307         findfont 
13308         ReEncode 
13309         1 index exch 
13310         definefont 
13311         FMfonts 3 1 roll 
13312         put
13313         end 
13314         } def 
13315 /FMFILLS {
13316         FrameDict begin
13317         array /fillvals exch def
13318         end 
13319         } def 
13320 /FMFILL {
13321         FrameDict begin
13322         fillvals 3 1 roll put
13323         end 
13324         } def 
13325 /FMNORMALIZEGRAPHICS { 
13326         newpath
13327         0.0 0.0 moveto
13328         1 setlinewidth
13329         0 setlinecap
13330         0 0 0 sethsbcolor
13331         0 setgray 
13332         } bind def
13333         /fx FMLOCAL
13334         /fy FMLOCAL
13335         /fh FMLOCAL
13336         /fw FMLOCAL
13337         /llx FMLOCAL
13338         /lly FMLOCAL
13339         /urx FMLOCAL
13340         /ury FMLOCAL
13341 /FMBEGINEPSF { 
13342         end 
13343         /FMEPSF save def 
13344         /showpage {} def 
13345         FMNORMALIZEGRAPHICS 
13346         [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall 
13347         fx fy translate 
13348         rotate
13349         fw urx llx sub div fh ury lly sub div scale 
13350         llx neg lly neg translate 
13351         } bind def
13352 /FMENDEPSF {
13353         FMEPSF restore
13354         FrameDict begin 
13355         } bind def
13356 FrameDict begin 
13357 /max {2 copy lt {exch} if pop} bind def
13358 /min {2 copy gt {exch} if pop} bind def
13359 /inch {72 mul} def
13360 /savematrix {
13361         orgmatrix currentmatrix pop
13362         } bind def
13363 /restorematrix {
13364         orgmatrix setmatrix
13365         } bind def
13366 /dmatrix matrix def
13367 /dpi    72 0 dmatrix defaultmatrix dtransform
13368     dup mul exch   dup mul add   sqrt def
13369 /freq dpi 18.75 div 8 div round dup 0 eq {pop 1} if 8 mul dpi exch div def
13370 /sangle 1 0 dmatrix defaultmatrix dtransform exch atan def
13371 /DiacriticEncoding [
13372 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
13373 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
13374 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
13375 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
13376 /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl
13377 /numbersign /dollar /percent /ampersand /quotesingle /parenleft
13378 /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
13379 /two /three /four /five /six /seven /eight /nine /colon /semicolon
13380 /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K
13381 /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash
13382 /bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h
13383 /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar
13384 /braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute
13385 /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis
13386 /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis
13387 /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve
13388 /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex
13389 /udieresis /dagger /.notdef /cent /sterling /section /bullet
13390 /paragraph /germandbls /registered /copyright /trademark /acute
13391 /dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef
13392 /yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
13393 /ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown
13394 /exclamdown /logicalnot /.notdef /florin /.notdef /.notdef
13395 /guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde
13396 /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright
13397 /quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis
13398 /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl
13399 /periodcentered /quotesinglbase /quotedblbase /perthousand
13400 /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute
13401 /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve
13402 /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron
13403 /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron
13404 ] def
13405 /ReEncode { 
13406         dup 
13407         length 
13408         dict begin 
13409         {
13410         1 index /FID ne 
13411                 {def} 
13412                 {pop pop} ifelse 
13413         } forall 
13414         0 eq {/Encoding DiacriticEncoding def} if 
13415         currentdict 
13416         end 
13417         } bind def
13418 /graymode true def
13419         /bwidth FMLOCAL
13420         /bpside FMLOCAL
13421         /bstring FMLOCAL
13422         /onbits FMLOCAL
13423         /offbits FMLOCAL
13424         /xindex FMLOCAL
13425         /yindex FMLOCAL
13426         /x FMLOCAL
13427         /y FMLOCAL
13428 /setpattern {
13429          /bwidth  exch def
13430          /bpside  exch def
13431          /bstring exch def
13432          /onbits 0 def  /offbits 0 def
13433          freq sangle landscape {90 add} if 
13434                 {/y exch def
13435                  /x exch def
13436                  /xindex x 1 add 2 div bpside mul cvi def
13437                  /yindex y 1 add 2 div bpside mul cvi def
13438                  bstring yindex bwidth mul xindex 8 idiv add get
13439                  1 7 xindex 8 mod sub bitshift and 0 ne
13440                  {/onbits  onbits  1 add def 1}
13441                  {/offbits offbits 1 add def 0}
13442                  ifelse
13443                 }
13444                 setscreen
13445          {} settransfer
13446          offbits offbits onbits add div FMsetgray
13447         /graymode false def
13448         } bind def
13449 /grayness {
13450         FMsetgray
13451         graymode not {
13452                 /graymode true def
13453                 orgxfer cvx settransfer
13454                 orgfreq organgle orgproc cvx setscreen
13455                 } if
13456         } bind def
13457         /HUE FMLOCAL
13458         /SAT FMLOCAL
13459         /BRIGHT FMLOCAL
13460         /Colors FMLOCAL
13461 FMPrintInColor
13463         {
13464         /HUE 0 def
13465         /SAT 0 def
13466         /BRIGHT 0 def
13467         % array of arrays Hue and Sat values for the separations [HUE BRIGHT]
13468         /Colors   
13469         [[0    0  ]    % black
13470          [0    0  ]    % white
13471          [0.00 1.0]    % red
13472          [0.37 1.0]    % green
13473          [0.60 1.0]    % blue
13474          [0.50 1.0]    % cyan
13475          [0.83 1.0]    % magenta
13476          [0.16 1.0]    % comment / yellow
13477          ] def
13478       
13479         /BEGINBITMAPCOLOR { 
13480                 BITMAPCOLOR} def
13481         /BEGINBITMAPCOLORc { 
13482                 BITMAPCOLORc} def
13483         /BEGINBITMAPTRUECOLOR { 
13484                 BITMAPTRUECOLOR } def
13485         /BEGINBITMAPTRUECOLORc { 
13486                 BITMAPTRUECOLORc } def
13487         /K { 
13488                 Colors exch get dup
13489                 0 get /HUE exch store 
13490                 1 get /BRIGHT exch store
13491                   HUE 0 eq BRIGHT 0 eq and
13492                         {1.0 SAT sub setgray}
13493                         {HUE SAT BRIGHT sethsbcolor} 
13494                   ifelse
13495                 } def
13496         /FMsetgray { 
13497                 /SAT exch 1.0 exch sub store 
13498                   HUE 0 eq BRIGHT 0 eq and
13499                         {1.0 SAT sub setgray}
13500                         {HUE SAT BRIGHT sethsbcolor} 
13501                   ifelse
13502                 } bind def
13503         }
13504         
13505         {
13506         /BEGINBITMAPCOLOR { 
13507                 BITMAPGRAY} def
13508         /BEGINBITMAPCOLORc { 
13509                 BITMAPGRAYc} def
13510         /BEGINBITMAPTRUECOLOR { 
13511                 BITMAPTRUEGRAY } def
13512         /BEGINBITMAPTRUECOLORc { 
13513                 BITMAPTRUEGRAYc } def
13514         /FMsetgray {setgray} bind def
13515         /K { 
13516                 pop
13517                 } def
13518         }
13519 ifelse
13520 /normalize {
13521         transform round exch round exch itransform
13522         } bind def
13523 /dnormalize {
13524         dtransform round exch round exch idtransform
13525         } bind def
13526 /lnormalize { 
13527         0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop
13528         } bind def
13529 /H { 
13530         lnormalize setlinewidth
13531         } bind def
13532 /Z {
13533         setlinecap
13534         } bind def
13535         /fillvals FMLOCAL
13536 /X { 
13537         fillvals exch get
13538         dup type /stringtype eq
13539         {8 1 setpattern} 
13540         {grayness}
13541         ifelse
13542         } bind def
13543 /V { 
13544         gsave eofill grestore
13545         } bind def
13546 /N { 
13547         stroke
13548         } bind def
13549 /M {newpath moveto} bind def
13550 /E {lineto} bind def
13551 /D {curveto} bind def
13552 /O {closepath} bind def
13553         /n FMLOCAL
13554 /L { 
13555         /n exch def
13556         newpath
13557         normalize
13558         moveto 
13559         2 1 n {pop normalize lineto} for
13560         } bind def
13561 /Y { 
13562         L 
13563         closepath
13564         } bind def
13565         /x1 FMLOCAL
13566         /x2 FMLOCAL
13567         /y1 FMLOCAL
13568         /y2 FMLOCAL
13569         /rad FMLOCAL
13570 /R { 
13571         /y2 exch def
13572         /x2 exch def
13573         /y1 exch def
13574         /x1 exch def
13575         x1 y1
13576         x2 y1
13577         x2 y2
13578         x1 y2
13579         4 Y 
13580         } bind def
13581 /RR { 
13582         /rad exch def
13583         normalize
13584         /y2 exch def
13585         /x2 exch def
13586         normalize
13587         /y1 exch def
13588         /x1 exch def
13589         newpath
13590         x1 y1 rad add moveto
13591         x1 y2 x2 y2 rad arcto
13592         x2 y2 x2 y1 rad arcto
13593         x2 y1 x1 y1 rad arcto
13594         x1 y1 x1 y2 rad arcto
13595         closepath
13596         16 {pop} repeat
13597         } bind def
13598 /C { 
13599         grestore
13600         gsave
13601         R 
13602         clip
13603         } bind def
13604         /FMpointsize FMLOCAL
13605 /F { 
13606         FMfonts exch get
13607         FMpointsize scalefont
13608         setfont
13609         } bind def
13610 /Q { 
13611         /FMpointsize exch def
13612         F 
13613         } bind def
13614 /T { 
13615         moveto show
13616         } bind def
13617 /RF { 
13618         rotate
13619         0 ne {-1 1 scale} if
13620         } bind def
13621 /TF { 
13622         gsave
13623         moveto 
13624         RF
13625         show
13626         grestore
13627         } bind def
13628 /P { 
13629         moveto
13630         0 32 3 2 roll widthshow
13631         } bind def
13632 /PF { 
13633         gsave
13634         moveto 
13635         RF
13636         0 32 3 2 roll widthshow
13637         grestore
13638         } bind def
13639 /S { 
13640         moveto
13641         0 exch ashow
13642         } bind def
13643 /SF { 
13644         gsave
13645         moveto
13646         RF
13647         0 exch ashow
13648         grestore
13649         } bind def
13650 /B { 
13651         moveto
13652         0 32 4 2 roll 0 exch awidthshow
13653         } bind def
13654 /BF { 
13655         gsave
13656         moveto
13657         RF
13658         0 32 4 2 roll 0 exch awidthshow
13659         grestore
13660         } bind def
13661 /G { 
13662         gsave
13663         newpath
13664         normalize translate 0.0 0.0 moveto 
13665         dnormalize scale 
13666         0.0 0.0 1.0 5 3 roll arc 
13667         closepath fill
13668         grestore
13669         } bind def
13670 /A { 
13671         gsave
13672         savematrix
13673         newpath
13674         2 index 2 div add exch 3 index 2 div sub exch 
13675         normalize 2 index 2 div sub exch 3 index 2 div add exch 
13676         translate 
13677         scale 
13678         0.0 0.0 1.0 5 3 roll arc 
13679         restorematrix
13680         stroke
13681         grestore
13682         } bind def
13683         /x FMLOCAL
13684         /y FMLOCAL
13685         /w FMLOCAL
13686         /h FMLOCAL
13687         /xx FMLOCAL
13688         /yy FMLOCAL
13689         /ww FMLOCAL
13690         /hh FMLOCAL
13691         /FMsaveobject FMLOCAL
13692         /FMoptop FMLOCAL
13693         /FMdicttop FMLOCAL
13694 /BEGINPRINTCODE { 
13695         /FMdicttop countdictstack 1 add def 
13696         /FMoptop count 4 sub def 
13697         /FMsaveobject save def
13698         userdict begin 
13699         /showpage {} def 
13700         FMNORMALIZEGRAPHICS 
13701         3 index neg 3 index neg translate
13702         } bind def
13703 /ENDPRINTCODE {
13704         count -1 FMoptop {pop pop} for 
13705         countdictstack -1 FMdicttop {pop end} for 
13706         FMsaveobject restore 
13707         } bind def
13708 /gn { 
13709         0 
13710         {       46 mul 
13711                 cf read pop 
13712                 32 sub 
13713                 dup 46 lt {exit} if 
13714                 46 sub add 
13715                 } loop
13716         add 
13717         } bind def
13718         /str FMLOCAL
13719 /cfs { 
13720         /str sl string def 
13721         0 1 sl 1 sub {str exch val put} for 
13722         str def 
13723         } bind def
13724 /ic [ 
13725         0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
13726         0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
13727         0
13728         {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx}
13729         {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx}
13730         {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12}
13731         {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh}
13732         {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh}
13733         {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl}
13734         {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl}
13735         {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl}
13736         {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl}
13737         ] def
13738         /sl FMLOCAL
13739         /val FMLOCAL
13740         /ws FMLOCAL
13741         /im FMLOCAL
13742         /bs FMLOCAL
13743         /cs FMLOCAL
13744         /len FMLOCAL
13745         /pos FMLOCAL
13746 /ms { 
13747         /sl exch def 
13748         /val 255 def 
13749         /ws cfs 
13750         /im cfs 
13751         /val 0 def 
13752         /bs cfs 
13753         /cs cfs 
13754         } bind def
13755 400 ms 
13756 /ip { 
13757         is 
13758         0 
13759         cf cs readline pop 
13760         {       ic exch get exec 
13761                 add 
13762                 } forall 
13763         pop 
13764         
13765         } bind def
13766 /wh { 
13767         /len exch def 
13768         /pos exch def 
13769         ws 0 len getinterval im pos len getinterval copy pop
13770         pos len 
13771         } bind def
13772 /bl { 
13773         /len exch def 
13774         /pos exch def 
13775         bs 0 len getinterval im pos len getinterval copy pop
13776         pos len 
13777         } bind def
13778 /s1 1 string def
13779 /fl { 
13780         /len exch def 
13781         /pos exch def 
13782         /val cf s1 readhexstring pop 0 get def
13783         pos 1 pos len add 1 sub {im exch val put} for
13784         pos len 
13785         } bind def
13786 /hx { 
13787         3 copy getinterval 
13788         cf exch readhexstring pop pop 
13789         } bind def
13790         /h FMLOCAL
13791         /w FMLOCAL
13792         /d FMLOCAL
13793         /lb FMLOCAL
13794         /bitmapsave FMLOCAL
13795         /is FMLOCAL
13796         /cf FMLOCAL
13797 /wbytes { 
13798         dup 
13799         8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse
13800         } bind def
13801 /BEGINBITMAPBWc { 
13802         1 {} COMMONBITMAPc
13803         } bind def
13804 /BEGINBITMAPGRAYc { 
13805         8 {} COMMONBITMAPc
13806         } bind def
13807 /BEGINBITMAP2BITc { 
13808         2 {} COMMONBITMAPc
13809         } bind def
13810 /COMMONBITMAPc { 
13811         /r exch def
13812         /d exch def
13813         gsave
13814         translate rotate scale /h exch def /w exch def
13815         /lb w d wbytes def 
13816         sl lb lt {lb ms} if 
13817         /bitmapsave save def 
13818         r                    
13819         /is im 0 lb getinterval def 
13820         ws 0 lb getinterval is copy pop 
13821         /cf currentfile def 
13822         w h d [w 0 0 h neg 0 h] 
13823         {ip} image 
13824         bitmapsave restore 
13825         grestore
13826         } bind def
13827 /BEGINBITMAPBW { 
13828         1 {} COMMONBITMAP
13829         } bind def
13830 /BEGINBITMAPGRAY { 
13831         8 {} COMMONBITMAP
13832         } bind def
13833 /BEGINBITMAP2BIT { 
13834         2 {} COMMONBITMAP
13835         } bind def
13836 /COMMONBITMAP { 
13837         /r exch def
13838         /d exch def
13839         gsave
13840         translate rotate scale /h exch def /w exch def
13841         /bitmapsave save def 
13842         r                    
13843         /is w d wbytes string def
13844         /cf currentfile def 
13845         w h d [w 0 0 h neg 0 h] 
13846         {cf is readhexstring pop} image
13847         bitmapsave restore 
13848         grestore
13849         } bind def
13850         /proc1 FMLOCAL
13851         /proc2 FMLOCAL
13852         /newproc FMLOCAL
13853 /Fmcc {
13854     /proc2 exch cvlit def
13855     /proc1 exch cvlit def
13856     /newproc proc1 length proc2 length add array def
13857     newproc 0 proc1 putinterval
13858     newproc proc1 length proc2 putinterval
13859     newproc cvx
13860 } bind def
13861 /ngrayt 256 array def
13862 /nredt 256 array def
13863 /nbluet 256 array def
13864 /ngreent 256 array def
13865         /gryt FMLOCAL
13866         /blut FMLOCAL
13867         /grnt FMLOCAL
13868         /redt FMLOCAL
13869         /indx FMLOCAL
13870         /cynu FMLOCAL
13871         /magu FMLOCAL
13872         /yelu FMLOCAL
13873         /k FMLOCAL
13874         /u FMLOCAL
13875 /colorsetup {
13876         currentcolortransfer
13877         /gryt exch def
13878         /blut exch def
13879         /grnt exch def
13880         /redt exch def
13881         0 1 255 {
13882                 /indx exch def
13883                 /cynu 1 red indx get 255 div sub def
13884                 /magu 1 green indx get 255 div sub def
13885                 /yelu 1 blue indx get 255 div sub def
13886                 /k cynu magu min yelu min def
13887                 /u k currentundercolorremoval exec def
13888                 nredt indx 1 0 cynu u sub max sub redt exec put
13889                 ngreent indx 1 0 magu u sub max sub grnt exec put
13890                 nbluet indx 1 0 yelu u sub max sub blut exec put
13891                 ngrayt indx 1 k currentblackgeneration exec sub gryt exec put
13892         } for
13893         {255 mul cvi nredt exch get}
13894         {255 mul cvi ngreent exch get}
13895         {255 mul cvi nbluet exch get}
13896         {255 mul cvi ngrayt exch get}
13897         setcolortransfer
13898         {pop 0} setundercolorremoval
13899         {} setblackgeneration
13900         } bind def
13901         /tran FMLOCAL
13902 /fakecolorsetup {
13903         /tran 256 string def
13904         0 1 255 {/indx exch def 
13905                 tran indx
13906                 red indx get 77 mul
13907                 green indx get 151 mul
13908                 blue indx get 28 mul
13909                 add add 256 idiv put} for
13910         currenttransfer
13911         {255 mul cvi tran exch get 255.0 div}
13912         exch Fmcc settransfer
13913 } bind def
13914 /BITMAPCOLOR { 
13915         /d 8 def
13916         gsave
13917         translate rotate scale /h exch def /w exch def
13918         /bitmapsave save def 
13919         colorsetup
13920         /is w d wbytes string def
13921         /cf currentfile def 
13922         w h d [w 0 0 h neg 0 h] 
13923         {cf is readhexstring pop} {is} {is} true 3 colorimage 
13924         bitmapsave restore 
13925         grestore
13926         } bind def
13927 /BITMAPCOLORc { 
13928         /d 8 def
13929         gsave
13930         translate rotate scale /h exch def /w exch def
13931         /lb w d wbytes def 
13932         sl lb lt {lb ms} if 
13933         /bitmapsave save def 
13934         colorsetup
13935         /is im 0 lb getinterval def 
13936         ws 0 lb getinterval is copy pop 
13937         /cf currentfile def 
13938         w h d [w 0 0 h neg 0 h] 
13939         {ip} {is} {is} true 3 colorimage
13940         bitmapsave restore 
13941         grestore
13942         } bind def
13943 /BITMAPTRUECOLORc { 
13944         gsave
13945         translate rotate scale /h exch def /w exch def
13946         /bitmapsave save def 
13947         
13948         /is w string def
13949         
13950         ws 0 w getinterval is copy pop 
13951         /cf currentfile def 
13952         w h 8 [w 0 0 h neg 0 h] 
13953         {ip} {gip} {bip} true 3 colorimage
13954         bitmapsave restore 
13955         grestore
13956         } bind def
13957 /BITMAPTRUECOLOR { 
13958         gsave
13959         translate rotate scale /h exch def /w exch def
13960         /bitmapsave save def 
13961         /is w string def
13962         /gis w string def
13963         /bis w string def
13964         /cf currentfile def 
13965         w h 8 [w 0 0 h neg 0 h] 
13966         { cf is readhexstring pop } 
13967         { cf gis readhexstring pop } 
13968         { cf bis readhexstring pop } 
13969         true 3 colorimage 
13970         bitmapsave restore 
13971         grestore
13972         } bind def
13973 /BITMAPTRUEGRAYc { 
13974         gsave
13975         translate rotate scale /h exch def /w exch def
13976         /bitmapsave save def 
13977         
13978         /is w string def
13979         
13980         ws 0 w getinterval is copy pop 
13981         /cf currentfile def 
13982         w h 8 [w 0 0 h neg 0 h] 
13983         {ip gip bip w gray} image
13984         bitmapsave restore 
13985         grestore
13986         } bind def
13987 /ww FMLOCAL
13988 /r FMLOCAL
13989 /g FMLOCAL
13990 /b FMLOCAL
13991 /i FMLOCAL
13992 /gray { 
13993         /ww exch def
13994         /b exch def
13995         /g exch def
13996         /r exch def
13997         0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul
13998                         b i get .114 mul add add r i 3 -1 roll floor cvi put } for
13999         r
14000         } bind def
14001 /BITMAPTRUEGRAY { 
14002         gsave
14003         translate rotate scale /h exch def /w exch def
14004         /bitmapsave save def 
14005         /is w string def
14006         /gis w string def
14007         /bis w string def
14008         /cf currentfile def 
14009         w h 8 [w 0 0 h neg 0 h] 
14010         { cf is readhexstring pop 
14011           cf gis readhexstring pop 
14012           cf bis readhexstring pop w gray}  image
14013         bitmapsave restore 
14014         grestore
14015         } bind def
14016 /BITMAPGRAY { 
14017         8 {fakecolorsetup} COMMONBITMAP
14018         } bind def
14019 /BITMAPGRAYc { 
14020         8 {fakecolorsetup} COMMONBITMAPc
14021         } bind def
14022 /ENDBITMAP {
14023         } bind def
14024 end 
14025         /ALDsave FMLOCAL
14026         /ALDmatrix matrix def ALDmatrix currentmatrix pop
14027 /StartALD {
14028         /ALDsave save def
14029          savematrix
14030          ALDmatrix setmatrix
14031         } bind def
14032 /InALD {
14033          restorematrix
14034         } bind def
14035 /DoneALD {
14036          ALDsave restore
14037         } bind def
14038 %%EndProlog
14039 %%BeginSetup
14040 (3.0) FMVERSION
14041 1 1 612 792 0 1 2 FMDOCUMENT
14042 0 0 /Times-Bold FMFONTDEFINE
14043 1 0 /Times-Roman FMFONTDEFINE
14044 32 FMFILLS
14045 0 0 FMFILL
14046 1 0.1 FMFILL
14047 2 0.3 FMFILL
14048 3 0.5 FMFILL
14049 4 0.7 FMFILL
14050 5 0.9 FMFILL
14051 6 0.97 FMFILL
14052 7 1 FMFILL
14053 8 <0f1e3c78f0e1c387> FMFILL
14054 9 <0f87c3e1f0783c1e> FMFILL
14055 10 <cccccccccccccccc> FMFILL
14056 11 <ffff0000ffff0000> FMFILL
14057 12 <8142241818244281> FMFILL
14058 13 <03060c183060c081> FMFILL
14059 14 <8040201008040201> FMFILL
14060 16 1 FMFILL
14061 17 0.9 FMFILL
14062 18 0.7 FMFILL
14063 19 0.5 FMFILL
14064 20 0.3 FMFILL
14065 21 0.1 FMFILL
14066 22 0.03 FMFILL
14067 23 0 FMFILL
14068 24 <f0e1c3870f1e3c78> FMFILL
14069 25 <f0783c1e0f87c3e1> FMFILL
14070 26 <3333333333333333> FMFILL
14071 27 <0000ffff0000ffff> FMFILL
14072 28 <7ebddbe7e7dbbd7e> FMFILL
14073 29 <fcf9f3e7cf9f3f7e> FMFILL
14074 30 <7fbfdfeff7fbfdfe> FMFILL
14075 %%EndSetup
14076 612 792 0 FMBEGINPAGE
14077 116.25 437.89 113.83 428.18 111.41 437.89 113.83 437.89 4 Y
14078 0 X
14079 2 K
14081 113.83 444.92 113.83 437.89 2 L
14082 1 H
14083 2 Z
14085 113.83 476.17 113.83 469.48 2 L
14087 113.83 469.48 113.83 444.92 2 L
14088 11 X
14090 247.94 306.2 245.52 296.5 243.1 306.2 245.52 306.2 4 Y
14091 0 X
14093 245.52 328.27 245.52 306.2 2 L
14094 0.2 H
14096 116.25 514.89 113.83 505.19 111.41 514.89 113.83 514.89 4 Y
14098 113.83 521.93 113.83 514.89 2 L
14099 1 H
14101 184.48 570.1 194.18 567.68 184.48 565.26 184.48 567.68 4 Y
14103 151.78 567.68 184.48 567.68 2 L
14104 0.2 H
14106 75.89 553.18 151.78 582.19 14.51 RR
14107 7 X
14108 4 K
14110 0.5 H
14111 0 X
14113 0 12 Q
14114 0 K
14115 (tr) 90.91 563.6 T
14116 (ee pr) 100.01 563.6 T
14117 (oc) 125.43 563.6 T
14118 194.43 557.98 299.09 577.39 9.7 RR
14119 7 X
14120 4 K
14122 0.2 H
14123 0 X
14125 1 10 Q
14126 0 K
14127 (proc symbol table) 210.95 564.64 T
14128 247.94 509.31 245.52 499.61 243.1 509.31 245.52 509.31 4 Y
14129 2 K
14131 245.52 557.64 245.52 509.31 2 L
14133 75.89 476.17 151.78 505.19 14.51 RR
14134 7 X
14135 4 K
14137 0.5 H
14138 0 X
14140 0 12 Q
14141 0 K
14142 (tr) 88.46 486.59 T
14143 (ee block) 97.56 486.59 T
14144 247.94 355.3 245.52 345.6 243.1 355.3 245.52 355.3 4 Y
14145 2 K
14147 245.52 479.52 245.52 355.3 2 L
14148 0.2 H
14150 184.48 491.98 194.18 489.57 184.48 487.15 184.48 489.57 4 Y
14152 151.78 489.57 184.48 489.57 2 L
14154 75.89 399.17 151.78 428.18 14.51 RR
14155 7 X
14156 4 K
14158 0.5 H
14159 0 X
14161 0 K
14162 (tr) 90.13 409.59 T
14163 (ee node) 99.23 409.59 T
14164 194.43 479.86 299.09 499.27 9.7 RR
14165 7 X
14166 4 K
14168 0.2 H
14169 0 X
14171 1 10 Q
14172 0 K
14173 (block symbol table) 208.72 486.52 T
14174 184.48 339.09 194.18 336.67 184.48 334.25 184.48 336.67 4 Y
14175 2 K
14177 151.78 336.67 184.48 336.67 2 L
14179 75.89 322.16 151.78 351.18 14.51 RR
14180 7 X
14181 4 K
14183 0.5 H
14184 0 X
14186 0 12 Q
14187 0 K
14188 (tr) 88.46 332.58 T
14189 (ee block) 97.56 332.58 T
14190 194.43 326.97 299.09 346.38 9.7 RR
14191 7 X
14192 4 K
14194 0.2 H
14195 0 X
14197 1 10 Q
14198 0 K
14199 (block symbol table) 208.72 333.62 T
14200 117.37 306.92 114.95 297.22 112.53 306.92 114.95 306.92 4 Y
14201 2 K
14203 114.95 320.85 114.95 306.92 2 L
14204 1 H
14206 113.83 553.18 113.83 546.48 2 L
14208 113.83 546.48 113.83 521.93 2 L
14209 11 X
14211 116.25 359.77 113.83 350.07 111.41 359.77 113.83 359.77 4 Y
14212 0 X
14214 113.83 366.8 113.83 359.77 2 L
14216 113.83 398.05 113.83 391.36 2 L
14218 113.83 391.36 113.83 366.8 2 L
14219 11 X
14221 116.25 659.97 113.83 650.27 111.41 659.97 113.83 659.97 4 Y
14222 0 X
14224 113.83 689.33 113.83 659.97 2 L
14226 247.94 655.51 245.52 645.8 243.1 655.51 245.52 655.51 4 Y
14228 245.52 694.91 245.52 655.51 2 L
14229 0.2 H
14231 184.48 706.25 194.18 703.84 184.48 701.42 184.48 703.84 4 Y
14233 151.78 703.84 184.48 703.84 2 L
14235 75.89 689.33 151.78 718.34 14.51 RR
14236 7 X
14237 4 K
14239 0.5 H
14240 0 X
14242 0 12 Q
14243 0 K
14244 (\336leset) 99.18 699.75 T
14245 194.43 694.13 299.09 713.54 9.7 RR
14246 7 X
14247 4 K
14249 0.2 H
14250 0 X
14252 1 10 Q
14253 0 K
14254 (global symbol table) 207.33 700.79 T
14255 116.25 591.9 113.83 582.19 111.41 591.9 113.83 591.9 4 Y
14256 2 K
14258 113.83 621.25 113.83 591.9 2 L
14259 1 H
14261 247.94 587.43 245.52 577.73 243.1 587.43 245.52 587.43 4 Y
14263 245.52 626.83 245.52 587.43 2 L
14264 0.2 H
14266 184.48 638.18 194.18 635.76 184.48 633.34 184.48 635.76 4 Y
14268 151.78 635.76 184.48 635.76 2 L
14270 75.89 621.25 151.78 650.27 14.51 RR
14271 7 X
14272 4 K
14274 0.5 H
14275 0 X
14277 0 12 Q
14278 0 K
14279 (\336leset entry) 84.02 631.67 T
14280 194.43 626.06 299.09 645.46 9.7 RR
14281 7 X
14282 4 K
14284 0.2 H
14285 0 X
14287 1 10 Q
14288 0 K
14289 (\336le symbol table) 213.44 632.71 T
14290 FMENDPAGE
14291 %%Trailer
14292 %%DocumentFonts: Times-Bold
14293 %%+ Times-Roman
14295 %%EndDocument
14297  endTexFig
14298  eop
14299 %%Page: 94 96
14300 94 95 bop 150 -116 a Fn(94)2385 b(The)30 b(SUIF)g(V)-8
14301 b(ersion)30 b(1)h(Library)p eop
14302 %%Page: 95 97
14303 95 96 bop 150 -116 a Fn(F)-8 b(unction,)30 b(V)-8 b(ariable,)30
14304 b(and)g(T)m(yp)s(e)g(Index)2085 b(95)150 299 y Fj(F)-13
14305 b(unction,)53 b(V)-13 b(ariable,)54 b(and)g(T)l(yp)t(e)g(Index)150
14306 651 y Fl(A)150 786 y Fe(alist)13 b Fd(.)h(.)f(.)h(.)f(.)g(.)g(.)g(.)g
14307 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
14308 h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)39
14309 b Fe(80)150 887 y(alist)p 295 887 24 4 v 29 w(e)16 b
14310 Fd(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
14311 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
14312 g(.)g(.)g(.)g(.)g(.)g(.)43 b Fe(80)150 988 y(alist)p
14313 295 988 V 29 w(iter)10 b Fd(.)j(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
14314 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
14315 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)36 b Fe(80)150
14316 1089 y(am)n(t\015ist)8 b Fd(.)k(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
14317 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
14318 f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)34 b Fe(80)150
14319 1190 y(annote)22 b Fd(.)13 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
14320 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
14321 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)48 b Fe(63)150
14322 1292 y Fc(ANNOTE)17 b Fd(.)e(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
14323 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
14324 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)43 b Fe(68)150
14325 1393 y Fc(annote,)27 b(data)9 b Fd(.)14 b(.)f(.)g(.)g(.)g(.)h(.)f(.)g
14326 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
14327 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)35 b Fe(63)150 1494 y
14328 Fc(annote,)27 b(immeds)22 b Fd(.)13 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
14329 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
14330 f(.)g(.)g(.)g(.)47 b Fe(63)150 1595 y Fc(annote,)27 b(name)9
14331 b Fd(.)14 b(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14332 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
14333 35 b Fe(63)150 1696 y Fc(annote,)27 b(print)6 b Fd(.)15
14334 b(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14335 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)32
14336 b Fe(63)150 1797 y Fc(annote,)27 b(set_data)16 b Fd(.)f(.)e(.)g(.)g(.)g
14337 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
14338 h(.)f(.)g(.)g(.)g(.)g(.)42 b Fe(63)150 1898 y Fc(annote,)27
14339 b(set_immeds)10 b Fd(.)16 b(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
14340 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)37
14341 b Fe(63)150 1999 y Fc(annote,)27 b(set_name)16 b Fd(.)f(.)e(.)g(.)g(.)g
14342 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
14343 h(.)f(.)g(.)g(.)g(.)g(.)42 b Fe(63)150 2100 y(annote)p
14344 381 2100 V 28 w(def)9 b Fd(.)k(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
14345 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
14346 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)35 b Fe(68)150 2201 y
14347 Fc(annote_def,)28 b(is_structured)10 b Fd(.)16 b(.)d(.)g(.)g(.)g(.)g(.)
14348 h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)36 b
14349 Fe(68)150 2302 y Fc(annote_def,)28 b(name)16 b Fd(.)e(.)f(.)g(.)g(.)g
14350 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
14351 h(.)f(.)g(.)g(.)g(.)g(.)42 b Fe(68)150 2403 y Fc(annote_def,)28
14352 b(output)10 b Fd(.)15 b(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
14353 (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)37
14354 b Fe(68)150 2504 y Fc(annote_def,)28 b(set_output)17
14355 b Fd(.)f(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
14356 g(.)g(.)g(.)g(.)g(.)44 b Fe(68)150 2605 y(annote)p 381
14357 2605 V 28 w(list)8 b Fd(.)13 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
14358 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
14359 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)34 b Fe(71)150 2706 y
14360 Fc(annote_list,)28 b(get_annote)15 b Fd(.)g(.)f(.)f(.)g(.)g(.)g(.)g(.)g
14361 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)41
14362 b Fe(71)150 2807 y Fc(annote_list,)28 b(peek_annote)12
14363 b Fd(.)k(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
14364 g(.)g(.)h(.)38 b Fe(71)150 2908 y(arra)n(y)p 330 2908
14365 V 28 w(b)r(ound)13 b Fd(.)f(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
14366 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
14367 g(.)g(.)g(.)h(.)f(.)39 b Fe(56)150 3010 y Fc(array_bound,)28
14368 b(constant)22 b Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
14369 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)46 b Fe(56)150
14370 3111 y Fc(array_bound,)28 b(is_constant)12 b Fd(.)k(.)d(.)g(.)h(.)f(.)g
14371 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)38
14372 b Fe(56)150 3212 y Fc(array_bound,)28 b(is_unknown)15
14373 b Fd(.)g(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
14374 h(.)f(.)g(.)g(.)41 b Fe(56)150 3313 y Fc(array_bound,)28
14375 b(is_variable)12 b Fd(.)k(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
14376 (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)38 b Fe(56)150 3414 y
14377 Fc(array_bound,)28 b(print)10 b Fd(.)15 b(.)e(.)g(.)g(.)h(.)f(.)g(.)g
14378 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
14379 g(.)37 b Fe(56)150 3515 y Fc(array_bound,)28 b(variable)22
14380 b Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
14381 (.)g(.)g(.)g(.)h(.)f(.)g(.)46 b Fe(56)150 3616 y(arra)n(y)p
14382 330 3616 V 28 w(t)n(yp)r(e)11 b Fd(.)h(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g
14383 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
14384 h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)37 b Fe(56)150
14385 3717 y Fc(array_type,)28 b(are_bounds_unknown)14 b Fd(.)j(.)c(.)h(.)f
14386 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)40 b Fe(56)150 3818
14387 y Fc(array_type,)28 b(elem_type)22 b Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g
14388 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)46
14389 b Fe(56)150 3919 y Fc(array_type,)28 b(lower_bound)15
14390 b Fd(.)g(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
14391 h(.)f(.)g(.)g(.)41 b Fe(56)150 4020 y Fc(array_type,)28
14392 b(set_elem_type)10 b Fd(.)16 b(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
14393 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)36 b Fe(56)150 4121 y
14394 Fc(array_type,)28 b(set_lower_bound)d Fd(.)13 b(.)g(.)h(.)f(.)g(.)g(.)g
14395 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)48 b Fe(56)150 4222
14396 y Fc(array_type,)28 b(set_upper_bound)d Fd(.)13 b(.)g(.)h(.)f(.)g(.)g
14397 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)48 b Fe(56)150
14398 4323 y Fc(array_type,)28 b(upper_bound)15 b Fd(.)g(.)f(.)f(.)g(.)g(.)g
14399 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)41
14400 b Fe(56)150 4424 y Fc(assert)17 b Fd(.)e(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)
14401 f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14402 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)43
14403 b Fe(88)150 4525 y Fc(assert_msg)7 b Fd(.)15 b(.)e(.)h(.)f(.)g(.)g(.)g
14404 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
14405 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)33 b Fe(88)150
14406 4800 y Fl(B)150 4936 y Fe(base)p 300 4936 V 28 w(sym)n(tab)12
14407 b Fd(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
14408 f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
14409 (.)38 b Fe(37)150 5037 y Fc(base_symtab,)28 b(add_child)17
14410 b Fd(.)f(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
14411 g(.)g(.)g(.)g(.)g(.)44 b Fe(42)150 5138 y Fc(base_symtab,)28
14412 b(add_def)c Fd(.)13 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
14413 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)49 b Fe(42)150
14414 5239 y Fc(base_symtab,)28 b(add_sym)c Fd(.)13 b(.)h(.)f(.)g(.)g(.)g(.)g
14415 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)49
14416 b Fe(42)150 5340 y Fc(base_symtab,)28 b(add_type)22 b
14417 Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
14418 (.)g(.)g(.)g(.)h(.)f(.)g(.)46 b Fe(42)2025 651 y Fc(base_symtab,)28
14419 b(chain_name)15 b Fd(.)g(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
14420 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)41 b Fe(39)2025 754 y
14421 Fc(base_symtab,)28 b(children)22 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)h(.)f(.)
14422 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)46
14423 b Fe(37)2025 858 y Fc(base_symtab,)28 b(define_var)15
14424 b Fd(.)g(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
14425 g(.)g(.)h(.)f(.)41 b Fe(41)2025 962 y Fc(base_symtab,)28
14426 b(install_type)10 b Fd(.)16 b(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
14427 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)36 b Fe(42)2025 1066 y
14428 Fc(base_symtab,)28 b(is_ancestor)12 b Fd(.)k(.)d(.)g(.)g(.)g(.)h(.)f(.)
14429 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)39 b
14430 Fe(37)2025 1170 y Fc(base_symtab,)28 b(lookup_child)10
14431 b Fd(.)16 b(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
14432 (.)f(.)g(.)36 b Fe(41)2025 1273 y Fc(base_symtab,)28
14433 b(lookup_sym)15 b Fd(.)g(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
14434 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)41 b Fe(40)2025 1377
14435 y Fc(base_symtab,)28 b(lookup_sym_id)7 b Fd(.)16 b(.)d(.)h(.)f(.)g(.)g
14436 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)34 b Fe(40)2025
14437 1481 y Fc(base_symtab,)28 b(lookup_type)12 b Fd(.)k(.)d(.)g(.)g(.)g(.)h
14438 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)39
14439 b Fe(40)2025 1585 y Fc(base_symtab,)28 b(lookup_type_id)d
14440 Fd(.)13 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)48
14441 b Fe(40)2025 1689 y Fc(base_symtab,)28 b(lookup_var)15
14442 b Fd(.)g(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
14443 g(.)g(.)h(.)f(.)41 b Fe(40)2025 1793 y Fc(base_symtab,)28
14444 b(lookup_var_def)d Fd(.)13 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
14445 g(.)h(.)f(.)g(.)48 b Fe(40)2025 1896 y Fc(base_symtab,)28
14446 b(name)13 b Fd(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14447 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)39
14448 b Fe(39)2025 2000 y Fc(base_symtab,)28 b(new_unique_var)d
14449 Fd(.)13 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)48
14450 b Fe(41)2025 2104 y Fc(base_symtab,)28 b(new_var)c Fd(.)13
14451 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
14452 (.)h(.)f(.)g(.)g(.)g(.)49 b Fe(41)2025 2208 y Fc(base_symtab,)28
14453 b(parent)8 b Fd(.)14 b(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
14454 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)34
14455 b Fe(37)2025 2312 y Fc(base_symtab,)28 b(remove_child)10
14456 b Fd(.)16 b(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
14457 (.)f(.)g(.)36 b Fe(42)2025 2415 y Fc(base_symtab,)28
14458 b(remove_def)15 b Fd(.)g(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
14459 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)41 b Fe(42)2025 2519
14460 y Fc(base_symtab,)28 b(remove_sym)15 b Fd(.)g(.)e(.)h(.)f(.)g(.)g(.)g
14461 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)41
14462 b Fe(42)2025 2623 y Fc(base_symtab,)28 b(remove_type)12
14463 b Fd(.)k(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
14464 g(.)g(.)g(.)39 b Fe(42)2025 2727 y Fc(base_symtab,)28
14465 b(rename_duplicates)14 b Fd(.)j(.)c(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
14466 (.)h(.)40 b Fe(40)2025 2831 y Fc(base_symtab,)28 b
14467 (resolve_exposed_refs)6 b Fd(.)18 b(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g
14468 (.)33 b Fe(74)2025 2935 y Fc(base_symtab,)28 b(set_name)22
14469 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14470 (.)g(.)g(.)g(.)g(.)h(.)f(.)46 b Fe(39)2025 3038 y Fc(base_symtab,)28
14471 b(symbols)c Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14472 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)49 b Fe(39)2025
14473 3142 y Fc(base_symtab,)28 b(types)10 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)
14474 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14475 (.)g(.)g(.)37 b Fe(39)2025 3246 y Fc(base_symtab,)28
14476 b(var_defs)22 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
14477 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)46 b Fe(39)2025
14478 3350 y(base)p 2175 3350 V 28 w(t)n(yp)r(e)9 b Fd(.)j(.)h(.)g(.)g(.)h(.)
14479 f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
14480 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)35
14481 b Fe(55)2025 3454 y Fc(base_type,)28 b(is_signed)c Fd(.)13
14482 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
14483 (.)h(.)f(.)g(.)g(.)g(.)49 b Fe(55)2025 3557 y Fc(base_type,)28
14484 b(set_signed)22 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
14485 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)46 b Fe(55)2025
14486 3661 y Fc(base_type,)28 b(set_size)8 b Fd(.)14 b(.)g(.)f(.)g(.)g(.)g(.)
14487 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
14488 (.)h(.)34 b Fe(55)2025 3765 y(bit)p 2124 3765 V 27 w(set)10
14489 b Fd(.)k(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
14490 f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14491 (.)g(.)g(.)g(.)g(.)h(.)f(.)36 b Fe(81)2025 3869 y(bit)p
14492 2124 3869 V 27 w(set)p 2245 3869 V 28 w(iter)7 b Fd(.)13
14493 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
14494 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
14495 g(.)33 b Fe(81)2025 3973 y(blo)r(c)n(k)p 2207 3973 V
14496 27 w(sym)n(tab)13 b Fd(.)f(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
14497 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
14498 g(.)g(.)g(.)g(.)40 b Fe(39)2025 4077 y Fc(block_symtab,)28
14499 b(block)8 b Fd(.)14 b(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
14500 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)34
14501 b Fe(39)2025 4180 y Fc(block_symtab,)28 b(clone_helper)7
14502 b Fd(.)16 b(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
14503 (.)g(.)34 b Fe(74)2025 4284 y Fc(block_symtab,)28 b(find_exposed_refs)
14504 11 b Fd(.)18 b(.)13 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)38
14505 b Fe(73)2025 4388 y Fc(block_symtab,)28 b(lookup_label)7
14506 b Fd(.)16 b(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
14507 (.)g(.)34 b Fe(40)2025 4492 y Fc(block_symtab,)28 b(new_label)15
14508 b Fd(.)g(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
14509 g(.)g(.)h(.)f(.)41 b Fe(41)2025 4596 y Fc(block_symtab,)28
14510 b(new_unique_child)14 b Fd(.)j(.)c(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
14511 (.)h(.)40 b Fe(41)2025 4699 y Fc(block_symtab,)28 b(new_unique_label)14
14512 b Fd(.)j(.)c(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)40
14513 b Fe(41)2025 4991 y Fl(C)2025 5132 y Fe(C)p 2085 5132
14514 V 28 w(t)n(yp)r(es)21 b Fd(.)13 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
14515 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
14516 h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)48 b Fe(85)2025
14517 5236 y(cmd)p 2172 5236 V 26 w(line)p 2317 5236 V 28 w(option)7
14518 b Fd(.)14 b(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
14519 (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)33
14520 b Fe(87)2025 5340 y(cmd)p 2172 5340 V 26 w(line)p 2317
14521 5340 V 28 w(option)p 2558 5340 V 28 w(kind)21 b Fd(.)13
14522 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
14523 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)48 b Fe(87)p eop
14524 %%Page: 96 98
14525 96 97 bop 150 -116 a Fn(96)2385 b(The)30 b(SUIF)g(V)-8
14526 b(ersion)30 b(1)h(Library)150 299 y Fl(D)150 434 y Fc
14527 (DECLARE_DLIST_CLASS)18 b Fd(.)g(.)13 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
14528 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)44
14529 b Fe(80)150 535 y Fc(DECLARE_LIST_CLASS)25 b Fd(.)13
14530 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
14531 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)47 b Fe(79)150 636 y Fc
14532 (DECLARE_MTFLIST_CLASS)13 b Fd(.)18 b(.)13 b(.)g(.)g(.)g(.)h(.)f(.)g(.)
14533 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)39
14534 b Fe(80)150 737 y Fc(DECLARE_X_ARRAY)11 b Fd(.)17 b(.)c(.)g(.)g(.)g(.)g
14535 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
14536 g(.)g(.)g(.)g(.)g(.)g(.)38 b Fe(82)150 838 y(dlist)11
14537 b Fd(.)i(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
14538 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14539 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)37 b Fe(80)150 939
14540 y(dlist)p 300 939 24 4 v 28 w(e)14 b Fd(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)g
14541 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
14542 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)40
14543 b Fe(80)150 1040 y(dlist)p 300 1040 V 28 w(iter)8 b Fd(.)13
14544 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
14545 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
14546 g(.)g(.)g(.)34 b Fe(80)150 1314 y Fl(E)150 1449 y Fe(en)n(um)p
14547 338 1449 V 26 w(t)n(yp)r(e)8 b Fd(.)k(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g
14548 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
14549 f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)34 b Fe(59)150
14550 1550 y Fc(enum_type,)28 b(find_member_by_name)14 b Fd(.)j(.)c(.)h(.)f
14551 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)40 b Fe(59)150 1651
14552 y Fc(enum_type,)28 b(find_member_by_value)11 b Fd(.)18
14553 b(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)38 b Fe(59)150
14554 1752 y Fc(enum_type,)28 b(member)13 b Fd(.)h(.)f(.)h(.)f(.)g(.)g(.)g(.)
14555 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
14556 (.)h(.)f(.)39 b Fe(59)150 1853 y Fc(enum_type,)28 b(name)18
14557 b Fd(.)c(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
14558 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)44
14559 b Fe(59)150 1954 y Fc(enum_type,)28 b(num_values)22 b
14560 Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
14561 (.)g(.)g(.)g(.)h(.)f(.)g(.)46 b Fe(59)150 2055 y Fc(enum_type,)28
14562 b(set_member)22 b Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
14563 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)46 b Fe(59)150
14564 2156 y Fc(enum_type,)28 b(set_name)8 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)
14565 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
14566 (.)g(.)34 b Fe(59)150 2257 y Fc(enum_type,)28 b(set_num_values)10
14567 b Fd(.)16 b(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14568 (.)g(.)g(.)36 b Fe(59)150 2358 y Fc(enum_type,)28 b(set_value)c
14569 Fd(.)13 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
14570 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)49 b Fe(59)150 2459 y
14571 Fc(enum_type,)28 b(value)16 b Fd(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
14572 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
14573 (.)g(.)42 b Fe(59)150 2560 y Fc(error_line)7 b Fd(.)15
14574 b(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
14575 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
14576 33 b Fe(88)150 2661 y Fc(exit_suif)9 b Fd(.)16 b(.)d(.)g(.)g(.)g(.)g(.)
14577 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
14578 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)36
14579 b Fe(86)150 2935 y Fl(F)150 3070 y Fe(\014le)p 253 3070
14580 V 28 w(set)10 b Fd(.)j(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
14581 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
14582 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)37 b Fe(7)150
14583 3171 y Fc(file_set,)28 b(add_file)13 b Fd(.)h(.)f(.)g(.)h(.)f(.)g(.)g
14584 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
14585 g(.)g(.)h(.)39 b Fe(7)150 3272 y Fc(file_set,)28 b(file_list)10
14586 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14587 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)37 b Fe(7)150
14588 3373 y Fc(file_set,)28 b(globals)15 b Fd(.)f(.)g(.)f(.)g(.)g(.)g(.)g(.)
14589 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
14590 (.)f(.)g(.)g(.)42 b Fe(7)150 3474 y Fc(file_set,)28 b(next_file)10
14591 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14592 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)37 b Fe(7)150
14593 3575 y Fc(file_set,)28 b(reset_iter)7 b Fd(.)16 b(.)d(.)g(.)g(.)g(.)g
14594 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
14595 h(.)f(.)34 b Fe(7)150 3676 y(\014le)p 253 3676 V 28 w(set)p
14596 375 3676 V 28 w(en)n(try)11 b Fd(.)h(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
14597 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
14598 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)38 b Fe(8)150 3777
14599 y Fc(file_set_entry,)29 b(name)7 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)g(.)
14600 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
14601 (.)34 b Fe(8)150 3878 y Fc(file_set_entry,)29 b(next_proc)12
14602 b Fd(.)j(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
14603 g(.)g(.)g(.)39 b Fe(8)150 3979 y Fc(file_set_entry,)29
14604 b(parent)21 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
14605 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)46 b Fe(8)150
14606 4080 y Fc(file_set_entry,)29 b(reset_proc_iter)14 b Fd(.)i(.)d(.)g(.)h
14607 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)40 b Fe(8)150 4181
14608 y Fc(file_set_entry,)29 b(symtab)21 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)h(.)f
14609 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)46
14610 b Fe(8)150 4282 y(\014le)p 253 4282 V 28 w(set)p 375
14611 4282 V 28 w(en)n(try)p 579 4282 V 27 w(list)14 b Fd(.)f(.)g(.)h(.)f(.)g
14612 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
14613 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)41 b Fe(8)150 4383
14614 y(\014le)p 253 4383 V 28 w(sym)n(tab)18 b Fd(.)12 b(.)h(.)g(.)g(.)g(.)h
14615 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
14616 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)45 b
14617 Fe(38)150 4484 y Fc(file_symtab,)28 b(fse)16 b Fd(.)e(.)f(.)g(.)g(.)g
14618 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
14619 h(.)f(.)g(.)g(.)g(.)g(.)42 b Fe(38)150 4584 y Fc(file_symtab,)28
14620 b(number_globals)d Fd(.)13 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
14621 f(.)g(.)g(.)g(.)48 b Fe(43)150 4685 y(\014leset)7 b Fd(.)13
14622 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
14623 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
14624 f(.)g(.)g(.)g(.)g(.)g(.)h(.)33 b Fe(7)150 4786 y(func)p
14625 298 4786 V 28 w(t)n(yp)r(e)10 b Fd(.)i(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g
14626 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
14627 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)36 b Fe(57)150
14628 4887 y Fc(func_type,)28 b(arg_type)8 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)
14629 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
14630 (.)g(.)34 b Fe(57)150 4988 y Fc(func_type,)28 b(args_known)22
14631 b Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
14632 (.)g(.)g(.)g(.)h(.)f(.)g(.)46 b Fe(58)2025 299 y Fc(func_type,)28
14633 b(has_varargs)17 b Fd(.)f(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
14634 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)44 b Fe(58)2025
14635 399 y Fc(func_type,)28 b(num_args)8 b Fd(.)14 b(.)g(.)f(.)g(.)g(.)g(.)g
14636 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
14637 h(.)34 b Fe(57)2025 498 y Fc(func_type,)28 b(return_type)17
14638 b Fd(.)f(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
14639 f(.)g(.)g(.)g(.)g(.)44 b Fe(57)2025 598 y Fc(func_type,)28
14640 b(set_arg_type)15 b Fd(.)g(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
14641 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)41 b Fe(57)2025 698
14642 y Fc(func_type,)28 b(set_args_known)10 b Fd(.)16 b(.)d(.)g(.)g(.)g(.)g
14643 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)36
14644 b Fe(58)2025 798 y Fc(func_type,)28 b(set_args_unknown)d
14645 Fd(.)13 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)48
14646 b Fe(58)2025 897 y Fc(func_type,)28 b(set_num_args)15
14647 b Fd(.)g(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
14648 g(.)g(.)h(.)f(.)41 b Fe(57)2025 997 y Fc(func_type,)28
14649 b(set_return_type)7 b Fd(.)16 b(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
14650 (.)f(.)g(.)g(.)g(.)g(.)g(.)34 b Fe(57)2025 1097 y Fc(func_type,)28
14651 b(set_varargs)17 b Fd(.)f(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
14652 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)44 b Fe(58)2025
14653 1364 y Fl(G)2025 1496 y Fe(glist)13 b Fd(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
14654 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
14655 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
14656 40 b Fe(79)2025 1596 y(glist)p 2170 1596 V 29 w(e)16
14657 b Fd(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
14658 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
14659 (.)h(.)f(.)g(.)g(.)g(.)g(.)43 b Fe(79)2025 1696 y(glist)p
14660 2170 1696 V 29 w(iter)10 b Fd(.)j(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
14661 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
14662 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)36 b Fe(79)2025
14663 1796 y(global)p 2229 1796 V 29 w(sym)n(tab)18 b Fd(.)12
14664 b(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
14665 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)45
14666 b Fe(38)2025 1895 y Fc(global_symtab,)29 b(lookup_proc)7
14667 b Fd(.)15 b(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
14668 (.)g(.)34 b Fe(40)2025 1995 y Fc(global_symtab,)29 b(new_proc)15
14669 b Fd(.)f(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
14670 g(.)g(.)h(.)f(.)41 b Fe(41)2025 2262 y Fl(H)2025 2394
14671 y Fe(hash)p 2184 2394 V 27 w(c)n(hain)7 b Fd(.)13 b(.)g(.)h(.)f(.)g(.)g
14672 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
14673 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)33
14674 b Fe(81)2025 2494 y(hash)p 2184 2494 V 27 w(e)10 b Fd(.)k(.)f(.)g(.)g
14675 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
14676 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
14677 (.)f(.)36 b Fe(81)2025 2594 y(hash)p 2184 2594 V 27 w(table)12
14678 b Fd(.)i(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
14679 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
14680 (.)g(.)h(.)38 b Fe(81)2025 2694 y Fc(hash_table,)28 b(enter)13
14681 b Fd(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
14682 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)39 b Fe(81)2025
14683 2793 y Fc(hash_table,)28 b(lookup)10 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)
14684 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14685 (.)g(.)g(.)37 b Fe(81)2025 3060 y Fl(I)2025 3193 y Fe(if)p
14686 2074 3193 V 28 w(ops)9 b Fd(.)k(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14687 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
14688 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)35
14689 b Fe(23)2025 3293 y Fc(if_ops_name)24 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)g
14690 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
14691 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)48 b Fe(23)2025
14692 3392 y(immed)20 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
14693 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
14694 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)48 b Fe(83)2025
14695 3492 y Fc(immed,)27 b(addr)11 b Fd(.)j(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g
14696 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
14697 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)38 b Fe(83)2025 3592
14698 y Fc(immed,)27 b(flt)14 b Fd(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
14699 h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14700 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)40 b Fe(83)2025 3692 y
14701 Fc(immed,)27 b(instr)9 b Fd(.)14 b(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14702 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
14703 g(.)g(.)g(.)h(.)f(.)g(.)35 b Fe(84)2025 3791 y Fc(immed,)27
14704 b(integer)22 b Fd(.)13 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
14705 f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14706 (.)47 b Fe(83)2025 3891 y Fc(immed,)27 b(is_error)18
14707 b Fd(.)d(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
14708 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)45
14709 b Fe(84)2025 3991 y Fc(immed,)27 b(is_flt)6 b Fd(.)14
14710 b(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
14711 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)33
14712 b Fe(83)2025 4091 y Fc(immed,)27 b(is_instr)18 b Fd(.)d(.)e(.)g(.)g(.)g
14713 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
14714 h(.)f(.)g(.)g(.)g(.)g(.)g(.)45 b Fe(84)2025 4190 y Fc(immed,)27
14715 b(is_integer)13 b Fd(.)i(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
14716 f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)39
14717 b Fe(83)2025 4290 y Fc(immed,)27 b(is_op)9 b Fd(.)14
14718 b(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14719 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)35
14720 b Fe(83)2025 4390 y Fc(immed,)27 b(is_string)16 b Fd(.)e(.)g(.)f(.)g(.)
14721 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
14722 (.)g(.)g(.)h(.)f(.)g(.)g(.)42 b Fe(83)2025 4490 y Fc(immed,)27
14723 b(is_symbol)16 b Fd(.)e(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
14724 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)42
14725 b Fe(83)2025 4589 y Fc(immed,)27 b(is_type)22 b Fd(.)13
14726 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
14727 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)47
14728 b Fe(83)2025 4689 y Fc(immed,)27 b(offset)6 b Fd(.)14
14729 b(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
14730 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)33
14731 b Fe(83)2025 4789 y Fc(immed,)27 b(op)16 b Fd(.)e(.)f(.)g(.)g(.)g(.)g
14732 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
14733 h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)43
14734 b Fe(83)2025 4889 y Fc(immed,)27 b(print)9 b Fd(.)14
14735 b(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14736 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)35
14737 b Fe(84)2025 4988 y Fc(immed,)27 b(rawprint)18 b Fd(.)d(.)e(.)g(.)g(.)g
14738 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
14739 h(.)f(.)g(.)g(.)g(.)g(.)g(.)45 b Fe(84)p eop
14740 %%Page: 97 99
14741 97 98 bop 150 -116 a Fn(F)-8 b(unction,)30 b(V)-8 b(ariable,)30
14742 b(and)g(T)m(yp)s(e)g(Index)2085 b(97)150 299 y Fc(immed,)27
14743 b(string)6 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
14744 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
14745 g(.)h(.)32 b Fe(83)150 399 y Fc(immed,)27 b(symbol)6
14746 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
14747 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)32
14748 b Fe(83)150 498 y Fc(immed,)27 b(type)11 b Fd(.)j(.)f(.)g(.)h(.)f(.)g
14749 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
14750 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)37 b Fe(83)150
14751 598 y(immed)p 383 598 24 4 v 26 w(kinds)21 b Fd(.)13
14752 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
14753 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)48
14754 b Fe(83)150 698 y(in)p 219 698 V 28 w(arra)n(y)18 b Fd(.)13
14755 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
14756 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
14757 g(.)g(.)g(.)45 b Fe(34)150 798 y Fc(in_array,)28 b(base_op)13
14758 b Fd(.)h(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
14759 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)39 b Fe(34)150
14760 898 y Fc(in_array,)28 b(bound)18 b Fd(.)c(.)f(.)g(.)g(.)h(.)f(.)g(.)g
14761 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
14762 g(.)g(.)h(.)f(.)44 b Fe(34)150 997 y Fc(in_array,)28
14763 b(dims)21 b Fd(.)13 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14764 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
14765 47 b Fe(34)150 1097 y Fc(in_array,)28 b(elem_size)8 b
14766 Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
14767 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)34 b Fe(34)150
14768 1197 y Fc(in_array,)28 b(elem_type)8 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)
14769 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
14770 (.)g(.)34 b Fe(34)150 1297 y Fc(in_array,)28 b(index)18
14771 b Fd(.)c(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
14772 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)44
14773 b Fe(34)150 1396 y Fc(in_array,)28 b(offset)16 b Fd(.)e(.)f(.)g(.)g(.)g
14774 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
14775 h(.)f(.)g(.)g(.)g(.)g(.)42 b Fe(34)150 1496 y Fc(in_array,)28
14776 b(offset_op)8 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
14777 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)34
14778 b Fe(34)150 1596 y Fc(in_array,)28 b(set_base_op)22 b
14779 Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
14780 (.)g(.)g(.)g(.)h(.)f(.)g(.)46 b Fe(34)150 1696 y Fc(in_array,)28
14781 b(set_bound)8 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
14782 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)34
14783 b Fe(34)150 1796 y Fc(in_array,)28 b(set_dims)10 b Fd(.)15
14784 b(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
14785 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)37 b Fe(34)150 1895
14786 y Fc(in_array,)28 b(set_elem_size)15 b Fd(.)g(.)f(.)f(.)g(.)g(.)g(.)g
14787 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)41
14788 b Fe(34)150 1995 y Fc(in_array,)28 b(set_index)8 b Fd(.)15
14789 b(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
14790 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)34 b Fe(34)150 2095 y
14791 Fc(in_array,)28 b(set_offset)c Fd(.)13 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
14792 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)49
14793 b Fe(34)150 2195 y Fc(in_array,)28 b(set_offset_op)15
14794 b Fd(.)g(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
14795 h(.)f(.)g(.)g(.)41 b Fe(34)150 2294 y(in)p 219 2294 V
14796 28 w(b)t(j)20 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
14797 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
14798 h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)46 b
14799 Fe(32)150 2394 y Fc(in_bj,)27 b(set_src_op)13 b Fd(.)i(.)e(.)h(.)f(.)g
14800 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
14801 g(.)g(.)g(.)h(.)f(.)39 b Fe(32)150 2494 y Fc(in_bj,)27
14802 b(set_target)13 b Fd(.)i(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
14803 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)39
14804 b Fe(32)150 2594 y Fc(in_bj,)27 b(src_op)6 b Fd(.)15
14805 b(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14806 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)32
14807 b Fe(32)150 2693 y Fc(in_bj,)27 b(target)6 b Fd(.)15
14808 b(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14809 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)32
14810 b Fe(32)150 2793 y(in)p 219 2793 V 28 w(cal)8 b Fd(.)14
14811 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14812 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
14813 g(.)g(.)g(.)h(.)f(.)g(.)34 b Fe(33)150 2893 y Fc(in_cal,)27
14814 b(addr_op)18 b Fd(.)d(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
14815 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)44
14816 b Fe(33)150 2993 y Fc(in_cal,)27 b(argument)16 b Fd(.)f(.)e(.)g(.)g(.)g
14817 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
14818 h(.)f(.)g(.)g(.)g(.)g(.)42 b Fe(33)150 3093 y Fc(in_cal,)27
14819 b(num_args)16 b Fd(.)f(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
14820 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)42
14821 b Fe(33)150 3192 y Fc(in_cal,)27 b(set_addr_op)8 b Fd(.)16
14822 b(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
14823 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)34 b Fe(33)150 3292 y
14824 Fc(in_cal,)27 b(set_argument)e Fd(.)13 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
14825 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)49
14826 b Fe(33)150 3392 y Fc(in_cal,)27 b(set_num_args)e Fd(.)13
14827 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
14828 (.)g(.)g(.)g(.)g(.)g(.)49 b Fe(33)150 3492 y(in)p 219
14829 3492 V 28 w(gen)14 b Fd(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
14830 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
14831 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)41 b Fe(35)150
14832 3591 y Fc(in_gen,)27 b(name)9 b Fd(.)14 b(.)f(.)g(.)g(.)g(.)h(.)f(.)g
14833 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
14834 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)35 b Fe(35)150 3691 y
14835 Fc(in_gen,)27 b(set_name)16 b Fd(.)f(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
14836 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
14837 (.)g(.)42 b Fe(35)150 3791 y Fc(in_gen,)27 b(set_num_srcs)e
14838 Fd(.)13 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
14839 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)49 b Fe(36)150 3891 y(in)p
14840 219 3891 V 28 w(lab)21 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
14841 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
14842 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)47
14843 b Fe(35)150 3991 y Fc(in_lab,)27 b(label)6 b Fd(.)15
14844 b(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14845 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)32
14846 b Fe(35)150 4090 y Fc(in_lab,)27 b(set_label)13 b Fd(.)i(.)e(.)h(.)f(.)
14847 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
14848 (.)g(.)g(.)g(.)h(.)f(.)39 b Fe(35)150 4190 y(in)p 219
14849 4190 V 28 w(ldc)23 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
14850 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
14851 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)49 b
14852 Fe(33)150 4290 y Fc(in_ldc,)27 b(set_value)13 b Fd(.)i(.)e(.)h(.)f(.)g
14853 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
14854 g(.)g(.)g(.)h(.)f(.)39 b Fe(33)150 4390 y Fc(in_ldc,)27
14855 b(value)6 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
14856 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
14857 g(.)h(.)32 b Fe(33)150 4489 y(in)p 219 4489 V 28 w(m)n(br)20
14858 b Fd(.)13 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
14859 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
14860 g(.)g(.)h(.)f(.)g(.)g(.)48 b Fe(35)150 4589 y Fc(in_mbr,)27
14861 b(default_lab)8 b Fd(.)16 b(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
14862 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)34
14863 b Fe(35)150 4689 y Fc(in_mbr,)27 b(label)6 b Fd(.)15
14864 b(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14865 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)32
14866 b Fe(35)150 4789 y Fc(in_mbr,)27 b(lower)6 b Fd(.)15
14867 b(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14868 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)32
14869 b Fe(35)150 4889 y Fc(in_mbr,)27 b(num_labs)16 b Fd(.)f(.)e(.)g(.)g(.)g
14870 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
14871 h(.)f(.)g(.)g(.)g(.)g(.)42 b Fe(35)150 4988 y Fc(in_mbr,)27
14872 b(set_default_lab)15 b Fd(.)h(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14873 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)41 b Fe(35)2025
14874 299 y Fc(in_mbr,)27 b(set_label)13 b Fd(.)i(.)e(.)g(.)g(.)h(.)f(.)g(.)g
14875 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
14876 g(.)h(.)39 b Fe(35)2025 405 y Fc(in_mbr,)27 b(set_lower)13
14877 b Fd(.)i(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
14878 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)39 b Fe(35)2025
14879 512 y Fc(in_mbr,)27 b(set_num_labs)e Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g
14880 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)49
14881 b Fe(35)2025 619 y Fc(in_mbr,)27 b(set_src)18 b Fd(.)d(.)e(.)g(.)g(.)g
14882 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
14883 h(.)f(.)g(.)g(.)g(.)g(.)g(.)45 b Fe(35)2025 725 y Fc(in_mbr,)27
14884 b(src_op)22 b Fd(.)13 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
14885 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
14886 47 b Fe(35)2025 832 y(in)p 2094 832 V 27 w(rrr)10 b Fd(.)j(.)h(.)f(.)g
14887 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
14888 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
14889 (.)h(.)f(.)36 b Fe(29)2025 938 y Fc(in_rrr,)27 b(dst_addr_op)8
14890 b Fd(.)15 b(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
14891 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)34 b Fe(29)2025
14892 1045 y Fc(in_rrr,)27 b(is_commutative)17 b Fd(.)g(.)c(.)g(.)g(.)g(.)g
14893 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)44
14894 b Fe(29)2025 1151 y Fc(in_rrr,)27 b(is_unary)16 b Fd(.)e(.)g(.)f(.)g(.)
14895 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
14896 (.)g(.)g(.)h(.)f(.)g(.)g(.)42 b Fe(29)2025 1258 y Fc(in_rrr,)27
14897 b(set_dst_addr_op)15 b Fd(.)h(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
14898 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)41 b Fe(29)2025
14899 1365 y Fc(in_rrr,)27 b(set_shift_cnt_op)12 b Fd(.)17
14900 b(.)c(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
14901 (.)g(.)39 b Fe(29)2025 1471 y Fc(in_rrr,)27 b(set_src)18
14902 b Fd(.)d(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
14903 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)45
14904 b Fe(29)2025 1578 y Fc(in_rrr,)27 b(set_src_addr_op)15
14905 b Fd(.)h(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
14906 g(.)g(.)h(.)f(.)41 b Fe(29)2025 1684 y Fc(in_rrr,)27
14907 b(set_src1)16 b Fd(.)e(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
14908 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)42
14909 b Fe(29)2025 1791 y Fc(in_rrr,)27 b(set_src2)16 b Fd(.)e(.)g(.)f(.)g(.)
14910 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
14911 (.)g(.)g(.)h(.)f(.)g(.)g(.)42 b Fe(29)2025 1898 y Fc(in_rrr,)27
14912 b(shift_cnt_op)e Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
14913 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)49 b Fe(29)2025
14914 2004 y Fc(in_rrr,)27 b(src_addr_op)8 b Fd(.)15 b(.)f(.)f(.)g(.)g(.)g(.)
14915 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
14916 (.)h(.)34 b Fe(29)2025 2111 y Fc(in_rrr,)27 b(src_op)22
14917 b Fd(.)13 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
14918 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)47
14919 b Fe(29)2025 2217 y Fc(in_rrr,)27 b(src1_op)18 b Fd(.)d(.)e(.)g(.)g(.)g
14920 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
14921 h(.)f(.)g(.)g(.)g(.)g(.)g(.)45 b Fe(29)2025 2324 y Fc(in_rrr,)27
14922 b(src2_op)18 b Fd(.)d(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
14923 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)45
14924 b Fe(29)2025 2430 y Fc(init_aman)9 b Fd(.)15 b(.)f(.)f(.)g(.)g(.)g(.)g
14925 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
14926 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)36 b
14927 Fe(68)2025 2537 y Fc(init_suif)9 b Fd(.)15 b(.)f(.)f(.)g(.)g(.)g(.)g(.)
14928 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
14929 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)36 b Fe(85)2025
14930 2644 y(inst)p 2154 2644 V 28 w(format)15 b Fd(.)e(.)g(.)g(.)g(.)g(.)h
14931 (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
14932 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)42 b
14933 Fe(23)2025 2750 y(instr)p 2184 2750 V 28 w(map)p 2358
14934 2750 V 26 w(f)14 b Fd(.)g(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
14935 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
14936 f(.)g(.)g(.)g(.)g(.)g(.)41 b Fe(13)2025 2857 y(instruction)21
14937 b Fd(.)14 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
14938 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
14939 g(.)g(.)48 b Fe(23)2025 2963 y Fc(instruction,)28 b(clear_numbers)7
14940 b Fd(.)16 b(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
14941 (.)g(.)34 b Fe(12)2025 3070 y Fc(instruction,)28 b(clone)10
14942 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
14943 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)37 b Fe(73)2025
14944 3176 y Fc(instruction,)28 b(clone_helper)10 b Fd(.)16
14945 b(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14946 (.)36 b Fe(74)2025 3283 y Fc(instruction,)28 b(dst_op)8
14947 b Fd(.)14 b(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
14948 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)34 b Fe(25)2025
14949 3390 y Fc(instruction,)28 b(find_exposed_refs)14 b Fd(.)j(.)c(.)g(.)g
14950 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)40 b Fe(73)2025 3496
14951 y Fc(instruction,)28 b(format)8 b Fd(.)14 b(.)g(.)f(.)g(.)g(.)g(.)g(.)g
14952 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
14953 34 b Fe(23)2025 3603 y Fc(instruction,)28 b(num_srcs)22
14954 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14955 (.)g(.)g(.)g(.)g(.)h(.)f(.)46 b Fe(26)2025 3709 y Fc(instruction,)28
14956 b(opcode)8 b Fd(.)14 b(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
14957 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)34
14958 b Fe(23)2025 3816 y Fc(instruction,)28 b(owner)10 b Fd(.)15
14959 b(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
14960 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)37 b Fe(26)2025 3923
14961 y Fc(instruction,)28 b(parent)8 b Fd(.)14 b(.)g(.)f(.)g(.)g(.)g(.)g(.)g
14962 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
14963 34 b Fe(25)2025 4029 y Fc(instruction,)28 b(print)10
14964 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
14965 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)37 b Fe(27)2025
14966 4136 y Fc(instruction,)28 b(remove)8 b Fd(.)14 b(.)g(.)f(.)g(.)g(.)g(.)
14967 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
14968 (.)h(.)34 b Fe(26)2025 4242 y Fc(instruction,)28 b(result_type)12
14969 b Fd(.)k(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
14970 g(.)g(.)g(.)39 b Fe(25)2025 4349 y Fc(instruction,)28
14971 b(set_dst)c Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14972 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)49 b Fe(25)2025
14973 4455 y Fc(instruction,)28 b(set_opcode)15 b Fd(.)g(.)e(.)h(.)f(.)g(.)g
14974 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)41
14975 b Fe(23)2025 4562 y Fc(instruction,)28 b(set_result_type)23
14976 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)46
14977 b Fe(25)2025 4669 y Fc(instruction,)28 b(set_src_op)15
14978 b Fd(.)g(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
14979 g(.)g(.)h(.)f(.)41 b Fe(26)2025 4775 y Fc(instruction,)28
14980 b(src_map)c Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
14981 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)49 b Fe(26)2025
14982 4882 y Fc(instruction,)28 b(src_op)8 b Fd(.)14 b(.)g(.)f(.)g(.)g(.)g(.)
14983 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
14984 (.)h(.)34 b Fe(26)2025 4988 y(instruction)p 2393 4988
14985 V 28 w(list)7 b Fd(.)14 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
14986 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
14987 g(.)g(.)g(.)34 b Fe(23)p eop
14988 %%Page: 98 100
14989 98 99 bop 150 -116 a Fn(98)2385 b(The)30 b(SUIF)g(V)-8
14990 b(ersion)30 b(1)h(Library)150 299 y Fl(K)150 434 y Fe(k)p
14991 196 434 24 4 v 27 w(call)p 337 434 V 29 w(b)n(y)p 448
14992 434 V 27 w(ref)16 b Fd(.)e(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
14993 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
14994 f(.)g(.)g(.)g(.)g(.)43 b Fe(66)150 535 y(k)p 196 535
14995 V 27 w(common)p 506 535 V 26 w(blo)r(c)n(k)11 b Fd(.)j(.)f(.)g(.)g(.)g
14996 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
14997 f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)37 b Fe(67)150 636 y(k)p
14998 196 636 V 27 w(enable)p 436 636 V 28 w(exceptions)11
14999 b Fd(.)i(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15000 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)37 b Fe(67)150
15001 737 y(k)p 196 737 V 27 w(\014elds)15 b Fd(.)f(.)f(.)g(.)g(.)g(.)g(.)g
15002 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
15003 f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)41
15004 b Fe(67)150 838 y(k)p 196 838 V 27 w(\014ll)7 b Fd(.)13
15005 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15006 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15007 g(.)g(.)g(.)g(.)h(.)f(.)g(.)33 b Fe(65)150 938 y(k)p
15008 196 938 V 27 w(history)18 b Fd(.)c(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15009 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
15010 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)45 b Fe(67)150
15011 1039 y(k)p 196 1039 V 27 w(line)7 b Fd(.)14 b(.)f(.)g(.)g(.)g(.)g(.)g
15012 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
15013 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)33
15014 b Fe(67)150 1140 y(k)p 196 1140 V 27 w(m)n(ulti)p 401
15015 1140 V 27 w(init)9 b Fd(.)k(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15016 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15017 g(.)g(.)g(.)g(.)h(.)f(.)35 b Fe(66)150 1241 y(k)p 196
15018 1241 V 27 w(orig)p 350 1241 V 29 w(t)n(yp)r(e)17 b Fd(.)c(.)g(.)g(.)g
15019 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
15020 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)44
15021 b Fe(66)150 1342 y(k)p 196 1342 V 27 w(reg)p 325 1342
15022 V 28 w(n)n(um)13 b Fd(.)f(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15023 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
15024 f(.)g(.)g(.)g(.)g(.)g(.)h(.)39 b Fe(67)150 1443 y(k)p
15025 196 1443 V 27 w(rep)r(eat)p 434 1443 V 28 w(init)9 b
15026 Fd(.)k(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
15027 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15028 35 b Fe(65)150 1716 y Fl(L)150 1851 y Fe(lab)r(el)p 314
15029 1851 V 29 w(sym)8 b Fd(.)j(.)i(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15030 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15031 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)34 b Fe(47)150 1952 y(lexicon)19
15032 b Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15033 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15034 h(.)f(.)g(.)g(.)g(.)g(.)45 b Fe(84)150 2053 y(lib)p 240
15035 2053 V 28 w(exit)p 394 2053 V 28 w(f)7 b Fd(.)13 b(.)g(.)g(.)g(.)h(.)f
15036 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15037 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)33
15038 b Fe(86)150 2154 y(lib)p 240 2154 V 28 w(init)p 383 2154
15039 V 28 w(f)12 b Fd(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
15040 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
15041 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)39 b Fe(86)150 2255 y
15042 Fc(LIBRARY)15 b Fd(.)f(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15043 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
15044 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)41 b Fe(86)150 2356 y
15045 Fc(lookup_annote)16 b Fd(.)g(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
15046 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15047 (.)g(.)g(.)43 b Fe(68)150 2629 y Fl(M)150 2764 y Fe(mac)n(hine)p
15048 431 2764 V 27 w(params)15 b Fd(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15049 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
15050 g(.)h(.)f(.)41 b Fe(85)150 2865 y Fc(make_ref_params)11
15051 b Fd(.)17 b(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15052 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)38
15053 b Fe(77)150 2966 y(mo)r(di\014er)p 431 2966 V 27 w(t)n(yp)r(e)12
15054 b Fd(.)g(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15055 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)38
15056 b Fe(59)150 3067 y Fc(modifier_type,)29 b(base)8 b Fd(.)14
15057 b(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15058 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)34 b Fe(59)150 3168 y
15059 Fc(modifier_type,)29 b(set_base)15 b Fd(.)f(.)g(.)f(.)g(.)g(.)g(.)g(.)g
15060 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)41
15061 b Fe(59)150 3269 y(m)n(t\015ist)10 b Fd(.)i(.)h(.)g(.)g(.)g(.)g(.)h(.)f
15062 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15063 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)36
15064 b Fe(80)150 3542 y Fl(O)150 3677 y Fe(ob)t(ject)p 361
15065 3677 V 29 w(kinds)14 b Fd(.)e(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
15066 (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15067 g(.)g(.)g(.)g(.)g(.)h(.)40 b Fe(70)150 3778 y(op)r(erand)16
15068 b Fd(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
15069 f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15070 (.)g(.)g(.)g(.)g(.)43 b Fe(27)150 3879 y Fc(operand,)27
15071 b(clone)22 b Fd(.)13 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15072 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
15073 47 b Fe(73)150 3980 y Fc(operand,)27 b(clone_helper)c
15074 Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15075 (.)g(.)g(.)g(.)h(.)f(.)g(.)46 b Fe(74)150 4081 y Fc(operand,)27
15076 b(find_exposed_refs)7 b Fd(.)18 b(.)13 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
15077 f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)33 b Fe(73)150 4181 y
15078 Fc(operand,)27 b(instr)22 b Fd(.)13 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15079 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
15080 f(.)g(.)g(.)g(.)47 b Fe(27)150 4282 y Fc(operand,)27
15081 b(is_const_int)c Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
15082 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)46 b Fe(27)150
15083 4383 y Fc(operand,)27 b(is_expr)16 b Fd(.)f(.)e(.)g(.)g(.)g(.)g(.)g(.)h
15084 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15085 g(.)g(.)g(.)42 b Fe(27)150 4484 y Fc(operand,)27 b(is_instr)13
15086 b Fd(.)i(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15087 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)39 b Fe(27)150
15088 4585 y Fc(operand,)27 b(is_null)16 b Fd(.)f(.)e(.)g(.)g(.)g(.)g(.)g(.)h
15089 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15090 g(.)g(.)g(.)42 b Fe(27)150 4686 y Fc(operand,)27 b(is_symbol)10
15091 b Fd(.)16 b(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15092 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)37 b Fe(27)150
15093 4787 y Fc(operand,)27 b(print)22 b Fd(.)13 b(.)g(.)h(.)f(.)g(.)g(.)g(.)
15094 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15095 (.)h(.)f(.)g(.)g(.)g(.)47 b Fe(27)150 4887 y Fc(operand,)27
15096 b(print_source)c Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
15097 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)46 b Fe(27)150
15098 4988 y Fc(operand,)27 b(remove)18 b Fd(.)d(.)e(.)g(.)g(.)h(.)f(.)g(.)g
15099 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
15100 g(.)g(.)h(.)f(.)44 b Fe(26)2025 299 y Fc(operand,)27
15101 b(set_instr)10 b Fd(.)16 b(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15102 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)37
15103 b Fe(27)2025 418 y Fc(operand,)27 b(set_symbol)8 b Fd(.)15
15104 b(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15105 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)34 b Fe(27)2025 537 y
15106 Fc(operand,)27 b(symbol)18 b Fd(.)d(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15107 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
15108 g(.)g(.)45 b Fe(27)2025 656 y Fc(operand,)27 b(type)6
15109 b Fd(.)14 b(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15110 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)33
15111 b Fe(27)2025 1039 y Fl(P)2025 1214 y Fe(parse)p 2205
15112 1214 V 28 w(cmd)p 2375 1214 V 26 w(line)9 b Fd(.)14 b(.)f(.)g(.)g(.)g
15113 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
15114 h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)35 b Fe(87)2025
15115 1333 y Fc(print_id_number)11 b Fd(.)17 b(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)
15116 h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15117 (.)g(.)g(.)g(.)38 b Fe(42)2025 1453 y(pro)r(c)p 2177
15118 1453 V 28 w(sym)14 b Fd(.)e(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15119 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15120 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)41 b Fe(46)2025 1572
15121 y Fc(proc_sym,)27 b(block)18 b Fd(.)d(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15122 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15123 g(.)g(.)g(.)45 b Fe(46)2025 1691 y Fc(proc_sym,)27 b(file)22
15124 b Fd(.)13 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15125 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)47
15126 b Fe(46)2025 1810 y Fc(proc_sym,)27 b(flush_proc)e Fd(.)13
15127 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15128 (.)h(.)f(.)g(.)g(.)g(.)49 b Fe(47)2025 1929 y Fc(proc_sym,)27
15129 b(is_in_memory)17 b Fd(.)g(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15130 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)44 b Fe(46)2025
15131 2048 y Fc(proc_sym,)27 b(is_readable)c Fd(.)13 b(.)g(.)g(.)g(.)g(.)h(.)
15132 f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)46
15133 b Fe(46)2025 2167 y Fc(proc_sym,)27 b(is_written)e Fd(.)13
15134 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15135 (.)h(.)f(.)g(.)g(.)g(.)49 b Fe(46)2025 2286 y Fc(proc_sym,)27
15136 b(read_proc)8 b Fd(.)15 b(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15137 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)34
15138 b Fe(46)2025 2405 y Fc(proc_sym,)27 b(set_block)8 b Fd(.)15
15139 b(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15140 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)34 b Fe(46)2025 2524 y
15141 Fc(proc_sym,)27 b(set_src_lang)17 b Fd(.)g(.)c(.)g(.)g(.)g(.)g(.)g(.)g
15142 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)44
15143 b Fe(46)2025 2644 y Fc(proc_sym,)27 b(set_type)10 b Fd(.)16
15144 b(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15145 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)37 b Fe(46)2025 2763
15146 y Fc(proc_sym,)27 b(src_lang)10 b Fd(.)16 b(.)d(.)g(.)g(.)g(.)g(.)h(.)f
15147 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15148 g(.)37 b Fe(46)2025 2882 y Fc(proc_sym,)27 b(type)22
15149 b Fd(.)13 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15150 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)47
15151 b Fe(46)2025 3001 y Fc(proc_sym,)27 b(write_proc)e Fd(.)13
15152 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15153 (.)h(.)f(.)g(.)g(.)g(.)49 b Fe(47)2025 3120 y(pro)r(c)p
15154 2177 3120 V 28 w(sym)n(tab)11 b Fd(.)g(.)i(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15155 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
15156 f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)37 b Fe(38)2025 3239
15157 y Fc(proc_symtab,)28 b(clone_helper)10 b Fd(.)16 b(.)d(.)g(.)g(.)g(.)g
15158 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)36
15159 b Fe(74)2025 3358 y Fc(proc_symtab,)28 b(instr_num)17
15160 b Fd(.)f(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
15161 f(.)g(.)g(.)g(.)g(.)44 b Fe(11)2025 3477 y Fc(proc_symtab,)28
15162 b(next_instr_num)d Fd(.)13 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15163 g(.)h(.)f(.)g(.)48 b Fe(11)2025 3596 y Fc(proc_symtab,)28
15164 b(number_locals)7 b Fd(.)16 b(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
15165 (.)f(.)g(.)g(.)g(.)g(.)g(.)34 b Fe(43)2025 3715 y Fc(proc_symtab,)28
15166 b(params)8 b Fd(.)14 b(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15167 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)34
15168 b Fe(38)2025 3835 y(pro)r(citer)p 2292 3835 V 28 w(f)12
15169 b Fd(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
15170 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15171 (.)g(.)g(.)g(.)39 b Fe(89)2025 3954 y(ptr)p 2133 3954
15172 V 27 w(t)n(yp)r(e)13 b Fd(.)f(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15173 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15174 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)40 b Fe(56)2025
15175 4073 y Fc(ptr_type,)27 b(ref_type)10 b Fd(.)16 b(.)d(.)g(.)g(.)g(.)g(.)
15176 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15177 (.)g(.)g(.)37 b Fe(56)2025 4192 y Fc(ptr_type,)27 b(set_ref_type)17
15178 b Fd(.)g(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
15179 f(.)g(.)g(.)g(.)g(.)44 b Fe(56)2025 4575 y Fl(R)2025
15180 4750 y Fc(register_annote)11 b Fd(.)17 b(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)
15181 h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15182 (.)g(.)g(.)g(.)38 b Fe(68)2025 4869 y Fc(register_library)9
15183 b Fd(.)16 b(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15184 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)35
15185 b Fe(86)2025 4988 y(replacemen)n(ts)20 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)h
15186 (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15187 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)47 b Fe(73)p
15189 %%Page: 99 101
15190 99 100 bop 150 -116 a Fn(F)-8 b(unction,)30 b(V)-8 b(ariable,)30
15191 b(and)g(T)m(yp)s(e)g(Index)2085 b(99)150 299 y Fl(S)150
15192 435 y Fe(src)p 249 435 24 4 v 28 w(lang)p 417 435 V 29
15193 w(t)n(yp)r(e)18 b Fd(.)12 b(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15194 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15195 g(.)g(.)g(.)g(.)45 b Fe(46)150 536 y(src)p 249 536 V
15196 28 w(map)p 423 536 V 27 w(f)10 b Fd(.)j(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15197 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
15198 h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)36 b Fe(26)150
15199 637 y Fc(start_suif)7 b Fd(.)15 b(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
15200 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
15201 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)33 b Fe(86)150 738 y(string)p
15202 347 738 V 28 w(e)8 b Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15203 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
15204 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)34 b Fe(84)150
15205 840 y(string)p 347 840 V 28 w(table)10 b Fd(.)k(.)f(.)g(.)g(.)g(.)g(.)g
15206 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
15207 f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)36 b Fe(84)150
15208 941 y Fc(string_table,)29 b(enter)8 b Fd(.)14 b(.)f(.)g(.)g(.)g(.)g(.)g
15209 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
15210 g(.)34 b Fe(84)150 1042 y Fc(STRUCT_ANNOTE)16 b Fd(.)g(.)e(.)f(.)g(.)g
15211 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
15212 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)43 b Fe(69)150 1143
15213 y(struct)p 352 1143 V 27 w(annote)p 605 1143 V 28 w(def)16
15214 b Fd(.)e(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15215 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)42
15216 b Fe(69)150 1244 y Fc(struct_annote_def,)30 b(free)15
15217 b Fd(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
15218 h(.)f(.)g(.)g(.)41 b Fe(69)150 1346 y Fc(struct_annote_def,)30
15219 b(from)15 b Fd(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15220 (.)g(.)g(.)h(.)f(.)g(.)g(.)41 b Fe(69)150 1447 y Fc(struct_annote_def,)
15221 30 b(print)12 b Fd(.)i(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15222 (.)g(.)g(.)g(.)g(.)g(.)h(.)38 b Fe(69)150 1548 y Fc(struct_annote_def,)
15223 30 b(to)20 b Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15224 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)46 b Fe(69)150
15225 1649 y(struct)p 352 1649 V 27 w(t)n(yp)r(e)17 b Fd(.)c(.)g(.)g(.)g(.)h
15226 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15227 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)43
15228 b Fe(58)150 1750 y Fc(struct_type,)28 b(field_name)15
15229 b Fd(.)g(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
15230 h(.)f(.)g(.)g(.)41 b Fe(58)150 1851 y Fc(struct_type,)28
15231 b(field_type)15 b Fd(.)g(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15232 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)41 b Fe(58)150 1953 y
15233 Fc(struct_type,)28 b(find_field_by_name)11 b Fd(.)18
15234 b(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)38 b Fe(58)150
15235 2054 y Fc(struct_type,)28 b(find_field_by_offset)6 b
15236 Fd(.)18 b(.)13 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)33 b Fe(58)150
15237 2155 y Fc(struct_type,)28 b(name)13 b Fd(.)h(.)f(.)h(.)f(.)g(.)g(.)g(.)
15238 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15239 (.)h(.)f(.)39 b Fe(58)150 2256 y Fc(struct_type,)28 b(num_fields)15
15240 b Fd(.)g(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
15241 h(.)f(.)g(.)g(.)41 b Fe(58)150 2357 y Fc(struct_type,)28
15242 b(offset)8 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15243 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)34
15244 b Fe(58)150 2459 y Fc(struct_type,)28 b(set_field_name)d
15245 Fd(.)13 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)48
15246 b Fe(58)150 2560 y Fc(struct_type,)28 b(set_field_type)d
15247 Fd(.)13 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)48
15248 b Fe(58)150 2661 y Fc(struct_type,)28 b(set_name)22 b
15249 Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15250 (.)g(.)g(.)g(.)h(.)f(.)g(.)46 b Fe(58)150 2762 y Fc(struct_type,)28
15251 b(set_num_fields)d Fd(.)13 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
15252 f(.)g(.)g(.)g(.)48 b Fe(58)150 2863 y Fc(struct_type,)28
15253 b(set_offset)15 b Fd(.)g(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15254 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)41 b Fe(58)150 2965 y
15255 Fc(struct_type,)28 b(set_size)22 b Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)
15256 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)46
15257 b Fe(58)150 3066 y(suif)p 272 3066 V 28 w(ob)t(ject)10
15258 b Fd(.)k(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
15259 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
15260 (.)f(.)g(.)36 b Fe(70)150 3167 y Fc(suif_object,)28 b(annotes)c
15261 Fd(.)13 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15262 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)49 b Fe(70)150 3268 y
15263 Fc(suif_object,)28 b(append_annote)7 b Fd(.)17 b(.)c(.)g(.)g(.)g(.)g(.)
15264 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)33 b Fe(70)150
15265 3369 y Fc(suif_object,)28 b(are_annotations)23 b Fd(.)13
15266 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)45
15267 b Fe(70)150 3470 y Fc(suif_object,)28 b(clone_annotes)7
15268 b Fd(.)17 b(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15269 (.)h(.)33 b Fe(74)150 3572 y Fc(suif_object,)28 b(copy_annotes)10
15270 b Fd(.)16 b(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15271 (.)g(.)g(.)36 b Fe(71)150 3673 y Fc(suif_object,)28 b(find_annote_refs)
15272 17 b Fd(.)g(.)c(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)43
15273 b Fe(74)150 3774 y Fc(suif_object,)28 b(get_annote)15
15274 b Fd(.)g(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
15275 h(.)f(.)g(.)g(.)41 b Fe(71)150 3875 y Fc(suif_object,)28
15276 b(num_output_annotes)11 b Fd(.)18 b(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15277 (.)g(.)g(.)38 b Fe(71)150 3976 y Fc(suif_object,)28 b(object_kind)12
15278 b Fd(.)k(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
15279 g(.)g(.)h(.)38 b Fe(70)150 4078 y Fc(suif_object,)28
15280 b(peek_annote)12 b Fd(.)k(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
15281 (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)38 b Fe(71)150 4179 y
15282 Fc(suif_object,)28 b(prepend_annote)d Fd(.)13 b(.)g(.)h(.)f(.)g(.)g(.)g
15283 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)48 b Fe(70)150 4280
15284 y Fc(suif_object,)28 b(print_annotes)7 b Fd(.)17 b(.)c(.)g(.)g(.)g(.)g
15285 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)33 b Fe(71)150
15286 4381 y Fc(suif_object,)28 b(set_annote)15 b Fd(.)g(.)f(.)f(.)g(.)g(.)g
15287 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)41
15288 b Fe(70)150 4482 y Fc(suif_proc_iter)14 b Fd(.)i(.)d(.)g(.)h(.)f(.)g(.)
15289 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15290 (.)g(.)g(.)h(.)f(.)g(.)g(.)40 b Fe(88)150 4584 y(sym)p
15291 291 4584 V 26 w(addr)11 b Fd(.)i(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15292 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15293 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)37 b Fe(84)150
15294 4685 y Fc(sym_addr,)28 b(offset)16 b Fd(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)h
15295 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15296 g(.)g(.)g(.)42 b Fe(84)150 4786 y Fc(sym_addr,)28 b(print)18
15297 b Fd(.)c(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15298 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)44
15299 b Fe(84)150 4887 y Fc(sym_addr,)28 b(symbol)16 b Fd(.)e(.)f(.)g(.)g(.)g
15300 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15301 h(.)f(.)g(.)g(.)g(.)g(.)42 b Fe(84)150 4988 y(sym)p 291
15302 4988 V 26 w(kinds)16 b Fd(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15303 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
15304 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)42 b Fe(45)2025 299 y(sym)p
15305 2166 299 V 26 w(no)r(de)8 b Fd(.)13 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15306 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15307 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)34 b Fe(45)2025
15308 399 y Fc(sym_node,)27 b(add_to_table)17 b Fd(.)g(.)c(.)g(.)g(.)g(.)g(.)
15309 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)44
15310 b Fe(46)2025 498 y Fc(sym_node,)27 b(clear_sym_id)17
15311 b Fd(.)g(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
15312 f(.)g(.)g(.)g(.)g(.)44 b Fe(43)2025 598 y Fc(sym_node,)27
15313 b(copy)22 b Fd(.)13 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15314 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15315 47 b Fe(46)2025 698 y Fc(sym_node,)27 b(is_extern)8 b
15316 Fd(.)15 b(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15317 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)34 b Fe(45)2025
15318 798 y Fc(sym_node,)27 b(is_global)8 b Fd(.)15 b(.)f(.)f(.)g(.)g(.)g(.)g
15319 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
15320 h(.)34 b Fe(45)2025 897 y Fc(sym_node,)27 b(is_private)e
15321 Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15322 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)49 b Fe(45)2025 997 y
15323 Fc(sym_node,)27 b(is_userdef)e Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
15324 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)49
15325 b Fe(45)2025 1097 y Fc(sym_node,)27 b(kind)22 b Fd(.)13
15326 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15327 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)47
15328 b Fe(45)2025 1197 y Fc(sym_node,)27 b(name)22 b Fd(.)13
15329 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15330 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)47
15331 b Fe(45)2025 1297 y Fc(sym_node,)27 b(parent)16 b Fd(.)e(.)g(.)f(.)g(.)
15332 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15333 (.)g(.)g(.)h(.)f(.)g(.)g(.)42 b Fe(45)2025 1396 y Fc(sym_node,)27
15334 b(print)18 b Fd(.)d(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15335 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)45
15336 b Fe(46)2025 1496 y Fc(sym_node,)27 b(print_full)e Fd(.)13
15337 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15338 (.)h(.)f(.)g(.)g(.)g(.)49 b Fe(46)2025 1596 y Fc(sym_node,)27
15339 b(remove_from_table)f Fd(.)13 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15340 (.)g(.)h(.)f(.)g(.)48 b Fe(46)2025 1696 y Fc(sym_node,)27
15341 b(reset_userdef)15 b Fd(.)h(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15342 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)41 b Fe(45)2025 1795
15343 y Fc(sym_node,)27 b(set_name)10 b Fd(.)16 b(.)d(.)g(.)g(.)g(.)g(.)h(.)f
15344 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15345 g(.)37 b Fe(45)2025 1895 y Fc(sym_node,)27 b(set_userdef)c
15346 Fd(.)13 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15347 (.)g(.)g(.)g(.)g(.)h(.)f(.)46 b Fe(45)2025 1995 y Fc(sym_node,)27
15348 b(sym_id)16 b Fd(.)e(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15349 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)42
15350 b Fe(42)2025 2095 y(sym)p 2166 2095 V 26 w(no)r(de)p
15351 2352 2095 V 28 w(list)11 b Fd(.)j(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15352 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15353 g(.)g(.)g(.)g(.)h(.)f(.)37 b Fe(45)2025 2361 y Fl(T)2025
15354 2494 y Fe(target)17 b Fd(.)d(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15355 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15356 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)44 b Fe(85)2025
15357 2594 y(tree)p 2158 2594 V 28 w(blo)r(c)n(k)19 b Fd(.)13
15358 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
15359 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15360 g(.)46 b Fe(19)2025 2694 y Fc(tree_block,)28 b(body)16
15361 b Fd(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15362 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)42 b
15363 Fe(19)2025 2794 y Fc(tree_block,)28 b(clone)13 b Fd(.)h(.)f(.)g(.)g(.)h
15364 (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15365 g(.)g(.)g(.)g(.)h(.)39 b Fe(73)2025 2893 y Fc(tree_block,)28
15366 b(set_body)c Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15367 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)49 b Fe(19)2025
15368 2993 y Fc(tree_block,)28 b(set_symtab)17 b Fd(.)f(.)d(.)g(.)g(.)g(.)g
15369 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)44
15370 b Fe(19)2025 3093 y Fc(tree_block,)28 b(symtab)10 b Fd(.)15
15371 b(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15372 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)37 b Fe(19)2025 3193
15373 y(tree)p 2158 3193 V 28 w(for)11 b Fd(.)j(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15374 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
15375 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)37
15376 b Fe(16)2025 3292 y Fc(tree_for,)27 b(body)22 b Fd(.)13
15377 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15378 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)47
15379 b Fe(18)2025 3392 y Fc(tree_for,)27 b(brklab)16 b Fd(.)e(.)g(.)f(.)g(.)
15380 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15381 (.)g(.)g(.)h(.)f(.)g(.)g(.)42 b Fe(18)2025 3492 y Fc(tree_for,)27
15382 b(clone)18 b Fd(.)d(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15383 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)45
15384 b Fe(73)2025 3592 y Fc(tree_for,)27 b(contlab)13 b Fd(.)i(.)e(.)g(.)g
15385 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
15386 g(.)g(.)g(.)g(.)g(.)h(.)39 b Fe(18)2025 3691 y Fc(tree_for,)27
15387 b(index)18 b Fd(.)d(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15388 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)45
15389 b Fe(16)2025 3791 y Fc(tree_for,)27 b(landing_pad)c Fd(.)13
15390 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15391 (.)g(.)g(.)h(.)f(.)46 b Fe(18)2025 3891 y Fc(tree_for,)27
15392 b(lb_list)13 b Fd(.)i(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15393 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)39
15394 b Fe(17)2025 3991 y Fc(tree_for,)27 b(lb_op)18 b Fd(.)d(.)e(.)g(.)g(.)g
15395 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
15396 h(.)f(.)g(.)g(.)g(.)g(.)g(.)45 b Fe(17)2025 4090 y Fc(tree_for,)27
15397 b(set_body)10 b Fd(.)16 b(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15398 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)37
15399 b Fe(18)2025 4190 y Fc(tree_for,)27 b(set_brklab)e Fd(.)13
15400 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15401 (.)h(.)f(.)g(.)g(.)g(.)49 b Fe(18)2025 4290 y Fc(tree_for,)27
15402 b(set_contlab)c Fd(.)13 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15403 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)46 b Fe(18)2025
15404 4390 y Fc(tree_for,)27 b(set_index)8 b Fd(.)15 b(.)f(.)f(.)g(.)g(.)g(.)
15405 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15406 (.)h(.)34 b Fe(16)2025 4489 y Fc(tree_for,)27 b(set_landing_pad)10
15407 b Fd(.)17 b(.)c(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
15408 (.)f(.)g(.)36 b Fe(18)2025 4589 y Fc(tree_for,)27 b(set_lb_list)c
15409 Fd(.)13 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15410 (.)g(.)g(.)g(.)g(.)h(.)f(.)46 b Fe(17)2025 4689 y Fc(tree_for,)27
15411 b(set_lb_op)8 b Fd(.)15 b(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15412 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)34
15413 b Fe(17)2025 4789 y Fc(tree_for,)27 b(set_step_list)15
15414 b Fd(.)h(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
15415 g(.)g(.)h(.)f(.)41 b Fe(17)2025 4889 y Fc(tree_for,)27
15416 b(set_step_op)c Fd(.)13 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15417 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)46 b Fe(17)2025
15418 4988 y Fc(tree_for,)27 b(set_test)10 b Fd(.)16 b(.)d(.)g(.)g(.)g(.)g(.)
15419 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15420 (.)g(.)g(.)37 b Fe(17)p eop
15421 %%Page: 100 102
15422 100 101 bop 150 -116 a Fn(100)2340 b(The)30 b(SUIF)g(V)-8
15423 b(ersion)30 b(1)h(Library)150 299 y Fc(tree_for,)d(set_ub_list)22
15424 b Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15425 (.)g(.)g(.)g(.)h(.)f(.)g(.)46 b Fe(17)150 399 y Fc(tree_for,)28
15426 b(set_ub_op)8 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15427 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)34
15428 b Fe(17)150 498 y Fc(tree_for,)28 b(step_list)8 b Fd(.)15
15429 b(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15430 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)34 b Fe(17)150 598 y Fc(tree_for,)28
15431 b(step_op)13 b Fd(.)h(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15432 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)39
15433 b Fe(17)150 698 y Fc(tree_for,)28 b(test)21 b Fd(.)13
15434 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
15435 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)47
15436 b Fe(17)150 798 y Fc(tree_for,)28 b(ub_list)13 b Fd(.)h(.)f(.)h(.)f(.)g
15437 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
15438 g(.)g(.)g(.)h(.)f(.)39 b Fe(17)150 898 y Fc(tree_for,)28
15439 b(ub_op)18 b Fd(.)c(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15440 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)44
15441 b Fe(17)150 997 y(tree)p 283 997 24 4 v 28 w(for)p 402
15442 997 V 28 w(test)21 b Fd(.)13 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15443 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
15444 f(.)g(.)g(.)g(.)g(.)g(.)47 b Fe(17)150 1097 y(tree)p
15445 283 1097 V 28 w(if)17 b Fd(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
15446 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
15447 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)44 b
15448 Fe(13)150 1197 y Fc(tree_if,)27 b(clone)22 b Fd(.)13
15449 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
15450 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)47
15451 b Fe(73)150 1297 y Fc(tree_if,)27 b(else_part)10 b Fd(.)16
15452 b(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15453 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)37 b Fe(13)150 1396
15454 y Fc(tree_if,)27 b(header)18 b Fd(.)d(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15455 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
15456 g(.)h(.)f(.)44 b Fe(13)150 1496 y Fc(tree_if,)27 b(jumpto)18
15457 b Fd(.)d(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15458 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)44
15459 b Fe(13)150 1596 y Fc(tree_if,)27 b(set_else_part)17
15460 b Fd(.)g(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15461 g(.)g(.)g(.)g(.)g(.)44 b Fe(13)150 1696 y Fc(tree_if,)27
15462 b(set_header)8 b Fd(.)16 b(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15463 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)34
15464 b Fe(13)150 1796 y Fc(tree_if,)27 b(set_jumpto)8 b Fd(.)16
15465 b(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15466 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)34 b Fe(13)150 1895 y
15467 Fc(tree_if,)27 b(set_then_part)17 b Fd(.)g(.)c(.)g(.)g(.)g(.)g(.)h(.)f
15468 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)44
15469 b Fe(13)150 1995 y Fc(tree_if,)27 b(then_part)10 b Fd(.)16
15470 b(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15471 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)37 b Fe(13)150 2095
15472 y(tree)p 283 2095 V 28 w(instr)14 b Fd(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15473 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
15474 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)40 b
15475 Fe(13)150 2195 y Fc(tree_instr,)28 b(clone)13 b Fd(.)h(.)f(.)h(.)f(.)g
15476 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
15477 g(.)g(.)g(.)h(.)f(.)39 b Fe(73)150 2294 y Fc(tree_instr,)28
15478 b(instr)13 b Fd(.)h(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15479 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)39
15480 b Fe(13)150 2394 y Fc(tree_instr,)28 b(instr_map)22 b
15481 Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15482 (.)g(.)g(.)g(.)h(.)f(.)g(.)46 b Fe(13)150 2494 y Fc(tree_instr,)28
15483 b(remove_instr)12 b Fd(.)k(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
15484 (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)38 b Fe(13)150 2594 y
15485 Fc(tree_instr,)28 b(set_instr)22 b Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)
15486 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)46
15487 b Fe(13)150 2693 y(tree)p 283 2693 V 28 w(lo)r(op)20
15488 b Fd(.)13 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15489 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
15490 g(.)g(.)g(.)g(.)46 b Fe(15)150 2793 y Fc(tree_loop,)28
15491 b(body)18 b Fd(.)c(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15492 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)44
15493 b Fe(15)150 2893 y Fc(tree_loop,)28 b(brklab)13 b Fd(.)h(.)f(.)h(.)f(.)
15494 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15495 (.)g(.)g(.)g(.)h(.)f(.)39 b Fe(15)150 2993 y Fc(tree_loop,)28
15496 b(clone)16 b Fd(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15497 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)42
15498 b Fe(73)150 3093 y Fc(tree_loop,)28 b(contlab)10 b Fd(.)15
15499 b(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15500 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)37 b Fe(15)150 3192
15501 y Fc(tree_loop,)28 b(set_body)8 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)g(.)h
15502 (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15503 34 b Fe(15)150 3292 y Fc(tree_loop,)28 b(set_brklab)22
15504 b Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15505 (.)g(.)g(.)g(.)h(.)f(.)g(.)46 b Fe(15)150 3392 y Fc(tree_loop,)28
15506 b(set_contlab)17 b Fd(.)f(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15507 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b Fe(15)150
15508 3492 y Fc(tree_loop,)28 b(set_test)8 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)
15509 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15510 (.)g(.)34 b Fe(15)150 3591 y Fc(tree_loop,)28 b(set_toplab)22
15511 b Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15512 (.)g(.)g(.)g(.)h(.)f(.)g(.)46 b Fe(15)150 3691 y Fc(tree_loop,)28
15513 b(test)18 b Fd(.)c(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15514 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)44
15515 b Fe(15)150 3791 y Fc(tree_loop,)28 b(toplab)13 b Fd(.)h(.)f(.)h(.)f(.)
15516 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15517 (.)g(.)g(.)g(.)h(.)f(.)39 b Fe(15)150 3891 y(tree)p 283
15518 3891 V 28 w(no)r(de)11 b Fd(.)i(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15519 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
15520 f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)37 b Fe(11)150 3991
15521 y Fc(tree_node,)28 b(clear_numbers)12 b Fd(.)k(.)d(.)g(.)h(.)f(.)g(.)g
15522 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)38
15523 b Fe(12)150 4090 y Fc(tree_node,)28 b(clone)16 b Fd(.)e(.)f(.)g(.)g(.)g
15524 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15525 h(.)f(.)g(.)g(.)g(.)g(.)42 b Fe(73)150 4190 y Fc(tree_node,)28
15526 b(clone_helper)15 b Fd(.)g(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15527 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)41 b Fe(74)150 4290
15528 y Fc(tree_node,)28 b(find_exposed_refs)23 b Fd(.)13 b(.)g(.)g(.)g(.)g
15529 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)45 b Fe(73)150
15530 4390 y Fc(tree_node,)28 b(list_e)13 b Fd(.)h(.)f(.)h(.)f(.)g(.)g(.)g(.)
15531 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15532 (.)h(.)f(.)39 b Fe(12)150 4489 y Fc(tree_node,)28 b(map)21
15533 b Fd(.)13 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15534 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)47
15535 b Fe(21)150 4589 y Fc(tree_node,)28 b(number)13 b Fd(.)h(.)f(.)h(.)f(.)
15536 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15537 (.)g(.)g(.)g(.)h(.)f(.)39 b Fe(11)150 4689 y Fc(tree_node,)28
15538 b(parent)13 b Fd(.)h(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15539 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)39
15540 b Fe(12)150 4789 y Fc(tree_node,)28 b(print)16 b Fd(.)e(.)f(.)g(.)g(.)g
15541 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15542 h(.)f(.)g(.)g(.)g(.)g(.)42 b Fe(12)150 4889 y Fc(tree_node,)28
15543 b(proc)18 b Fd(.)c(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15544 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)44
15545 b Fe(12)150 4988 y Fc(tree_node,)28 b(scope)16 b Fd(.)e(.)f(.)g(.)g(.)g
15546 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15547 h(.)f(.)g(.)g(.)g(.)g(.)42 b Fe(12)2025 299 y(tree)p
15548 2158 299 V 28 w(no)r(de)p 2346 299 V 27 w(list)14 b Fd(.)g(.)f(.)h(.)f
15549 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15550 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)41 b
15551 Fe(20)2025 399 y Fc(tree_node_list,)29 b(clear_numbers)17
15552 b Fd(.)e(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)43
15553 b Fe(12)2025 498 y Fc(tree_node_list,)29 b(clone)21 b
15554 Fd(.)13 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15555 (.)g(.)g(.)g(.)g(.)h(.)f(.)46 b Fe(73)2025 598 y Fc(tree_node_list,)29
15556 b(clone_helper)22 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15557 (.)g(.)g(.)g(.)46 b Fe(74)2025 698 y Fc(tree_node_list,)29
15558 b(cvt_to_trees)22 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15559 (.)g(.)g(.)g(.)46 b Fe(28)2025 798 y Fc(tree_node_list,)29
15560 b(find_exposed_refs)6 b Fd(.)17 b(.)c(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)33
15561 b Fe(73)2025 898 y Fc(tree_node_list,)c(flatten)15 b
15562 Fd(.)f(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15563 (.)g(.)h(.)f(.)41 b Fe(28)2025 997 y Fc(tree_node_list,)29
15564 b(is_op)21 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15565 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)46 b Fe(20)2025
15566 1097 y Fc(tree_node_list,)29 b(map)8 b Fd(.)13 b(.)h(.)f(.)g(.)g(.)g(.)
15567 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15568 (.)h(.)34 b Fe(21)2025 1197 y Fc(tree_node_list,)29 b(op)10
15569 b Fd(.)k(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
15570 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)37 b Fe(20)2025
15571 1297 y Fc(tree_node_list,)29 b(op_is_intconst)14 b Fd(.)i(.)d(.)g(.)g
15572 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)40 b Fe(20)2025 1396
15573 y Fc(tree_node_list,)29 b(parent)17 b Fd(.)e(.)e(.)g(.)g(.)g(.)g(.)g(.)
15574 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)44
15575 b Fe(20)2025 1496 y Fc(tree_node_list,)29 b(print)21
15576 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15577 (.)g(.)g(.)g(.)g(.)h(.)f(.)46 b Fe(20)2025 1596 y Fc(tree_node_list,)29
15578 b(print_expr)7 b Fd(.)15 b(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15579 (.)g(.)g(.)g(.)g(.)g(.)34 b Fe(20)2025 1696 y Fc(tree_node_list,)29
15580 b(set_elem)12 b Fd(.)j(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15581 (.)h(.)f(.)g(.)g(.)g(.)g(.)39 b Fe(20)2025 1796 y Fc(tree_node_list,)29
15582 b(set_op)17 b Fd(.)e(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
15583 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)44 b Fe(20)2025 1895
15584 y(tree)p 2158 1895 V 28 w(pro)r(c)17 b Fd(.)c(.)h(.)f(.)g(.)g(.)g(.)g
15585 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
15586 h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)44
15587 b Fe(20)2025 1995 y Fc(tree_proc,)28 b(clone)16 b Fd(.)d(.)h(.)f(.)g(.)
15588 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15589 (.)g(.)g(.)h(.)f(.)g(.)g(.)42 b Fe(73)2025 2095 y Fc(tree_proc,)28
15590 b(number_instrs)12 b Fd(.)k(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15591 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)39 b Fe(11)2025 2195 y
15592 Fc(tree_proc,)28 b(proc_syms)c Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
15593 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)49
15594 b Fe(20)2025 2294 y Fc(type_char)9 b Fd(.)15 b(.)f(.)f(.)g(.)g(.)g(.)g
15595 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
15596 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)36 b
15597 Fe(61)2025 2394 y Fc(type_double)24 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)g(.)h
15598 (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15599 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)48 b Fe(61)2025 2494
15600 y Fc(type_error)7 b Fd(.)15 b(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15601 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
15602 g(.)g(.)g(.)g(.)g(.)g(.)h(.)33 b Fe(60)2025 2594 y Fc(type_f128)9
15603 b Fd(.)15 b(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15604 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
15605 f(.)g(.)g(.)36 b Fe(60)2025 2693 y Fc(type_f32)12 b Fd(.)j(.)e(.)g(.)g
15606 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15607 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)39
15608 b Fe(60)2025 2793 y Fc(type_f64)12 b Fd(.)j(.)e(.)g(.)g(.)g(.)g(.)h(.)f
15609 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15610 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)39 b
15611 Fe(60)2025 2893 y Fc(type_float)7 b Fd(.)15 b(.)e(.)g(.)g(.)h(.)f(.)g
15612 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
15613 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)33 b Fe(61)2025
15614 2993 y Fc(type_longdouble)11 b Fd(.)17 b(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)
15615 h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15616 (.)g(.)g(.)g(.)38 b Fe(61)2025 3093 y(t)n(yp)r(e)p 2178
15617 3093 V 27 w(no)r(de)18 b Fd(.)13 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
15618 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
15619 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)45 b Fe(53)2025 3192
15620 y Fc(type_node,)28 b(clear_type_id)12 b Fd(.)k(.)d(.)g(.)g(.)g(.)h(.)f
15621 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)39
15622 b Fe(43)2025 3292 y Fc(type_node,)28 b(compatible)22
15623 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15624 (.)g(.)g(.)g(.)g(.)h(.)f(.)46 b Fe(55)2025 3392 y Fc(type_node,)28
15625 b(copy)18 b Fd(.)c(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15626 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)45
15627 b Fe(54)2025 3492 y Fc(type_node,)28 b(find_modifier)12
15628 b Fd(.)k(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15629 g(.)g(.)g(.)39 b Fe(60)2025 3591 y Fc(type_node,)28 b(is_call_by_ref)10
15630 b Fd(.)16 b(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
15631 (.)f(.)g(.)36 b Fe(60)2025 3691 y Fc(type_node,)28 b(is_const)8
15632 b Fd(.)14 b(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15633 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)34 b Fe(60)2025
15634 3791 y Fc(type_node,)28 b(is_named)8 b Fd(.)14 b(.)g(.)f(.)g(.)g(.)g(.)
15635 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15636 (.)h(.)34 b Fe(54)2025 3891 y Fc(type_node,)28 b(is_same)10
15637 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15638 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)37 b Fe(54)2025
15639 3991 y Fc(type_node,)28 b(is_scalar)c Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g
15640 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)49
15641 b Fe(53)2025 4090 y Fc(type_node,)28 b(is_volatile)17
15642 b Fd(.)f(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
15643 f(.)g(.)g(.)g(.)g(.)44 b Fe(60)2025 4190 y Fc(type_node,)28
15644 b(op)6 b Fd(.)13 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15645 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
15646 g(.)33 b Fe(53)2025 4290 y Fc(type_node,)28 b(parent)13
15647 b Fd(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
15648 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)39 b Fe(54)2025
15649 4390 y Fc(type_node,)28 b(print)16 b Fd(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15650 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
15651 f(.)g(.)g(.)42 b Fe(55)2025 4489 y Fc(type_node,)28 b(print_abbrev)15
15652 b Fd(.)g(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
15653 g(.)g(.)h(.)f(.)41 b Fe(55)2025 4589 y Fc(type_node,)28
15654 b(print_full)22 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15655 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)46 b Fe(55)2025
15656 4689 y Fc(type_node,)28 b(size)18 b Fd(.)c(.)f(.)g(.)g(.)g(.)g(.)h(.)f
15657 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15658 g(.)g(.)g(.)g(.)45 b Fe(54)2025 4789 y Fc(type_node,)28
15659 b(type_id)10 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
15660 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)37
15661 b Fe(42)2025 4889 y Fc(type_node,)28 b(unqual)13 b Fd(.)h(.)f(.)g(.)g
15662 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
15663 g(.)g(.)g(.)g(.)g(.)h(.)39 b Fe(60)2025 4988 y(t)n(yp)r(e)p
15664 2178 4988 V 27 w(no)r(de)p 2365 4988 V 27 w(list)23 b
15665 Fd(.)13 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15666 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)48
15667 b Fe(53)p eop
15668 %%Page: 101 103
15669 101 102 bop 150 -116 a Fn(F)-8 b(unction,)30 b(V)-8 b(ariable,)30
15670 b(and)g(T)m(yp)s(e)g(Index)2040 b(101)150 299 y Fe(t)n(yp)r(e)p
15671 303 299 24 4 v 27 w(ops)9 b Fd(.)k(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15672 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
15673 f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)35 b Fe(53)150
15674 399 y Fc(type_ptr)12 b Fd(.)j(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15675 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
15676 f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)38 b Fe(61)150 498
15677 y Fc(type_s16)12 b Fd(.)j(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15678 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
15679 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)38 b Fe(60)150 598 y
15680 Fc(type_s32)12 b Fd(.)j(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
15681 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15682 g(.)g(.)g(.)g(.)g(.)h(.)f(.)38 b Fe(60)150 697 y Fc(type_s64)12
15683 b Fd(.)j(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15684 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15685 (.)g(.)h(.)f(.)38 b Fe(60)150 797 y Fc(type_s8)15 b Fd(.)f(.)f(.)h(.)f
15686 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15687 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)41
15688 b Fe(60)150 897 y Fc(type_signed)24 b Fd(.)13 b(.)g(.)g(.)g(.)h(.)f(.)g
15689 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
15690 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)48 b Fe(61)150 996
15691 y Fc(type_signed_char)9 b Fd(.)16 b(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15692 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15693 g(.)35 b Fe(61)150 1096 y Fc(type_signed_long)9 b Fd(.)16
15694 b(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15695 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)35 b Fe(61)150
15696 1196 y Fc(type_signed_longlong)16 b Fd(.)h(.)c(.)h(.)f(.)g(.)g(.)g(.)g
15697 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)42
15698 b Fe(61)150 1295 y Fc(type_signed_short)6 b Fd(.)17 b(.)c(.)g(.)h(.)f
15699 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15700 g(.)g(.)g(.)g(.)h(.)32 b Fe(61)150 1395 y Fc(type_u16)12
15701 b Fd(.)j(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15702 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15703 (.)g(.)h(.)f(.)38 b Fe(60)150 1494 y Fc(type_u32)12 b
15704 Fd(.)j(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15705 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15706 g(.)h(.)f(.)38 b Fe(60)150 1594 y Fc(type_u64)12 b Fd(.)j(.)e(.)g(.)g
15707 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
15708 f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)38
15709 b Fe(60)150 1694 y Fc(type_u8)15 b Fd(.)f(.)f(.)h(.)f(.)g(.)g(.)g(.)g
15710 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
15711 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)41
15712 b Fe(60)150 1793 y Fc(type_unsigned)16 b Fd(.)g(.)e(.)f(.)g(.)g(.)g(.)g
15713 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
15714 h(.)f(.)g(.)g(.)g(.)g(.)g(.)43 b Fe(61)150 1893 y Fc
15715 (type_unsigned_char)25 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15716 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)47
15717 b Fe(61)150 1993 y Fc(type_unsigned_long)25 b Fd(.)13
15718 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15719 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)47 b Fe(61)150 2092 y
15720 Fc(type_unsigned_longlong)10 b Fd(.)19 b(.)13 b(.)g(.)g(.)g(.)g(.)g(.)h
15721 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)37
15722 b Fe(61)150 2192 y Fc(type_unsigned_short)18 b Fd(.)g(.)13
15723 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15724 (.)g(.)g(.)g(.)g(.)h(.)44 b Fe(61)150 2291 y Fc(type_v0)15
15725 b Fd(.)f(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
15726 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
15727 (.)f(.)g(.)g(.)g(.)41 b Fe(60)150 2391 y Fc(type_void)9
15728 b Fd(.)16 b(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
15729 (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15730 g(.)g(.)g(.)36 b Fe(60)150 2657 y Fl(U)150 2790 y Fc(undo_ref_params)11
15731 b Fd(.)17 b(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15732 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)38
15733 b Fe(77)150 2889 y(unkno)n(wn)p 459 2889 V 27 w(b)r(ound)18
15734 b Fd(.)11 b(.)j(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15735 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)44
15736 b Fe(56)150 3155 y Fl(V)150 3288 y Fe(v)l(ar)p 260 3288
15737 V 27 w(def)19 b Fd(.)13 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15738 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15739 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)45 b Fe(51)150
15740 3387 y Fc(var_def,)27 b(alignment)10 b Fd(.)16 b(.)d(.)g(.)g(.)h(.)f(.)
15741 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15742 (.)g(.)g(.)37 b Fe(51)150 3487 y Fc(var_def,)27 b(print)22
15743 b Fd(.)13 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15744 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)47
15745 b Fe(51)150 3587 y Fc(var_def,)27 b(set_alignment)17
15746 b Fd(.)g(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15747 g(.)g(.)g(.)g(.)g(.)44 b Fe(51)150 3686 y Fc(var_def,)27
15748 b(set_variable)c Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
15749 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)46 b Fe(51)150
15750 3786 y Fc(var_def,)27 b(variable)13 b Fd(.)i(.)e(.)h(.)f(.)g(.)g(.)g(.)
15751 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15752 (.)h(.)f(.)39 b Fe(51)150 3885 y(v)l(ar)p 260 3885 V
15753 27 w(sym)18 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15754 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15755 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)45 b Fe(47)150 3985 y
15756 Fc(var_sym,)27 b(add_child)10 b Fd(.)16 b(.)d(.)g(.)g(.)h(.)f(.)g(.)g
15757 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
15758 g(.)37 b Fe(50)150 4085 y Fc(var_sym,)27 b(build_child)e
15759 Fd(.)13 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15760 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)49 b Fe(50)150 4184 y
15761 Fc(var_sym,)27 b(child_var)10 b Fd(.)16 b(.)d(.)g(.)g(.)h(.)f(.)g(.)g
15762 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
15763 g(.)37 b Fe(50)2025 299 y Fc(var_sym,)27 b(definition)8
15764 b Fd(.)15 b(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15765 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)34 b Fe(48)2025
15766 401 y Fc(var_sym,)27 b(find_child)8 b Fd(.)15 b(.)f(.)f(.)g(.)g(.)g(.)g
15767 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
15768 h(.)34 b Fe(50)2025 502 y Fc(var_sym,)27 b(has_var_def)e
15769 Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15770 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)49 b Fe(48)2025 604 y
15771 Fc(var_sym,)27 b(is_addr_taken)17 b Fd(.)g(.)c(.)g(.)g(.)g(.)g(.)g(.)g
15772 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)44
15773 b Fe(48)2025 706 y Fc(var_sym,)27 b(is_auto)16 b Fd(.)e(.)g(.)f(.)g(.)g
15774 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
15775 g(.)g(.)h(.)f(.)g(.)g(.)42 b Fe(48)2025 808 y Fc(var_sym,)27
15776 b(is_param)13 b Fd(.)i(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15777 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)39
15778 b Fe(48)2025 910 y Fc(var_sym,)27 b(is_reg)18 b Fd(.)d(.)e(.)g(.)g(.)g
15779 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
15780 h(.)f(.)g(.)g(.)g(.)g(.)g(.)45 b Fe(48)2025 1011 y Fc(var_sym,)27
15781 b(is_scalar)10 b Fd(.)16 b(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15782 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)37
15783 b Fe(49)2025 1113 y Fc(var_sym,)27 b(is_spilled)8 b Fd(.)15
15784 b(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15785 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)34 b Fe(49)2025 1215 y
15786 Fc(var_sym,)27 b(is_static)10 b Fd(.)16 b(.)d(.)g(.)g(.)g(.)g(.)h(.)f
15787 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15788 g(.)37 b Fe(48)2025 1317 y Fc(var_sym,)27 b(num_children)c
15789 Fd(.)13 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15790 (.)g(.)g(.)g(.)g(.)h(.)f(.)46 b Fe(50)2025 1418 y Fc(var_sym,)27
15791 b(offset)18 b Fd(.)d(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15792 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)45
15793 b Fe(50)2025 1520 y Fc(var_sym,)27 b(overlaps)13 b Fd(.)i(.)e(.)g(.)g
15794 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
15795 g(.)g(.)g(.)g(.)g(.)h(.)39 b Fe(50)2025 1622 y Fc(var_sym,)27
15796 b(parent_var)8 b Fd(.)15 b(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15797 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)34
15798 b Fe(50)2025 1724 y Fc(var_sym,)27 b(remove_child)c Fd(.)13
15799 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15800 (.)g(.)g(.)h(.)f(.)46 b Fe(50)2025 1825 y Fc(var_sym,)27
15801 b(reset_addr_taken)10 b Fd(.)17 b(.)c(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15802 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)36 b Fe(48)2025 1927
15803 y Fc(var_sym,)27 b(reset_param)e Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15804 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)49
15805 b Fe(48)2025 2029 y Fc(var_sym,)27 b(reset_reg)10 b Fd(.)16
15806 b(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15807 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)37 b Fe(48)2025 2131
15808 y Fc(var_sym,)27 b(root_ancestor)17 b Fd(.)g(.)c(.)g(.)g(.)g(.)g(.)g(.)
15809 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)44
15810 b Fe(50)2025 2233 y Fc(var_sym,)27 b(root_offset)e Fd(.)13
15811 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15812 (.)h(.)f(.)g(.)g(.)g(.)49 b Fe(50)2025 2334 y Fc(var_sym,)27
15813 b(set_addr_taken)15 b Fd(.)h(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
15814 f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)41 b Fe(48)2025 2436
15815 y Fc(var_sym,)27 b(set_param)10 b Fd(.)16 b(.)d(.)g(.)g(.)g(.)g(.)h(.)f
15816 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15817 g(.)37 b Fe(48)2025 2538 y Fc(var_sym,)27 b(set_reg)16
15818 b Fd(.)e(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15819 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)42 b
15820 Fe(48)2025 2640 y Fc(var_sym,)27 b(set_type)13 b Fd(.)i(.)e(.)g(.)g(.)h
15821 (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15822 g(.)g(.)g(.)g(.)h(.)39 b Fe(48)2025 2741 y Fc(var_sym,)27
15823 b(type)6 b Fd(.)14 b(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15824 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15825 (.)g(.)33 b Fe(48)2025 2843 y Fc(verror_line)24 b Fd(.)13
15826 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15827 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)48
15828 b Fe(88)2025 2945 y Fc(vwarning_line)16 b Fd(.)g(.)d(.)g(.)h(.)f(.)g(.)
15829 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15830 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)43 b Fe(88)2025 3224 y
15831 Fl(W)2025 3361 y Fc(warning_line)21 b Fd(.)14 b(.)f(.)g(.)g(.)g(.)g(.)g
15832 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
15833 f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)45 b Fe(88)2025 3463
15834 y Fc(which_format)21 b Fd(.)14 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
15835 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15836 (.)g(.)g(.)g(.)h(.)45 b Fe(23)2025 3742 y Fl(X)2025 3879
15837 y Fe(x)p 2071 3879 V 27 w(arra)n(y)13 b Fd(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15838 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
15839 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)40
15840 b Fe(81)2025 3981 y Fc(x_array,)27 b(extend)18 b Fd(.)d(.)e(.)g(.)g(.)g
15841 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
15842 h(.)f(.)g(.)g(.)g(.)g(.)g(.)45 b Fe(81)2025 4083 y Fc(x_array,)27
15843 b(operator[])8 b Fd(.)15 b(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15844 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)34
15845 b Fe(81)2025 4184 y Fc(x_array,)27 b(ub)11 b Fd(.)j(.)f(.)g(.)g(.)g(.)h
15846 (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15847 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)38 b Fe(81)p
15849 %%Page: 102 104
15850 102 103 bop 150 -116 a Fn(102)2340 b(The)30 b(SUIF)g(V)-8
15851 b(ersion)30 b(1)h(Library)p eop
15852 %%Page: 103 105
15853 103 104 bop 150 -116 a Fn(Concept)31 b(Index)2882 b(103)150
15854 299 y Fj(Concept)52 b(Index)150 651 y Fl(A)150 790 y
15855 Fe(abstract)26 b(syn)n(tax)f(trees)d Fd(.)14 b(.)f(.)g(.)g(.)g(.)g(.)g
15856 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
15857 f(.)48 b Fe(11)150 892 y(addresses,)27 b(sym)n(b)r(olic)13
15858 b Fd(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15859 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)40 b Fe(84)150
15860 995 y(annotation)26 b(lists)11 b Fd(.)j(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15861 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15862 h(.)f(.)g(.)g(.)g(.)37 b Fe(71)150 1097 y(annotation)26
15863 b(manager)20 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15864 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)46
15865 b Fe(68)150 1200 y(annotations)7 b Fd(.)14 b(.)f(.)g(.)g(.)g(.)g(.)g(.)
15866 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15867 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)33 b Fe(63)150
15868 1302 y(annotations,)27 b(call-b)n(y-reference)18 b Fd(.)c(.)f(.)g(.)g
15869 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)44
15870 b Fe(66)150 1405 y(annotations,)27 b(common)d(blo)r(c)n(k)14
15871 b Fd(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
15872 g(.)h(.)f(.)40 b Fe(67)150 1508 y(annotations,)27 b(\015at)13
15873 b Fd(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15874 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)39
15875 b Fe(64)150 1610 y(annotations,)27 b(initial)g(data)19
15876 b Fd(.)14 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
15877 (.)f(.)g(.)g(.)g(.)g(.)g(.)46 b Fe(65)150 1713 y(annotations,)27
15878 b(prede\014ned)15 b Fd(.)d(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15879 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)41 b Fe(65)150
15880 1815 y(annotations,)27 b(structured)15 b Fd(.)d(.)h(.)g(.)g(.)h(.)f(.)g
15881 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)41
15882 b Fe(64)150 1918 y(annotations,)27 b(unregistered)17
15883 b Fd(.)c(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
15884 g(.)g(.)h(.)f(.)g(.)43 b Fe(65)150 2020 y(annotes)7 b
15885 Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15886 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15887 g(.)h(.)f(.)g(.)g(.)g(.)33 b Fe(63)150 2123 y(argumen)n(ts,)25
15888 b(command-line)10 b Fd(.)h(.)j(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15889 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)36 b Fe(87)150
15890 2226 y(arra)n(y)26 b(instructions)8 b Fd(.)14 b(.)f(.)g(.)g(.)g(.)g(.)h
15891 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15892 g(.)g(.)g(.)g(.)g(.)35 b Fe(34)150 2328 y(arra)n(y)26
15893 b(t)n(yp)r(es)14 b Fd(.)e(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15894 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
15895 g(.)g(.)g(.)h(.)f(.)g(.)40 b Fe(56)150 2431 y(assertions)6
15896 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15897 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
15898 g(.)g(.)h(.)f(.)32 b Fe(88)150 2533 y(asso)r(ciation)c(lists)9
15899 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
15900 (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)35
15901 b Fe(80)150 2636 y(AST)25 b(no)r(des)17 b Fd(.)d(.)f(.)g(.)g(.)h(.)f(.)
15902 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15903 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b Fe(11)150
15904 2738 y(ASTs)8 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15905 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
15906 h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)34 b
15907 Fe(11)150 3022 y Fl(B)150 3161 y Fe(base)26 b(t)n(yp)r(es)12
15908 b Fd(.)g(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15909 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15910 (.)g(.)g(.)38 b Fe(55)150 3264 y(bit)25 b(sets)13 b Fd(.)h(.)f(.)g(.)g
15911 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
15912 f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15913 (.)39 b Fe(81)150 3366 y(bit)25 b(v)n(ectors)9 b Fd(.)k(.)h(.)f(.)g(.)g
15914 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
15915 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)35
15916 b Fe(81)150 3469 y(blo)r(c)n(k)26 b(no)r(des)7 b Fd(.)13
15917 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15918 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
15919 33 b Fe(19)150 3571 y(blo)r(c)n(k)26 b(sym)n(b)r(ol)e(tables)9
15920 b Fd(.)14 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15921 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)35 b Fe(39)150
15922 3674 y(branc)n(h)25 b(and)g(jump)g(instructions)13 b
15923 Fd(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15924 (.)39 b Fe(32)150 3958 y Fl(C)150 4097 y Fe(call)27 b(instructions)22
15925 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15926 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)48
15927 b Fe(33)150 4199 y(call-b)n(y-reference)26 b(annotations)12
15928 b Fd(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
15929 g(.)g(.)38 b Fe(66)150 4302 y(call-b)n(y-reference)26
15930 b(parameters)c Fd(.)13 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15931 g(.)g(.)g(.)g(.)g(.)h(.)48 b Fe(77)150 4404 y(cloning)15
15932 b Fd(.)f(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15933 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15934 (.)g(.)g(.)g(.)g(.)g(.)42 b Fe(73)150 4507 y(command-line)24
15935 b(argumen)n(ts)c Fd(.)13 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15936 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)47 b Fe(87)150
15937 4610 y(common)24 b(blo)r(c)n(k)i(annotations)8 b Fd(.)14
15938 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15939 (.)g(.)g(.)34 b Fe(67)150 4893 y Fl(D)150 5032 y Fe(data)26
15940 b(structures,)g(generic)12 b Fd(.)i(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
15941 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)39
15942 b Fe(79)150 5135 y(destination)26 b(op)r(erands)7 b Fd(.)14
15943 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15944 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)34 b Fe(25)150 5237
15945 y(doubly-link)n(ed)24 b(lists)16 b Fd(.)e(.)f(.)g(.)h(.)f(.)g(.)g(.)g
15946 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
15947 g(.)h(.)f(.)42 b Fe(80)150 5340 y(duplication)15 b Fd(.)f(.)f(.)g(.)g
15948 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
15949 f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)42
15950 b Fe(73)2025 651 y Fl(E)2025 786 y Fe(en)n(umerated)24
15951 b(t)n(yp)r(es)9 b Fd(.)j(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
15952 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)35
15953 b Fe(59)2025 886 y(errors)22 b Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
15954 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
15955 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)48
15956 b Fe(88)2025 987 y(exception)25 b(handling)e Fd(.)13
15957 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
15958 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)49 b Fe(67)2025
15959 1088 y(expression)26 b(trees)7 b Fd(.)14 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g
15960 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
15961 g(.)g(.)g(.)g(.)g(.)g(.)34 b Fe(28)2025 1189 y(extensible)26
15962 b(arra)n(ys)7 b Fd(.)13 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
15963 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
15964 g(.)34 b Fe(81)2025 1462 y Fl(F)2025 1597 y Fe(\014elds)25
15965 b(annotations)11 b Fd(.)j(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
15966 (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15967 37 b Fe(67)2025 1697 y(\014le)26 b(set)11 b Fd(.)i(.)g(.)g(.)g(.)g(.)g
15968 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
15969 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
15970 (.)38 b Fe(7)2025 1798 y(\014le)26 b(set)f(en)n(tries)7
15971 b Fd(.)14 b(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15972 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
15973 h(.)34 b Fe(8)2025 1899 y(\014le)26 b(sym)n(b)r(ol)e(tables)14
15974 b Fd(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15975 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)40
15976 b Fe(38)2025 2000 y(\015at)25 b(annotations)7 b Fd(.)14
15977 b(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15978 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)33
15979 b Fe(64)2025 2101 y(for)26 b(no)r(des)15 b Fd(.)f(.)f(.)g(.)g(.)g(.)g
15980 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
15981 f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)42
15982 b Fe(16)2025 2201 y(formal)26 b(parameters)16 b Fd(.)d(.)g(.)g(.)g(.)h
15983 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
15984 g(.)g(.)g(.)g(.)g(.)h(.)42 b Fe(38)2025 2302 y(F)-6 b(ortran)25
15985 b(form)20 b Fd(.)13 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
15986 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
15987 g(.)g(.)h(.)46 b Fe(77)2025 2403 y(function)26 b(t)n(yp)r(es)15
15988 b Fd(.)d(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
15989 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)42
15990 b Fe(57)2025 2676 y Fl(G)2025 2811 y Fe(generic)26 b(data)g(structures)
15991 6 b Fd(.)13 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
15992 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)33 b Fe(79)2025
15993 2912 y(generic)26 b(instructions)13 b Fd(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
15994 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15995 (.)g(.)g(.)39 b Fe(35)2025 3012 y(generic)26 b(lists)6
15996 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
15997 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
15998 g(.)g(.)33 b Fe(79)2025 3113 y(global)27 b(sym)n(b)r(ol)e(table)12
15999 b Fd(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
16000 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)38 b Fe(37)2025
16001 3386 y Fl(H)2025 3521 y Fe(hash)25 b(tables)15 b Fd(.)f(.)f(.)g(.)h(.)f
16002 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
16003 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)41
16004 b Fe(81)2025 3622 y(high-SUIF)14 b Fd(.)d(.)j(.)f(.)g(.)g(.)g(.)g(.)g
16005 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
16006 f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)41 b
16007 Fe(2)2025 3895 y Fl(I)2025 4030 y Fe(ID)25 b(n)n(um)n(b)r(ers)20
16008 b Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
16009 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
16010 h(.)48 b Fe(11)2025 4131 y(ID)25 b(n)n(um)n(b)r(ers,)f(instruction)e
16011 Fd(.)13 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
16012 (.)g(.)g(.)g(.)h(.)f(.)g(.)48 b Fe(11)2025 4231 y(ID)25
16013 b(n)n(um)n(b)r(ers,)f(sym)n(b)r(ol)16 b Fd(.)d(.)g(.)g(.)g(.)g(.)g(.)h
16014 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
16015 g(.)g(.)43 b Fe(42)2025 4332 y(ID)25 b(n)n(um)n(b)r(ers,)f(tree)i(no)r
16016 (de)12 b Fd(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
16017 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)39 b Fe(11)2025
16018 4433 y(ID)25 b(n)n(um)n(b)r(ers,)f(t)n(yp)r(e)10 b Fd(.)j(.)g(.)g(.)g
16019 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
16020 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)37 b Fe(42)2025 4534
16021 y(if)26 b(no)r(des)c Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
16022 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
16023 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)48 b Fe(13)2025
16024 4635 y(immediate)24 b(v)l(alues)16 b Fd(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)h
16025 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
16026 g(.)g(.)g(.)g(.)43 b Fe(83)2025 4735 y(initial)27 b(data)f(annotations)
16027 13 b Fd(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
16028 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b Fe(65)2025 4836 y(initialization)9
16029 b Fd(.)15 b(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
16030 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
16031 h(.)35 b Fe(85)2025 4937 y(instruction)26 b(formats)18
16032 b Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
16033 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)44 b Fe(23)2025
16034 5038 y(instruction)26 b(ID)f(n)n(um)n(b)r(ers)15 b Fd(.)c(.)i(.)h(.)f
16035 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
16036 g(.)g(.)42 b Fe(11)2025 5138 y(instruction)26 b(no)r(des)16
16037 b Fd(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
16038 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)42
16039 b Fe(13)2025 5239 y(instructions)6 b Fd(.)14 b(.)f(.)g(.)g(.)g(.)g(.)h
16040 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
16041 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)33 b Fe(23)2025
16042 5340 y(instructions,)26 b(arra)n(y)15 b Fd(.)e(.)g(.)h(.)f(.)g(.)g(.)g
16043 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
16044 g(.)h(.)f(.)g(.)41 b Fe(34)p eop
16045 %%Page: 104 106
16046 104 105 bop 150 -116 a Fn(104)2340 b(The)30 b(SUIF)g(V)-8
16047 b(ersion)30 b(1)h(Library)150 299 y Fe(instructions,)26
16048 b(basic)h(features)11 b Fd(.)j(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
16049 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)37 b Fe(23)150
16050 408 y(instructions,)26 b(branc)n(h)f(and)h(jump)18 b
16051 Fd(.)13 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
16052 (.)45 b Fe(32)150 517 y(instructions,)26 b(call)11 b
16053 Fd(.)j(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
16054 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)37
16055 b Fe(33)150 626 y(instructions,)26 b(generic)20 b Fd(.)13
16056 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
16057 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)45 b Fe(35)150 734
16058 y(instructions,)26 b(lab)r(el)e Fd(.)13 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g
16059 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
16060 g(.)g(.)g(.)49 b Fe(35)150 843 y(instructions,)26 b(load)h(constan)n(t)
16061 14 b Fd(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
16062 (.)g(.)g(.)g(.)g(.)40 b Fe(33)150 952 y(instructions,)26
16063 b(m)n(ulti-w)n(a)n(y)f(branc)n(h)14 b Fd(.)e(.)h(.)g(.)g(.)h(.)f(.)g(.)
16064 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)40 b Fe(35)150 1061
16065 y(instructions,)26 b(prin)n(ting)20 b Fd(.)13 b(.)h(.)f(.)g(.)g(.)g(.)g
16066 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
16067 f(.)46 b Fe(27)150 1170 y(instructions,)26 b(three)g(op)r(erand)c
16068 Fd(.)13 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
16069 (.)g(.)h(.)f(.)48 b Fe(29)150 1279 y(in)n(tro)r(duction)15
16070 b Fd(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
16071 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
16072 (.)g(.)42 b Fe(1)150 1388 y(iterators,)27 b(bit)f(set)17
16073 b Fd(.)c(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
16074 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)43
16075 b Fe(81)150 1497 y(iterators,)27 b(list)22 b Fd(.)13
16076 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
16077 (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)47
16078 b Fe(79)150 1605 y(iterators,)27 b(pro)r(cedure)9 b Fd(.)14
16079 b(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
16080 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)36 b Fe(88)150
16081 1927 y Fl(L)150 2080 y Fe(lab)r(el)27 b(instructions)16
16082 b Fd(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
16083 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)42
16084 b Fe(35)150 2189 y(lab)r(el)27 b(sym)n(b)r(ols)11 b Fd(.)h(.)h(.)g(.)g
16085 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
16086 f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)37 b
16087 Fe(47)150 2298 y(landing)26 b(pads)7 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)g(.)
16088 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
16089 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)33 b Fe(18)150
16090 2406 y(lexicon)19 b Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
16091 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
16092 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)45 b Fe(84)150
16093 2515 y(line)26 b(n)n(um)n(b)r(ers)21 b Fd(.)13 b(.)g(.)g(.)g(.)h(.)f(.)
16094 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
16095 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)49 b Fe(67)150
16096 2624 y(link)n(ed)25 b(lists)6 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)h(.)f
16097 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
16098 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)33 b Fe(79)150
16099 2733 y(lists,)27 b(asso)r(ciation)16 b Fd(.)f(.)e(.)h(.)f(.)g(.)g(.)g
16100 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
16101 h(.)f(.)g(.)g(.)g(.)g(.)42 b Fe(80)150 2842 y(lists,)27
16102 b(doubly-link)n(ed)21 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
16103 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
16104 49 b Fe(80)150 2951 y(lists,)27 b(generic)13 b Fd(.)h(.)f(.)g(.)g(.)g
16105 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
16106 h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)39 b
16107 Fe(79)150 3060 y(lists,)27 b(mo)n(v)n(e-to-fron)n(t)21
16108 b Fd(.)13 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
16109 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)49 b Fe(80)150
16110 3169 y(load)26 b(constan)n(t)g(instructions)7 b Fd(.)14
16111 b(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
16112 (.)g(.)g(.)h(.)33 b Fe(33)150 3277 y(lo)r(op)27 b(no)r(des)7
16113 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
16114 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
16115 g(.)g(.)g(.)33 b Fe(15)150 3386 y(lo)n(w-SUIF)13 b Fd(.)g(.)g(.)g(.)g
16116 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
16117 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)40
16118 b Fe(2)150 3708 y Fl(M)150 3861 y Fe(mac)n(hine)25 b(registers)16
16119 b Fd(.)e(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
16120 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)42
16121 b Fe(48)150 3970 y(manager,)26 b(annotations)11 b Fd(.)j(.)f(.)g(.)g(.)
16122 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
16123 (.)f(.)g(.)g(.)37 b Fe(68)150 4078 y(mapping)25 b(instructions)19
16124 b Fd(.)13 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
16125 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)45 b Fe(13)150
16126 4187 y(mapping)25 b(subtrees)11 b Fd(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16127 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
16128 (.)g(.)g(.)g(.)37 b Fe(21)150 4296 y(mo)r(di\014er)25
16129 b(t)n(yp)r(es)15 b Fd(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
16130 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
16131 g(.)h(.)f(.)41 b Fe(59)150 4405 y(mo)n(v)n(e-to-fron)n(t)24
16132 b(lists)16 b Fd(.)e(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
16133 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)42
16134 b Fe(80)150 4514 y(m)n(ulti-w)n(a)n(y)24 b(branc)n(h)h(instructions)7
16135 b Fd(.)14 b(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
16136 (.)g(.)34 b Fe(35)150 4835 y Fl(N)150 4988 y Fe(nested)25
16137 b(scop)r(es)11 b Fd(.)k(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
16138 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
16139 g(.)g(.)g(.)38 b Fe(19)2025 299 y Fl(O)2025 434 y Fe(ob)t(jects,)27
16140 b(SUIF)6 b Fd(.)12 b(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
16141 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
16142 (.)g(.)g(.)33 b Fe(70)2025 535 y(op)r(co)r(des)20 b Fd(.)13
16143 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
16144 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
16145 g(.)g(.)g(.)46 b Fe(23)2025 636 y(op)r(erands)18 b Fd(.)c(.)f(.)g(.)g
16146 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
16147 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)45
16148 b Fe(27)2025 737 y(op)r(erands,)26 b(destination)14 b
16149 Fd(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
16150 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)40 b Fe(25)2025 838
16151 y(op)r(erands,)26 b(source)9 b Fd(.)14 b(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)
16152 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
16153 (.)f(.)g(.)g(.)g(.)36 b Fe(26)2025 938 y(options,)26
16154 b(standard)13 b Fd(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
16155 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)39
16156 b Fe(85)2025 1039 y(o)n(v)n(erview)9 b Fd(.)k(.)g(.)g(.)g(.)h(.)f(.)g
16157 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
16158 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)36
16159 b Fe(1)2025 1313 y Fl(P)2025 1448 y Fe(parameters,)26
16160 b(formal)d Fd(.)13 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
16161 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)49
16162 b Fe(38)2025 1549 y(p)r(oin)n(ter)25 b(t)n(yp)r(es)16
16163 b Fd(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
16164 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)43
16165 b Fe(56)2025 1650 y(prede\014ned)24 b(annotations)9 b
16166 Fd(.)14 b(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
16167 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)35 b Fe(65)2025 1750
16168 y(prede\014ned)24 b(t)n(yp)r(es)14 b Fd(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
16169 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
16170 g(.)g(.)g(.)g(.)h(.)40 b Fe(60)2025 1851 y(pro)r(cedure)25
16171 b(iterators)d Fd(.)13 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
16172 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)47
16173 b Fe(88)2025 1952 y(pro)r(cedure)25 b(no)r(des)15 b Fd(.)f(.)f(.)g(.)g
16174 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
16175 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)41 b Fe(20)2025 2053
16176 y(pro)r(cedure)25 b(sym)n(b)r(ol)g(tables)17 b Fd(.)d(.)f(.)g(.)g(.)g
16177 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
16178 43 b Fe(38)2025 2154 y(pro)r(cedure)25 b(sym)n(b)r(ols)10
16179 b Fd(.)j(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
16180 h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)37 b
16181 Fe(46)2025 2427 y Fl(R)2025 2562 y Fe(register)27 b(n)n(um)n(b)r(ers)9
16182 b Fd(.)i(.)j(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
16183 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)36
16184 b Fe(67)2025 2663 y(registers,)27 b(mac)n(hine)22 b Fd(.)13
16185 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
16186 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)49 b Fe(48)2025
16187 2937 y Fl(S)2025 3072 y Fe(sla)n(ving)26 b(sub-v)l(ariable)g(prop)r
16188 (erties)17 b Fd(.)c(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
16189 (.)g(.)g(.)43 b Fe(50)2025 3173 y(source)26 b(op)r(erands)20
16190 b Fd(.)14 b(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
16191 (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)47
16192 b Fe(26)2025 3274 y(standard)25 b(options)6 b Fd(.)14
16193 b(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
16194 (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)33
16195 b Fe(85)2025 3375 y(string)26 b(table)11 b Fd(.)i(.)g(.)h(.)f(.)g(.)g
16196 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
16197 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)37 b
16198 Fe(84)2025 3475 y(structure)25 b(t)n(yp)r(es)18 b Fd(.)13
16199 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
16200 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)44
16201 b Fe(58)2025 3576 y(structured)25 b(annotations)8 b Fd(.)14
16202 b(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
16203 (.)g(.)h(.)f(.)g(.)g(.)g(.)35 b Fe(64)2025 3677 y(structured)25
16204 b(annotations,)i(con)n(v)n(ersion)15 b Fd(.)f(.)f(.)g(.)g(.)g(.)g(.)g
16205 (.)g(.)h(.)f(.)g(.)g(.)42 b Fe(69)2025 3778 y(structured)25
16206 b(annotations,)i(deallo)r(cation)d Fd(.)13 b(.)g(.)g(.)h(.)f(.)g(.)g(.)
16207 g(.)g(.)g(.)49 b Fe(69)2025 3879 y(structured)25 b(annotations,)i(prin)
16208 n(ting)22 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
16209 (.)g(.)49 b Fe(69)2025 3980 y(sub-v)l(ariables)20 b Fd(.)13
16210 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
16211 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)47
16212 b Fe(49)2025 4081 y(SUIF)24 b(ob)t(jects)17 b Fd(.)e(.)e(.)g(.)g(.)g(.)
16213 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
16214 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)43 b Fe(70)2025
16215 4181 y(sym)n(b)r(ol)25 b(ID)g(n)n(um)n(b)r(ers)10 b Fd(.)h(.)i(.)g(.)g
16216 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
16217 g(.)g(.)g(.)g(.)g(.)g(.)37 b Fe(42)2025 4282 y(sym)n(b)r(ol)25
16218 b(table)h(c)n(hain)f(name)7 b Fd(.)12 b(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g
16219 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)33
16220 b Fe(39)2025 4383 y(sym)n(b)r(ol)25 b(table)h(name)21
16221 b Fd(.)14 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
16222 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)49 b Fe(39)2025
16223 4484 y(sym)n(b)r(ol)25 b(table,)h(global)18 b Fd(.)d(.)e(.)g(.)g(.)g(.)
16224 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
16225 (.)g(.)g(.)g(.)45 b Fe(37)2025 4585 y(sym)n(b)r(ol)25
16226 b(tables)7 b Fd(.)14 b(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
16227 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
16228 g(.)g(.)g(.)34 b Fe(37)2025 4686 y(sym)n(b)r(ol)25 b(tables,)h(adding)g
16229 (en)n(tries)21 b Fd(.)13 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
16230 (.)g(.)g(.)g(.)g(.)h(.)47 b Fe(41)2025 4787 y(sym)n(b)r(ol)25
16231 b(tables,)h(basic)h(features)12 b Fd(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)
16232 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)39 b Fe(39)2025
16233 4887 y(sym)n(b)r(ol)25 b(tables,)h(blo)r(c)n(k)15 b Fd(.)e(.)g(.)h(.)f
16234 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
16235 g(.)g(.)g(.)g(.)h(.)41 b Fe(39)2025 4988 y(sym)n(b)r(ol)25
16236 b(tables,)h(\014le)21 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
16237 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
16238 g(.)47 b Fe(38)p eop
16239 %%Page: 105 107
16240 105 106 bop 150 -116 a Fn(Concept)31 b(Index)2882 b(105)150
16241 299 y Fe(sym)n(b)r(ol)25 b(tables,)h(lo)r(okup)g(metho)r(ds)6
16242 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
16243 (.)32 b Fe(40)150 399 y(sym)n(b)r(ol)25 b(tables,)h(pro)r(cedure)6
16244 b Fd(.)14 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
16245 (.)g(.)g(.)g(.)g(.)g(.)h(.)32 b Fe(38)150 498 y(sym)n(b)r(ol)25
16246 b(tables,)h(remo)n(ving)f(en)n(tries)14 b Fd(.)g(.)g(.)f(.)g(.)g(.)g(.)
16247 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)41 b Fe(41)150 598
16248 y(sym)n(b)r(olic)25 b(addresses)7 b Fd(.)14 b(.)f(.)h(.)f(.)g(.)g(.)g
16249 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
16250 g(.)h(.)f(.)g(.)33 b Fe(84)150 697 y(sym)n(b)r(ols)18
16251 b Fd(.)13 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
16252 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
16253 g(.)g(.)g(.)g(.)h(.)44 b Fe(45)150 797 y(sym)n(b)r(ols,)25
16254 b(lab)r(el)17 b Fd(.)e(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
16255 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
16256 h(.)f(.)43 b Fe(47)150 897 y(sym)n(b)r(ols,)25 b(pro)r(cedure)17
16257 b Fd(.)c(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
16258 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)43 b Fe(46)150
16259 996 y(sym)n(b)r(ols,)25 b(v)l(ariable)17 b Fd(.)d(.)f(.)g(.)g(.)h(.)f
16260 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
16261 g(.)g(.)g(.)h(.)f(.)g(.)43 b Fe(47)150 1262 y Fl(T)150
16262 1395 y Fe(target)26 b(mac)n(hine)f(parameters)9 b Fd(.)14
16263 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
16264 (.)g(.)g(.)36 b Fe(85)150 1494 y(three)25 b(op)r(erand)h(instructions)
16265 16 b Fd(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
16266 (.)f(.)g(.)g(.)g(.)42 b Fe(29)150 1594 y(tree)26 b(blo)r(c)n(ks)d
16267 Fd(.)13 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
16268 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
16269 g(.)g(.)49 b Fe(19)150 1694 y(tree)26 b(fors)14 b Fd(.)g(.)f(.)g(.)g(.)
16270 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
16271 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)40
16272 b Fe(16)150 1793 y(tree)26 b(ifs)21 b Fd(.)13 b(.)h(.)f(.)g(.)g(.)g(.)g
16273 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
16274 h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)47
16275 b Fe(13)150 1893 y(tree)26 b(instructions)15 b Fd(.)e(.)g(.)g(.)h(.)f
16276 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
16277 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)41 b Fe(13)150 1993 y(tree)26
16278 b(lo)r(ops)e Fd(.)13 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
16279 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
16280 h(.)f(.)g(.)g(.)g(.)g(.)49 b Fe(15)150 2092 y(tree)26
16281 b(no)r(de)f(ID)g(n)n(um)n(b)r(ers)d Fd(.)13 b(.)g(.)g(.)g(.)g(.)g(.)h
16282 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
16283 49 b Fe(11)150 2192 y(tree)26 b(no)r(de)f(lists)18 b
16284 Fd(.)d(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
16285 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)44
16286 b Fe(20)150 2291 y(tree)26 b(no)r(des)14 b Fd(.)f(.)g(.)g(.)h(.)f(.)g
16287 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
16288 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)40
16289 b Fe(11)150 2391 y(tree)26 b(pro)r(cedures)14 b Fd(.)f(.)g(.)g(.)g(.)h
16290 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
16291 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)40 b Fe(20)150 2491
16292 y(trees)22 b Fd(.)13 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
16293 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
16294 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)48 b Fe(11)150
16295 2590 y(t)n(yp)r(e)25 b(ID)g(n)n(um)n(b)r(ers)19 b Fd(.)13
16296 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
16297 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)47 b Fe(42)150
16298 2690 y(t)n(yp)r(es)12 b Fd(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
16299 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
16300 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)38
16301 b Fe(53)2025 299 y(t)n(yp)r(es,)25 b(arra)n(y)c Fd(.)13
16302 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
16303 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)47
16304 b Fe(56)2025 401 y(t)n(yp)r(es,)25 b(base)18 b Fd(.)c(.)f(.)g(.)g(.)g
16305 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
16306 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)45
16307 b Fe(55)2025 504 y(t)n(yp)r(es,)25 b(en)n(umerated)15
16308 b Fd(.)d(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
16309 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)42 b
16310 Fe(59)2025 606 y(t)n(yp)r(es,)25 b(function)d Fd(.)13
16311 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
16312 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)48
16313 b Fe(57)2025 709 y(t)n(yp)r(es,)25 b(mo)r(di\014ers)6
16314 b Fd(.)13 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
16315 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)33
16316 b Fe(59)2025 811 y(t)n(yp)r(es,)25 b(p)r(oin)n(ter)e
16317 Fd(.)13 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
16318 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)49
16319 b Fe(56)2025 913 y(t)n(yp)r(es,)25 b(prede\014ned)19
16320 b Fd(.)13 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
16321 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)47
16322 b Fe(60)2025 1016 y(t)n(yp)r(es,)25 b(structure)7 b Fd(.)13
16323 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
16324 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)34
16325 b Fe(58)2025 1118 y(t)n(yp)r(es,)25 b(union)14 b Fd(.)f(.)g(.)g(.)g(.)h
16326 (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
16327 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)41 b
16328 Fe(58)2025 1401 y Fl(U)2025 1540 y Fe(union)25 b(t)n(yp)r(es)8
16329 b Fd(.)k(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
16330 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
16331 (.)g(.)34 b Fe(58)2025 1642 y(unregistered)26 b(annotations)10
16332 b Fd(.)k(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
16333 g(.)h(.)f(.)g(.)g(.)g(.)37 b Fe(65)2025 1925 y Fl(V)2025
16334 2064 y Fe(v)l(ariable)26 b(de\014nitions)c Fd(.)14 b(.)f(.)g(.)g(.)g(.)
16335 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
16336 (.)h(.)f(.)g(.)g(.)49 b Fe(51)2025 2166 y(v)l(ariable)26
16337 b(sym)n(b)r(ols)11 b Fd(.)h(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h
16338 (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
16339 g(.)37 b Fe(47)2025 2268 y(v)l(ariables,)27 b(initialization)10
16340 b Fd(.)15 b(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
16341 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)36 b Fe(65)2025 2551
16342 y Fl(W)2025 2690 y Fe(w)n(arnings)21 b Fd(.)13 b(.)h(.)f(.)g(.)g(.)g(.)
16343 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
16344 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)47
16345 b Fe(88)p eop
16346 %%Page: 106 108
16347 106 107 bop 150 -116 a Fn(106)2340 b(The)30 b(SUIF)g(V)-8
16348 b(ersion)30 b(1)h(Library)p eop
16349 %%Page: -1 109
16350 -1 108 bop 3725 -116 a Fn(i)150 299 y Fj(T)-13 b(able)54
16351 b(of)g(Con)l(ten)l(ts)150 641 y Fl(1)135 b(An)44 b(Ov)l(erview)i(of)f
16352 (SUIF)25 b Fb(.)19 b(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)
16353 h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)69 b Fl(1)449 778 y Fn(1.1)92
16354 b(The)30 b(File)f(Lev)m(el)d Fa(.)15 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
16355 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16356 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)55
16357 b Fn(1)449 888 y(1.2)92 b(The)30 b(Pro)s(cedure)f(Lev)m(el)g
16358 Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16359 (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16360 g(.)g(.)58 b Fn(2)449 997 y(1.3)92 b(The)30 b(Instruction)f(Lev)m(el)11
16361 b Fa(.)k(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
16362 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16363 (.)g(.)41 b Fn(3)449 1107 y(1.4)92 b(Sym)m(b)s(olic)28
16364 b(Information)12 b Fa(.)i(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
16365 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16366 g(.)g(.)g(.)g(.)g(.)g(.)42 b Fn(4)449 1216 y(1.5)92 b(Other)30
16367 b(Data)20 b Fa(.)c(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
16368 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16369 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)49
16370 b Fn(5)150 1459 y Fl(2)135 b(Represen)l(tation)47 b(of)e(Source)g
16371 (Files)18 b Fb(.)i(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)62
16372 b Fl(7)449 1596 y Fn(2.1)92 b(The)30 b(File)f(Set)24
16373 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16374 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16375 g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)53 b Fn(7)449
16376 1705 y(2.2)92 b(File)30 b(Set)g(En)m(tries)25 b Fa(.)15
16377 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16378 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16379 g(.)g(.)g(.)g(.)g(.)55 b Fn(8)150 1948 y Fl(3)135 b(Abstract)45
16380 b(Syn)l(tax)g(T)-11 b(rees)34 b Fb(.)19 b(.)h(.)f(.)h(.)f(.)h(.)f(.)g
16381 (.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)79 b Fl(11)449
16382 2085 y Fn(3.1)92 b(T)-8 b(ree)31 b(No)s(des)24 b Fa(.)15
16383 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16384 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
16385 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)53 b Fn(11)748 2194 y(3.1.1)93
16386 b(ID)30 b(Num)m(b)s(ers)f(for)h(T)-8 b(ree)31 b(No)s(des)f(and)g
16387 (Instructions)8 b Fa(.)14 b(.)h(.)g(.)g(.)38 b Fn(11)748
16388 2304 y(3.1.2)93 b(Other)29 b(F)-8 b(eatures)32 b(Shared)d(b)m(y)i(All)e
16389 (T)-8 b(ree)30 b(No)s(des)10 b Fa(.)15 b(.)h(.)f(.)g(.)g(.)g(.)g(.)39
16390 b Fn(12)748 2413 y(3.1.3)93 b(Instruction)28 b(No)s(des)9
16391 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
16392 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)38
16393 b Fn(13)748 2523 y(3.1.4)93 b(If)29 b(No)s(des)d Fa(.)15
16394 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16395 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
16396 g(.)g(.)54 b Fn(13)748 2633 y(3.1.5)93 b(Lo)s(op)30 b(No)s(des)20
16397 b Fa(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
16398 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16399 g(.)49 b Fn(15)748 2742 y(3.1.6)93 b(F)-8 b(or)31 b(No)s(des)11
16400 b Fa(.)j(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
16401 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16402 (.)g(.)g(.)40 b Fn(16)748 2852 y(3.1.7)93 b(Blo)s(c)m(k)30
16403 b(No)s(des)8 b Fa(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16404 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16405 (.)g(.)g(.)g(.)h(.)37 b Fn(19)748 2961 y(3.1.8)93 b(Pro)s(cedure)29
16406 b(No)s(des)d Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16407 (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55
16408 b Fn(20)449 3071 y(3.2)92 b(T)-8 b(ree)31 b(No)s(de)f(Lists)18
16409 b Fa(.)c(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16410 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16411 (.)g(.)h(.)f(.)g(.)g(.)47 b Fn(20)449 3181 y(3.3)92 b(Mapping)29
16412 b(F)-8 b(unctions)30 b(Ov)m(er)h(Subtrees)20 b Fa(.)14
16413 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16414 (.)h(.)f(.)g(.)g(.)49 b Fn(21)150 3423 y Fl(4)135 b(Instructions)45
16415 b(and)g(Expression)g(T)-11 b(rees)37 b Fb(.)20 b(.)f(.)h(.)f(.)h(.)f(.)
16416 g(.)h(.)82 b Fl(23)449 3560 y Fn(4.1)92 b(Basic)31 b(Instruction)e(F)-8
16417 b(eatures)27 b Fa(.)15 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16418 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56
16419 b Fn(23)748 3670 y(4.1.1)93 b(Op)s(co)s(des)29 b(and)g(F)-8
16420 b(ormats)15 b Fa(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16421 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b
16422 Fn(23)748 3779 y(4.1.2)93 b(Destination)30 b(Op)s(erands)15
16423 b Fa(.)d(.)j(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16424 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b Fn(25)748 3889
16425 y(4.1.3)93 b(Result)29 b(T)m(yp)s(es)16 b Fa(.)e(.)h(.)g(.)g(.)g(.)g(.)
16426 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16427 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)45 b Fn(25)748
16428 3998 y(4.1.4)93 b(P)m(aren)m(t)31 b(T)-8 b(ree)31 b(No)s(des)15
16429 b Fa(.)f(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16430 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b
16431 Fn(25)748 4108 y(4.1.5)93 b(Source)30 b(Op)s(erands)24
16432 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16433 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56
16434 b Fn(26)748 4218 y(4.1.6)93 b(Prin)m(ting)28 b(Metho)s(ds)13
16435 b Fa(.)j(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16436 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)43
16437 b Fn(27)449 4327 y(4.2)92 b(Op)s(erands)14 b Fa(.)f(.)i(.)g(.)g(.)g(.)g
16438 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16439 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16440 (.)g(.)g(.)g(.)g(.)43 b Fn(27)449 4437 y(4.3)92 b(Expression)29
16441 b(T)-8 b(rees)20 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
16442 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16443 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)50 b Fn(28)449
16444 4546 y(4.4)92 b(Three)30 b(Op)s(erand)e(Instructions)14
16445 b Fa(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16446 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)43 b
16447 Fn(29)449 4656 y(4.5)92 b(Branc)m(h)31 b(and)e(Jump)g(Instructions)24
16448 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16449 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b Fn(32)449
16450 4765 y(4.6)92 b(Load)30 b(Constan)m(t)h(Instructions)22
16451 b Fa(.)15 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16452 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)53
16453 b Fn(33)449 4875 y(4.7)92 b(Call)29 b(Instructions)23
16454 b Fa(.)13 b(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16455 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16456 g(.)g(.)g(.)g(.)g(.)52 b Fn(33)449 4985 y(4.8)92 b(Arra)m(y)31
16457 b(Instructions)10 b Fa(.)j(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16458 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
16459 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)39 b Fn(34)449 5094 y(4.9)92
16460 b(Multi-w)m(a)m(y)30 b(Branc)m(h)h(Instructions)22 b
16461 Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
16462 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)53 b Fn(35)449
16463 5204 y(4.10)92 b(Lab)s(el)30 b(Instructions)13 b Fa(.)g(.)i(.)h(.)f(.)g
16464 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16465 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)43
16466 b Fn(35)449 5313 y(4.11)92 b(Generic)31 b(Instructions)15
16467 b Fa(.)e(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16468 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16469 (.)44 b Fn(35)p eop
16470 %%Page: -2 110
16471 -2 109 bop 150 -116 a Fn(ii)2423 b(The)30 b(SUIF)g(V)-8
16472 b(ersion)30 b(1)h(Library)150 83 y Fl(5)135 b(Sym)l(b)t(ol)45
16473 b(T)-11 b(ables)17 b Fb(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g
16474 (.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)62
16475 b Fl(37)449 220 y Fn(5.1)92 b(Sym)m(b)s(ol)29 b(T)-8
16476 b(able)30 b(Hierarc)m(h)m(y)c Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16477 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
16478 g(.)g(.)g(.)g(.)g(.)55 b Fn(37)748 330 y(5.1.1)93 b(The)29
16479 b(Global)h(Sym)m(b)s(ol)f(T)-8 b(able)23 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)
16480 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)53
16481 b Fn(37)748 439 y(5.1.2)93 b(File)29 b(Sym)m(b)s(ol)g(T)-8
16482 b(ables)26 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16483 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56
16484 b Fn(38)748 549 y(5.1.3)93 b(Pro)s(cedure)29 b(Sym)m(b)s(ol)g(T)-8
16485 b(ables)28 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
16486 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)58 b Fn(38)748 658
16487 y(5.1.4)93 b(Blo)s(c)m(k)30 b(Sym)m(b)s(ol)f(T)-8 b(ables)11
16488 b Fa(.)k(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16489 g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)40 b Fn(39)449
16490 768 y(5.2)92 b(Basic)31 b(F)-8 b(eatures)25 b Fa(.)15
16491 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16492 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16493 g(.)g(.)g(.)g(.)g(.)53 b Fn(39)449 878 y(5.3)92 b(Lo)s(okup)29
16494 b(Metho)s(ds)19 b Fa(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16495 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16496 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)48 b Fn(40)449 987
16497 y(5.4)92 b(Creating)30 b(New)g(En)m(tries)11 b Fa(.)k(.)g(.)g(.)g(.)g
16498 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16499 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b
16500 Fn(41)449 1097 y(5.5)92 b(Adding)29 b(and)g(Remo)m(ving)i(En)m(tries)11
16501 b Fa(.)j(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
16502 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b Fn(41)449
16503 1206 y(5.6)92 b(Num)m(b)s(ering)28 b(T)m(yp)s(es)i(and)g(Sym)m(b)s(ols)
16504 9 b Fa(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16505 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)39 b Fn(42)150
16506 1424 y Fl(6)135 b(Sym)l(b)t(ols)13 b Fb(.)19 b(.)h(.)f(.)h(.)f(.)h(.)f
16507 (.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)
16508 h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)58 b Fl(45)449 1561
16509 y Fn(6.1)92 b(Basic)31 b(F)-8 b(eatures)31 b(of)g(Sym)m(b)s(ols)26
16510 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16511 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)57
16512 b Fn(45)449 1671 y(6.2)92 b(Pro)s(cedure)30 b(Sym)m(b)s(ols)16
16513 b Fa(.)d(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16514 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16515 (.)g(.)g(.)45 b Fn(46)449 1781 y(6.3)92 b(Lab)s(el)29
16516 b(Sym)m(b)s(ols)21 b Fa(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16517 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16518 g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)50 b
16519 Fn(47)449 1890 y(6.4)92 b(V)-8 b(ariable)30 b(Sym)m(b)s(ols)10
16520 b Fa(.)j(.)i(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16521 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16522 (.)g(.)g(.)g(.)g(.)40 b Fn(47)748 2000 y(6.4.1)93 b(Basic)30
16523 b(F)-8 b(eatures)32 b(of)e(V)-8 b(ariables)20 b Fa(.)15
16524 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
16525 (.)f(.)g(.)49 b Fn(48)748 2109 y(6.4.2)93 b(Sub-V)-8
16526 b(ariables)24 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
16527 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16528 g(.)g(.)g(.)56 b Fn(49)748 2219 y(6.4.3)93 b(V)-8 b(ariable)29
16529 b(De\014nitions)14 b Fa(.)f(.)i(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16530 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)43
16531 b Fn(51)150 2437 y Fl(7)135 b(T)l(yp)t(es)19 b Fb(.)g(.)g(.)h(.)f(.)g
16532 (.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)
16533 f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)64
16534 b Fl(53)449 2574 y Fn(7.1)92 b(F)-8 b(eatures)32 b(Shared)d(By)i(All)e
16535 (T)m(yp)s(es)13 b Fa(.)h(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16536 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)42
16537 b Fn(54)449 2684 y(7.2)92 b(Base)31 b(T)m(yp)s(es)19
16538 b Fa(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
16539 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16540 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 b Fn(55)449
16541 2793 y(7.3)92 b(P)m(oin)m(ter)31 b(T)m(yp)s(es)11 b Fa(.)j(.)h(.)g(.)g
16542 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16543 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16544 (.)g(.)g(.)40 b Fn(56)449 2903 y(7.4)92 b(Arra)m(y)31
16545 b(T)m(yp)s(es)19 b Fa(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16546 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
16547 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)48
16548 b Fn(56)449 3012 y(7.5)92 b(F)-8 b(unction)30 b(T)m(yp)s(es)23
16549 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16550 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16551 g(.)g(.)g(.)g(.)g(.)g(.)53 b Fn(57)449 3122 y(7.6)92
16552 b(Structure)29 b(and)h(Union)f(T)m(yp)s(es)24 b Fa(.)15
16553 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16554 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 b Fn(58)449
16555 3231 y(7.7)92 b(En)m(umerated)30 b(T)m(yp)s(es)21 b Fa(.)15
16556 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16557 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
16558 g(.)50 b Fn(59)449 3341 y(7.8)92 b(Mo)s(di\014er)29 b(T)m(yp)s(es)10
16559 b Fa(.)k(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16560 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16561 (.)g(.)g(.)h(.)f(.)g(.)g(.)39 b Fn(59)449 3451 y(7.9)92
16562 b(Prede\014ned)29 b(T)m(yp)s(es)10 b Fa(.)k(.)h(.)g(.)g(.)g(.)g(.)g(.)g
16563 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16564 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)39
16565 b Fn(60)150 3669 y Fl(8)135 b(Annotations)23 b Fb(.)c(.)h(.)f(.)h(.)f
16566 (.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)
16567 f(.)g(.)h(.)f(.)h(.)f(.)h(.)67 b Fl(63)449 3806 y Fn(8.1)92
16568 b(Ov)m(erview)19 b Fa(.)14 b(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16569 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16570 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)48
16571 b Fn(63)449 3915 y(8.2)92 b(Flat)31 b(Annotations)14
16572 b Fa(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
16573 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16574 (.)g(.)g(.)g(.)g(.)43 b Fn(64)449 4025 y(8.3)92 b(Structured)29
16575 b(Annotations)13 b Fa(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16576 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
16577 g(.)g(.)g(.)42 b Fn(64)449 4134 y(8.4)92 b(Unregistered)30
16578 b(Annotations)17 b Fa(.)d(.)h(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
16579 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16580 g(.)46 b Fn(65)449 4244 y(8.5)92 b(Prede\014ned)29 b(Annotations)15
16581 b Fa(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16582 g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44
16583 b Fn(65)748 4354 y(8.5.1)93 b(Initial)28 b(Data)k(Annotations)23
16584 b Fa(.)14 b(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16585 (.)g(.)g(.)g(.)g(.)g(.)g(.)52 b Fn(65)748 4463 y(8.5.2)93
16586 b(Call-By-Reference)30 b(Annotations)c Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)
16587 g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)55 b Fn(66)748
16588 4573 y(8.5.3)93 b(Common)29 b(Blo)s(c)m(k)i(Annotations)14
16589 b Fa(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
16590 g(.)g(.)g(.)43 b Fn(67)748 4682 y(8.5.4)93 b(Miscellaneous)29
16591 b(Annotations)d Fa(.)15 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16592 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 b Fn(67)449 4792
16593 y(8.6)92 b(Annotation)30 b(Manager)f Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g
16594 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16595 g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)56 b Fn(68)748
16596 4902 y(8.6.1)93 b(Flat)30 b(Annotation)h(De\014nitions)24
16597 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
16598 (.)g(.)g(.)g(.)55 b Fn(68)748 5011 y(8.6.2)93 b(Structured)29
16599 b(Annotation)h(De\014nitions)24 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16600 (.)g(.)g(.)g(.)g(.)g(.)55 b Fn(69)748 5121 y(8.6.3)93
16601 b(Unregistered)29 b(Annotations)i(in)e(the)h(Input)f(File)23
16602 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)52 b Fn(70)449 5230 y(8.7)92
16603 b(SUIF)30 b(Ob)5 b(jects)17 b Fa(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
16604 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16605 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)46
16606 b Fn(70)449 5340 y(8.8)92 b(Annotation)30 b(Lists)20
16607 b Fa(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16608 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16609 g(.)g(.)g(.)g(.)g(.)49 b Fn(71)p eop
16610 %%Page: -3 111
16611 -3 110 bop 3674 -116 a Fn(iii)150 83 y Fl(9)135 b(Replicating)46
16612 b(T)-11 b(rees)45 b(and)g(Instructions)21 b Fb(.)f(.)f(.)h(.)f(.)h(.)f
16613 (.)h(.)f(.)66 b Fl(73)449 220 y Fn(9.1)92 b(Finding)28
16614 b(Exp)s(osed)h(References)10 b Fa(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
16615 g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16616 (.)g(.)g(.)39 b Fn(73)449 330 y(9.2)92 b(Resolving)29
16617 b(Exp)s(osed)h(References)15 b Fa(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16618 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16619 44 b Fn(74)449 439 y(9.3)92 b(Cop)m(ying)30 b(the)g(Ob)5
16620 b(jects)k Fa(.)15 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16621 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16622 g(.)g(.)g(.)g(.)39 b Fn(74)150 682 y Fl(10)135 b(F)-11
16623 b(eatures)45 b(for)g(Compiling)h(F)-11 b(ortran)21 b
16624 Fb(.)f(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)66 b Fl(77)449
16625 819 y Fn(10.1)92 b(Call-By-Reference)31 b(P)m(arameters)14
16626 b Fa(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
16627 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)43 b Fn(77)150 1061
16628 y Fl(11)135 b(Generic)45 b(Data)h(Structures)33 b Fb(.)20
16629 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)78
16630 b Fl(79)449 1198 y Fn(11.1)92 b(Generic)31 b(Lists)c
16631 Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16632 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
16633 g(.)g(.)g(.)g(.)g(.)g(.)g(.)57 b Fn(79)449 1308 y(11.2)92
16634 b(Mo)m(v)m(e-to-fron)m(t)34 b(Lists)15 b Fa(.)f(.)h(.)g(.)g(.)g(.)g(.)g
16635 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16636 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b Fn(80)449
16637 1417 y(11.3)92 b(Asso)s(ciation)30 b(Lists)17 b Fa(.)d(.)h(.)g(.)g(.)g
16638 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
16639 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46
16640 b Fn(80)449 1527 y(11.4)92 b(Doubly-Link)m(ed)29 b(Lists)15
16641 b Fa(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16642 g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16643 (.)44 b Fn(80)449 1636 y(11.5)92 b(Bit)31 b(V)-8 b(ectors)22
16644 b Fa(.)16 b(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16645 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16646 g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)51 b Fn(81)449 1746
16647 y(11.6)92 b(Hash)31 b(T)-8 b(ables)24 b Fa(.)15 b(.)g(.)g(.)h(.)f(.)g
16648 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16649 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
16650 (.)54 b Fn(81)449 1856 y(11.7)92 b(Extensible)29 b(Arra)m(ys)21
16651 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16652 (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16653 g(.)g(.)g(.)50 b Fn(81)150 2098 y Fl(12)135 b(Other)45
16654 b(F)-11 b(eatures)45 b(of)h(the)f(SUIF)f(Library)11 b
16655 Fb(.)20 b(.)f(.)g(.)h(.)f(.)h(.)55 b Fl(83)449 2235 y
16656 Fn(12.1)92 b(Immediate)30 b(V)-8 b(alues)21 b Fa(.)15
16657 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
16658 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16659 g(.)50 b Fn(83)449 2345 y(12.2)92 b(Sym)m(b)s(olic)29
16660 b(Addresses)c Fa(.)15 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16661 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16662 g(.)g(.)g(.)g(.)56 b Fn(84)449 2454 y(12.3)92 b(Lexicon)29
16663 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16664 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16665 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)58 b
16666 Fn(84)449 2564 y(12.4)92 b(T)-8 b(arget)32 b(Mac)m(hine)f(P)m
16667 (arameters)18 b Fa(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16668 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)47
16669 b Fn(85)449 2673 y(12.5)92 b(Initialization)28 b(and)i(Finalization)18
16670 b Fa(.)c(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16671 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)47 b Fn(85)449 2783
16672 y(12.6)92 b(Command-Line)29 b(P)m(arser)14 b Fa(.)i(.)f(.)g(.)g(.)g(.)g
16673 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16674 g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)43 b Fn(87)449 2892
16675 y(12.7)92 b(Error)30 b(Handling)8 b Fa(.)13 b(.)i(.)g(.)g(.)g(.)g(.)g
16676 (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16677 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)38
16678 b Fn(88)449 3002 y(12.8)92 b(Pro)s(cedure)30 b(Iterators)9
16679 b Fa(.)16 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16680 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16681 g(.)g(.)39 b Fn(88)150 3244 y Fl(App)t(endix)h Fb(.)19
16682 b(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g
16683 (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)86
16684 b Fl(91)449 3381 y Fn(Class)29 b(Inheritance)h(of)g(Ma)5
16685 b(jor)31 b(SUIF)f(Structures)17 b Fa(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
16686 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)47 b Fn(91)449
16687 3491 y(Ov)m(erview)30 b(of)g(the)h(SUIF)f(Hierarc)m(h)m(y)9
16688 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
16689 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)38
16690 b Fn(92)449 3601 y(The)30 b(Sym)m(b)s(ol)f(T)-8 b(able)30
16691 b(Represen)m(tation)16 b Fa(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
16692 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46
16693 b Fn(93)150 3843 y Fl(F)-11 b(unction,)44 b(V)-11 b(ariable,)46
16694 b(and)f(T)l(yp)t(e)g(Index)26 b Fb(.)19 b(.)g(.)g(.)h(.)f(.)h(.)f(.)h
16695 (.)f(.)g(.)71 b Fl(95)150 4113 y(Concept)45 b(Index)18
16696 b Fb(.)i(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)
16697 h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)62
16698 b Fl(103)p eop
16699 %%Trailer
16701 userdict /end-hook known{end-hook}if
16702 %%EOF