%!PS-Adobe-3.0
%%Creator: groff version 1.10
%%CreationDate: Wed Jul 7 08:04:13 1999
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
%%+ font Helvetica
%%+ font Courier
%%+ font Helvetica-Bold
%%+ font Courier-Bold
%%+ font Symbol
%%+ font Times-BoldItalic
%%+ font Courier-Oblique
%%DocumentSuppliedResources: file setedge.eps
%%+ procset grops 1.10 0
%%Pages: 121
%%PageOrder: Ascend
%%Orientation: Portrait
%%EndComments
%%BeginProlog
%%BeginResource: procset grops 1.10 0
/setpacking where{
pop
currentpacking
true setpacking
}if
/grops 120 dict dup begin
/SC 32 def
/A/show load def
/B{0 SC 3 -1 roll widthshow}bind def
/C{0 exch ashow}bind def
/D{0 exch 0 SC 5 2 roll awidthshow}bind def
/E{0 rmoveto show}bind def
/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
/G{0 rmoveto 0 exch ashow}bind def
/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/I{0 exch rmoveto show}bind def
/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
/K{0 exch rmoveto 0 exch ashow}bind def
/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/M{rmoveto show}bind def
/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
/O{rmoveto 0 exch ashow}bind def
/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/Q{moveto show}bind def
/R{moveto 0 SC 3 -1 roll widthshow}bind def
/S{moveto 0 exch ashow}bind def
/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/SF{
findfont exch
[exch dup 0 exch 0 exch neg 0 0]makefont
dup setfont
[exch/setfont cvx]cvx bind def
}bind def
/MF{
findfont
[5 2 roll
0 3 1 roll
neg 0 0]makefont
dup setfont
[exch/setfont cvx]cvx bind def
}bind def
/level0 0 def
/RES 0 def
/PL 0 def
/LS 0 def
/MANUAL{
statusdict begin/manualfeed true store end
}bind def
/PLG{
gsave newpath clippath pathbbox grestore
exch pop add exch pop
}bind def
/BP{
/level0 save def
1 setlinecap
1 setlinejoin
72 RES div dup scale
LS{
90 rotate
}{
0 PL translate
}ifelse
1 -1 scale
}bind def
/EP{
level0 restore
showpage
}bind def
/DA{
newpath arcn stroke
}bind def
/SN{
transform
.25 sub exch .25 sub exch
round .25 add exch round .25 add exch
itransform
}bind def
/DL{
SN
moveto
SN
lineto stroke
}bind def
/DC{
newpath 0 360 arc closepath
}bind def
/TM matrix def
/DE{
TM currentmatrix pop
translate scale newpath 0 0 .5 0 360 arc closepath
TM setmatrix
}bind def
/RC/rcurveto load def
/RL/rlineto load def
/ST/stroke load def
/MT/moveto load def
/CL/closepath load def
/FL{
currentgray exch setgray fill setgray
}bind def
/BL/fill load def
/LW/setlinewidth load def
/RE{
findfont
dup maxlength 1 index/FontName known not{1 add}if dict begin
{
1 index/FID ne{def}{pop pop}ifelse
}forall
/Encoding exch def
dup/FontName exch def
currentdict end definefont pop
}bind def
/DEFS 0 def
/EBEGIN{
moveto
DEFS begin
}bind def
/EEND/end load def
/CNT 0 def
/level1 0 def
/PBEGIN{
/level1 save def
translate
div 3 1 roll div exch scale
neg exch neg exch translate
0 setgray
0 setlinecap
1 setlinewidth
0 setlinejoin
10 setmiterlimit
[]0 setdash
/setstrokeadjust where{
pop
false setstrokeadjust
}if
/setoverprint where{
pop
false setoverprint
}if
newpath
/CNT countdictstack def
userdict begin
/showpage{}def
}bind def
/PEND{
clear
countdictstack CNT sub{end}repeat
level1 restore
}bind def
end def
/setpacking where{
pop
setpacking
}if
%%EndResource
%%IncludeResource: font Times-Roman
%%IncludeResource: font Times-Bold
%%IncludeResource: font Times-Italic
%%IncludeResource: font Helvetica
%%IncludeResource: font Courier
%%IncludeResource: font Helvetica-Bold
%%IncludeResource: font Courier-Bold
%%IncludeResource: font Symbol
%%IncludeResource: font Times-BoldItalic
%%IncludeResource: font Courier-Oblique
grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
/Courier-Oblique@0 ENC0/Courier-Oblique RE/Times-BoldItalic@0 ENC0
/Times-BoldItalic RE/Courier-Bold@0 ENC0/Courier-Bold RE
/Helvetica-Bold@0 ENC0/Helvetica-Bold RE/Courier@0 ENC0/Courier RE
/Helvetica@0 ENC0/Helvetica RE/Times-Italic@0 ENC0/Times-Italic RE
/Times-Bold@0 ENC0/Times-Bold RE/Times-Roman@0 ENC0/Times-Roman RE
%%EndProlog
%%Page: 1 1
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF(THE FLORID)230.442 149 Q 3(AS)-.48 G -1.116(TA)
-3 G(TE UNIVERSITY)-.216 E(COLLEGE OF AR)228.492 175 Q(TS AND SCIENCES)
-.72 E/F1 12/Times-Bold@0 SF -.6(AU)192.504 240 S -.216(TO).6 G(MA).216
E(TIC UTILIZA)-1.14 E(TION OF CONSTRAINTS)-1.14 E(FOR TIMING AN)257.136
266 Q(AL)-.24 E(YSIS)-1.104 E F0(By)318.798 331 Q(CHRIST)256.344 370 Q
(OPHER A. HEAL)-.216 E(Y)-1.2 E 3(AD)250.8 513 S
(issertation submitted to the)-3 E(Department of Computer Science)
245.316 526 Q(in partial ful\214llment of the)262.134 539 Q
(requirements for the de)253.248 552 Q(gree of)-.18 E
(Doctor of Philosoph)274.164 565 Q(y)-.06 E(De)284.022 695 Q(gree A)-.18
E -.12(wa)-1.104 G(rded:).12 E(Summer Semester)267.21 708 Q 3(,1)-.48 G
(999)-3 E EP
%%Page: 2 2
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 3.589(The members of the Committee appro)111.6
121 R 3.949 -.18(ve t)-.18 H 3.589
(he dissertation of Christopher A. Healy).18 F
(defended on July 2, 1999.)111.6 134 Q(________________________________)
348 168.6 Q(Da)349.2 181.6 Q(vid B. Whalle)-.24 E(y)-.18 E
(Professor Directing Thesis)349.2 194.6 Q
(________________________________)348 259.6 Q(Ste)349.2 272.6 Q -.18(ve)
-.3 G 3(nF).18 G 3(.B)-3.96 G(ellenot)-3 E(Outside Committee Member)
349.2 285.6 Q(________________________________)348 350.6 Q(Theodore P)
349.2 363.6 Q 3(.B)-1.332 G(ak)-3 E(er)-.12 E(Committee Member)349.2
376.6 Q(________________________________)348 441.6 Q -.3(Ky)349.2 454.6
S(le Galli).3 E -.3(va)-.3 G(n).3 E(Committee Member)349.2 467.6 Q
(________________________________)348 532.6 Q(Robert A. v)349.2 545.6 Q
(an Engelen)-.3 E(Committee Member)349.2 558.6 Q(Appro)111.6 623.6 Q
-.18(ve)-.18 G(d:).18 E .48 LW 117.6 662.6 111.6 662.6 DL 123.6 662.6
117.6 662.6 DL 129.6 662.6 123.6 662.6 DL 135.6 662.6 129.6 662.6 DL
141.6 662.6 135.6 662.6 DL 147.6 662.6 141.6 662.6 DL 153.6 662.6 147.6
662.6 DL 159.6 662.6 153.6 662.6 DL 165.6 662.6 159.6 662.6 DL 171.6
662.6 165.6 662.6 DL 177.6 662.6 171.6 662.6 DL 183.6 662.6 177.6 662.6
DL 189.6 662.6 183.6 662.6 DL 195.6 662.6 189.6 662.6 DL 201.6 662.6
195.6 662.6 DL 207.6 662.6 201.6 662.6 DL 213.6 662.6 207.6 662.6 DL
219.6 662.6 213.6 662.6 DL 225.6 662.6 219.6 662.6 DL 231.6 662.6 225.6
662.6 DL 237.6 662.6 231.6 662.6 DL 243.6 662.6 237.6 662.6 DL 249.6
662.6 243.6 662.6 DL 255.6 662.6 249.6 662.6 DL 261.6 662.6 255.6 662.6
DL 267.6 662.6 261.6 662.6 DL 273.6 662.6 267.6 662.6 DL 279.6 662.6
273.6 662.6 DL 285.6 662.6 279.6 662.6 DL 291.6 662.6 285.6 662.6 DL
297.6 662.6 291.6 662.6 DL 303.6 662.6 297.6 662.6 DL 309.6 662.6 303.6
662.6 DL 315.6 662.6 309.6 662.6 DL 321.6 662.6 315.6 662.6 DL 327.6
662.6 321.6 662.6 DL 333.6 662.6 327.6 662.6 DL 339.6 662.6 333.6 662.6
DL 345.6 662.6 339.6 662.6 DL 351.6 662.6 345.6 662.6 DL 357.6 662.6
351.6 662.6 DL 363.6 662.6 357.6 662.6 DL 369.6 662.6 363.6 662.6 DL
375.6 662.6 369.6 662.6 DL 381.6 662.6 375.6 662.6 DL 387.6 662.6 381.6
662.6 DL 393.6 662.6 387.6 662.6 DL 399.6 662.6 393.6 662.6 DL 1.776
-.888(T. P)111.6 675.6 T 3(.B)-.444 G(ak)-3 E(er)-.12 E 3(,C)-.48 G
(hair)-3 E 3(,D)-.48 G(epartment of Computer Science)-3 E EP
%%Page: 1 3
%%BeginPageSetup
BP
%%EndPageSetup
/F0 16/Times-Roman@0 SF(CHAPTER 1)283.352 167 Q(INTR)265.688 206 Q
(ODUCTION)-.64 E/F1 12/Times-Roman@0 SF 2.375(Users of real-time system\
s are not only interested in obtaining correct computations)111.6 245 R
2.501(from their programs, b)111.6 271 R 2.501
(ut timely responses as well.)-.24 F 2.5(Responses that are gi)8.501 F
-.18(ve)-.3 G 5.5(np).18 G 2.5(ast a)-5.5 F .942
(deadline is not acceptable.)111.6 297 R 3.942(Ar)6.942 G .943
(eal-time system is often comprised of a set of tasks that)-3.942 F
1.291(are statically scheduled.)111.6 323 R 1.29
(Therefore, it is necessary to determine a program')7.291 F 4.29(se)-.66
G -.18(xe)-4.47 G(cution).18 E 1.148(time statically)111.6 349 R 7.148
(.I)-.78 G 4.148(ti)-7.148 G 4.148(su)-4.148 G 1.149
(nrealistic to attempt to predict a precise e)-4.148 F -.18(xe)-.18 G
1.149(cution time for e).18 F -.18(ve)-.3 G(ry).18 E 2.8
(real-time program since the e)111.6 375 R -.18(xe)-.18 G 2.799
(cution time often depends upon input v).18 F 2.799(alues whose)-.3 F
4.309(in\215uence on the program')111.6 401 R 7.309(sc)-.66 G 4.309
(ontrol \215o)-7.309 F 7.309(wi)-.3 G 7.309(su)-7.309 G(nkno)-7.309 E
4.309(wn until the program e)-.3 F -.18(xe)-.18 G(cutes.).18 E
(Consequently)111.6 427 Q 5.506(,i)-.78 G 2.506
(nstead of trying to deri)-5.506 F 2.866 -.18(ve a s)-.3 H 2.506
(ingle e).18 F -.18(xe)-.18 G 2.506(cution time, a more pragmatic).18 F
4.297(approach is to calculate upper \(w)111.6 453 R 4.297
(orst-case\) and lo)-.12 F 4.297(wer \(best-case\) bounds on the)-.3 F
-.18(exe)111.6 479 S 2.057(cution time.).18 F 2.056
(Real-time programmers tend to be more interested in the w)8.057 F
(orst-case)-.12 E -.18(exe)111.6 505 S .046
(cution time \(WCET\), rather than the best-case e).18 F -.18(xe)-.18 G
.046(cution time \(BCET\), because of the).18 F 1.15
(notion of real-time deadlines.)111.6 531 R 1.15(In other w)7.15 F 1.149
(ords, a task that completes too early is not as)-.12 F
(much of a concern as a task that \214nishes too late.)111.6 557 Q 1.025
(This dissertation discusses research in timing analysis to pro)126.6
583 R 1.026(vide tighter WCET and)-.18 F 2.178(BCET predictions.)111.6
609 R 5.178(Ap)8.178 G(re)-5.178 E 2.178(vious v)-.3 F 2.177
(ersion of a timing analyzer focused on architectural)-.18 F .361
(features, speci\214cally inte)111.6 635 R .361
(grating the analysis of pipelining and instruction caching [1, 2].)-.18
F .506(One could e)111.6 661 R .505(xtend this implementation to tak)
-.18 F 3.505(ei)-.12 G .505(nto account additional hardw)-3.505 F .505
(are features.)-.12 F(Ho)111.6 687 Q(we)-.3 E -.18(ve)-.3 G 4.241 -.48
(r, t).18 H 3.281(he author belie).48 F -.18(ve)-.3 G 6.281(st).18 G
3.282(hat addressing machine-independent issues in timing)-6.281 F(1)
322.8 725.04 Q EP
%%Page: 2 4
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 2.983(analysis will ha)111.6 95 R 3.343 -.18
(ve a g)-.24 H 2.983(reater and longer).18 F 2.983
(-lasting bene\214t than merely focusing on the)-.24 F 3.613
(architecture. Ne)111.6 121 R 3.613(wa)-.3 G .614
(rchitectural features are being de)-3.613 F -.18(ve)-.3 G .614
(loped at a rapid pace.).18 F .614(Thus, it is)6.614 F(dif)111.6 147 Q
.121(\214cult for timing analysis research to k)-.3 F .121
(eep up with the latest hardw)-.12 F .121(are features.)-.12 F .12
(On the)6.12 F 3.756(other hand, e)111.6 173 R -.18(ve)-.3 G 6.756(ni)
.18 G 6.756(fat)-6.756 G 3.756
(iming analyzer perfectly models a processor')-6.756 F 6.756(sa)-.66 G
(rchitecture,)-6.756 E 1.384(signi\214cant WCET o)111.6 199 R -.18(ve)
-.18 G 1.384
(restimations and BCET underestimations can still result because).18 F
1.056(of dependences on data v)111.6 225 R 1.056
(alues that can constrain the number of loop iterations and the)-.3 F
.118(set of paths that can be tak)111.6 251 R .117(en in a program.)-.12
F -1.2 -.96(Tw o)6.117 H .117(types of constraints will be discussed in)
4.077 F 2.069(this dissertation:)111.6 277 R/F1 12/Times-Italic@0 SF
2.069(loop iter)8.069 F 2.069(ation constr)-.18 F(aints)-.18 E F0 2.07
(that in\215uence the number of iterations of)5.069 F 1.718(loops, and)
111.6 303 R F1(br)4.718 E(anc)-.18 E 4.718(hc)-.18 G(onstr)-4.718 E
(aints)-.18 E F0 1.718
(that indicate whether or not a particular branch will be)4.718 F(tak)
111.6 329 Q .734(en or f)-.12 F .734(all through.)-.12 F .735
(When the term)6.735 F F1(constr)3.735 E(aint)-.18 E F0 .735
(appears hereafter in this dissertation, it)3.735 F 1.001
(shall mean both types of constraints collecti)111.6 355 R -.18(ve)-.3 G
(ly).18 E 7(.T)-.78 G 1(his dissertation describes ho)-7 F 4(wt)-.3 G
(hese)-4 E 2.72
(constraints in a program can be automatically detected and e)111.6 381
R 2.72(xploited to tighten the)-.18 F -.18(exe)111.6 407 S
(cution time predictions.).18 E 3.238
(The remainder of the dissertation will proceed as follo)126.6 433 R
6.238(ws. Chapter)-.3 F 6.237(2e)6.237 G(xamines)-6.417 E .748
(related w)111.6 459 R .748(ork in the area of predicting e)-.12 F -.18
(xe)-.18 G .748(cution time.).18 F .749(Chapter 3 presents the conte)
6.748 F .749(xt in)-.18 F 1.379(which the timing analyzer w)111.6 485 R
1.379(as originally designed with respect to its input/output and)-.12 F
3.972(ancillary softw)111.6 511 R 6.972(are. Chapter)-.12 F 6.972(4d)
6.972 G 3.972(iscusses the w)-6.972 F 3.972
(ork on loop iteration constraints to)-.12 F 4.726
(calculate the number of loop iterations accurately and automatically)
111.6 537 R 10.725(.C)-.78 G 4.725(hapter 5)-10.725 F 4.573
(describes the other e)111.6 563 R 4.573
(xtension to the timing analyzer pertaining to detecting and)-.18 F -.18
(ex)111.6 589 S 2.27(ploiting branch constraints.).18 F 2.269
(Chapter 6 brie\215y summarizes the major results of the)8.269 F 5.658
(timing analysis.)111.6 615 R 5.658(Chapter 7 describes future w)11.658
F 5.659(ork and Chapter 8 presents the)-.12 F(conclusions.)111.6 641 Q
(2)322.8 725.04 Q EP
%%Page: 3 5
%%BeginPageSetup
BP
%%EndPageSetup
/F0 16/Times-Roman@0 SF(CHAPTER 2)283.352 167 Q(RELA)263.888 206 Q
(TED W)-1.776 E(ORK)-.16 E/F1 12/Times-Roman@0 SF 2.756(Predicting e)
111.6 245 R -.18(xe)-.18 G 2.756(cution time of programs is an emer).18
F 2.756(ging area of research in real-time)-.216 F 3.448
(systems. Initial)111.6 271 R -.12(wo)3.448 G .448
(rk in this area concentrated on analyzing source programs.).12 F
(Puschner)6.449 E 1.978(and K)111.6 297 R 1.977
(oza [3] associated the number of machine c)-.42 F 1.977(ycles to indi)
-.18 F 1.977(vidual C statements or)-.3 F(consecuti)111.6 323 Q .487
-.18(ve s)-.3 H .127(tatements not containing conditional control \215o)
.18 F 4.687 -.78(w. N)-.3 H .127(iehaus [4] sho).78 F .128(wed ho)-.3 F
(w)-.3 E 1.775(the e)111.6 349 R -.18(xe)-.18 G 1.775(cution time can c\
orrespond to basic blocks after intermediate code generation.).18 F -.18
(Pa)111.6 375 S .591(rk [5] created an Information Description Language\
so that the user could specify the).18 F 1.067
(number of loop iterations or that tw)111.6 401 R 4.067(os)-.12 G 1.067
(ource code statements must e)-4.067 F -.18(xe)-.18 G 1.067
(cute in the same).18 F 4.455(path. Ho)111.6 427 R(we)-.3 E -.18(ve)-.3
G 2.415 -.48(r, a).18 H 1.455(ll these studies ignored hardw).48 F 1.455
(are ef)-.12 F 4.455(fects. Ov)-.3 F 1.456(er time, timing analysis)-.18
F 1.987(research encompassed the study of architectural features, such \
as pipelined e)111.6 453 R -.18(xe)-.18 G(cution).18 E .5
(and caches [6, 7, 8, 9, 10, 2].)111.6 479 R .5
(More recent research is concerned with ho)6.5 F 3.5(wd)-.3 G
(ependences)-3.5 E 1.067(on data v)111.6 505 R 1.067
(alues can constrain paths and thereby in\215uence the program')-.3 F
4.067(se)-.66 G -.18(xe)-4.247 G 1.067(cution time.).18 F 2.132
(The major dif)111.6 531 R 2.132(ference between the w)-.3 F 2.132
(ork described in this dissertation and the related)-.12 F -.12(wo)111.6
557 S 1.692(rk performed else).12 F 1.692(where is the w)-.3 F 1.692
(ay in which the number of loop iterations and the)-.12 F 1.288
(branch constraints are made kno)111.6 583 R 1.288
(wn to the timing analyzer)-.3 F 7.288(.O)-.66 G 1.288
(ther research groups that)-7.288 F .315(use constraint information req\
uire the user to painstakingly enter this information [9, 11,)111.6 609
R 4.16(12]. Chapters)111.6 635 R 4.16(4a)4.16 G 1.16
(nd 5 will describe ho)-4.16 F 4.16(wt)-.3 G 1.161
(his information can instead be automatically)-4.16 F
(detected by a compiler and e)111.6 661 Q(xploited by a timing analyzer)
-.18 E(.)-.66 E(Man)126.6 687 Q 3.321(ye)-.18 G .32(xisting timing anal\
yzers require that a user specify the number of iterations of)-3.501 F
(3)322.8 725.04 Q EP
%%Page: 4 6
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 2.246(each loop in the program.)111.6 95 R 2.246
(This speci\214cation may be requested interacti)8.246 F -.18(ve)-.3 G
2.246(ly [13, 9].).18 F .453(Thus, each time the timing analyzer is in)
111.6 121 R -.24(vo)-.48 G -.12(ke).24 G 3.453(df).12 G .453
(or a program, the bounds for e)-3.453 F -.18(ve)-.3 G .452(ry loop).18
F 3.604(in the program must be speci\214ed, which is error prone and te\
dious for the user)111.6 147 R(.)-.66 E(Alternati)111.6 173 Q -.18(ve)
-.3 G(ly).18 E 5.504(,o)-.78 G 2.504
(ne could specify this information as assertions in the source code to)
-5.504 F(pre)111.6 199 Q -.18(ve)-.3 G .631
(nt repeated speci\214cations of the same information [14, 3].).18 F(Ho)
6.631 E(we)-.3 E -.18(ve)-.3 G 1.591 -.48(r, t).18 H .631
(here are still).48 F(se)111.6 225 Q -.18(ve)-.3 G 1.658(ral disadv).18
F 4.658(antages. First,)-.3 F 1.658
(the user is still required to write the assertions.)4.658 F(Second,)
7.658 E 2.471(there is no guarantee that the user will specify the corr\
ect minimum and maximum)111.6 251 R 3.9(iterations. This)111.6 277 R
.899(problem may easily occur when a user changes the loop, b)3.9 F .899
(ut for)-.24 F .899(gets to)-.216 F .393
(update the corresponding assertion.)111.6 303 R .394
(Also, code generation strate)6.394 F .394(gies, such as whether to)-.18
F 1.254(place instructions for the loop e)111.6 329 R 1.254
(xit condition code at the be)-.18 F 1.253(ginning or end of the loop,)
-.18 F .422(may cause the number of loop iterations to v)111.6 355 R
.422(ary by one iteration.)-.3 F 3.423(Au)6.422 G .423
(ser should only be)-3.423 F 1.452(required to e)111.6 381 R 1.451
(xamine the source code and not be required to kno)-.18 F 4.451(wt)-.3 G
1.451(he code generation)-4.451 F(strate)111.6 407 Q .852
(gies of the compiler)-.18 F 6.852(.F)-.66 G(inally)-6.852 E 3.852(,c)
-.78 G .852(ompiler optimizations, such as loop unrolling, may)-3.852 F
(af)111.6 433 Q .328(fect the number of times a loop iterates.)-.3 F
.328(Inhibiting dif)6.328 F .328(ferent code generation strate)-.3 F
(gies)-.18 E 5.255
(or compiler optimizations to more easily estimate loop bounds w)111.6
459 R 5.255(ould sacri\214ce)-.12 F
(performance, which is quite undesirable.)111.6 485 Q .188(Other pre)
126.6 511 R .188(vious w)-.3 F .187
(ork in timing analysis has been accomplished using constraint-based)
-.12 F 3.982(systems. Li)111.6 537 R/F1 12/Times-Italic@0 SF .982
(et al.)3.982 F F0 .982([15, 9] de)3.982 F -.18(ve)-.3 G .982
(loped an Implicit P).18 F .982(ath Enumeration \(IPE\) technique that)
-.18 F .457(used Inte)111.6 563 R .457
(ger Linear Programming \(ILP\) to solv)-.18 F 3.457(ec)-.18 G .457
(onstraints about the program to obtain)-3.457 F 1.579
(timing predictions.)111.6 589 R 1.579(The cost function w)7.579 F 1.58
(as a sum of terms of the form)-.12 F F1(c)4.58 E/F2 10/Times-Italic@0
SF(i)6 I F1(x)-6 I F2(i)6 I F0 4.58(,w)-6 K 1.58(here for)-4.58 F 1.47
(each block)111.6 615 R F1(i)4.47 E F0(,)A F1(c)4.47 E F2(i)6 I F0 1.47
(is the e)4.47 -6 N -.18(xe)-.18 G 1.47(cution time of the block).18 F
F1(i)4.469 E F0(and)4.469 E F1(x)4.469 E F2(i)6 I F0 1.469
(is the number of times the)4.469 -6 N 3.417(block e)111.6 641 R -.18
(xe)-.18 G 6.417(cutes. Their).18 F 3.418
(approach uses structural constraints based on the program')6.417 F(s)
-.66 E .769(control \215o)111.6 667 R 3.769(wa)-.3 G .769(nd functional\
constraints entered by the user that deal with the number of)-3.769 F
1.53(times that each The w)111.6 693 R 1.53
(ork of Ottosson and Sj\366din [11] e)-.12 F 1.53
(xtended the IPE technique by)-.18 F(4)322.8 725.04 Q EP
%%Page: 5 7
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 2.963(using \214nite domain constraints to mode\
l the architectural features of the hardw)111.6 95 R(are.)-.12 E(Ho)
111.6 121 Q(we)-.3 E -.18(ve)-.3 G 1.258 -.48(r, i).18 H 3.298(nb).48 G
.298(oth approaches these constraints were entered manually by the user)
-3.298 F 3.298(,w)-.48 G(hich)-3.298 E(is both a tedious and error)111.6
147 Q(-prone task.)-.24 E 1.659(Recent w)126.6 173 R 1.658(ork by Ermed\
ahl and Gustafsson [16], Lundqvist and Stenstr\366m [17] and)-.12 F .59
(Liu and Gomez [18] use abstract interpretation and symbolic e)111.6 199
R -.18(xe)-.18 G .591(cution to automatically).18 F(deri)111.6 225 Q
2.243 -.18(ve m)-.3 H(an).18 E 4.883(yb)-.18 G 1.883(ranch constraints.)
-4.883 F 1.883(These approaches are quite po)7.883 F 1.882(werful, b)-.3
F 1.882(ut ef)-.24 F(fecti)-.3 E -.18(ve)-.3 G(ly).18 E .996
(requires simulating all paths of a loop for e)111.6 251 R -.18(ve)-.3 G
.996(ry loop iteration.).18 F .996(Thus, these approaches)6.996 F .929
(require signi\214cant analysis o)111.6 277 R -.18(ve)-.18 G .929
(rhead, which w).18 F .929(ould be undesirable when analyzing long)-.12
F(running programs.)111.6 303 Q -.48(Wi)126.6 329 S 1.851
(lhelm, Ferdinand).48 F/F1 12/Times-Italic@0 SF 1.851(et al.)4.851 F F0
1.851([19, 20, 12] ha)4.851 F 2.211 -.18(ve a)-.24 H 1.852(lso contrib)
.18 F 1.852(uted to the area of timing)-.24 F .824
(prediction that uses constraints.)111.6 355 R(The)6.824 E 3.824(ys)-.18
G .824(eparate timing analysis into tw)-3.824 F 3.823(od)-.12 G .823
(istinct phases:)-3.823 F 1.873(cache analysis and path analysis.)111.6
381 R 1.874(The purpose of this partition is to use ILP only to)7.873 F
.869(perform the path analysis.)111.6 407 R .869
(Their cache analysis is based on the principles de)6.869 F -.18(ve)-.3
G .868(loped in).18 F 4.319([21]. Their)111.6 433 R 1.319
(path analysis technique is similar to that of Li)4.319 F F1 1.319
(et al.)4.319 F F0 4.32(,r)C 1.32(equiring the user to)-4.32 F .167
(enter the constraints.)111.6 459 R(Ev)6.167 E .167(en though their o)
-.18 F -.18(ve)-.18 G .167(rall approach is po).18 F .167
(werful and yields accurate)-.3 F
(WCET bounds, the ILP phase may be inef)111.6 485 Q
(\214cient to implement in practice.)-.3 E 1.47(Much tighter bounds on \
the WCET and BCET can result when a timing analyzer)132.6 511 R 4.714(i\
ncorporates information about the program related to loop iteration and\
branch)111.6 537 R 3.339(constraints. All)111.6 563 R .339
(of the approaches thus f)3.339 F .34(ar proposed to e)-.12 F .34
(xtend timing analysis to include)-.18 F 2.255(the e)111.6 589 R 2.255
(xploitation of constraints ha)-.18 F 2.615 -.18(ve e)-.24 H 2.255
(ither required the user to enter this information).18 F(manually)111.6
615 Q 7.272(,a)-.78 G 4.272(nd/or required signi\214cant analysis o)
-7.272 F -.18(ve)-.18 G 7.272(rhead. It).18 F -.12(wo)7.272 G 4.272
(uld be much more).12 F(con)111.6 641 Q -.18(ve)-.48 G .606(nient for t\
he user if a timing analyzer could automate the process of detecting an\
d).18 F -.18(ex)111.6 667 S 1.166(ploiting such constraints in an ef).18
F 1.166(\214cient manner)-.3 F 7.166(.T)-.66 G 1.166
(his is the major moti)-7.166 F -.3(va)-.3 G 1.166(tion of this).3 F
(dissertation.)111.6 693 Q(5)322.8 725.04 Q EP
%%Page: 6 8
%%BeginPageSetup
BP
%%EndPageSetup
/F0 16/Times-Roman@0 SF(CHAPTER 3)283.352 167 Q(FRAMEW)194.984 206 Q
(ORK FOR THE RESEARCH)-.16 E/F1 12/Times-Roman@0 SF .805
(The timing analyzer described in this dissertation is part of a softw)
111.6 245 R .804(are package that has)-.12 F 1.402(been under de)111.6
271 R -.18(ve)-.3 G 1.402(lopment by se).18 F -.18(ve)-.3 G 1.402
(ral researchers o).18 F -.18(ve)-.18 G 4.402(rt).18 G 1.402(he past fe)
-4.402 F 4.402(wy)-.3 G 4.402(ears. This)-4.402 F(package)4.402 E 1.232
(consists of an optimizing compiler called)111.6 297 R/F2 12
/Times-Italic@0 SF(vpo)4.232 E F1 1.232
([22], a static instruction cache simulator)4.232 F 1.139
(and a timing analyzer with a graphical user interf)111.6 323 R 4.139
(ace. Figure)-.12 F 4.139(1d)4.139 G 1.139(epicts an o)-4.139 F -.18(ve)
-.18 G(rvie).18 E 4.14(wo)-.3 G(f)-4.14 E 1.079
(the approach for predicting the e)111.6 349 R -.18(xe)-.18 G 1.079
(cution time of code se).18 F 1.079(gments or entire programs on)-.18 F
.503(machines with pipelines and instruction caches.)111.6 375 R -.96
(Ta)6.503 G .503(ble 1 outlines the w).96 F .503(ork that has been)-.12
F(accomplished for the timing analysis en)111.6 401 Q(vironment.)-.48 E
(Control-\215o)126.6 427 Q 7.982(wi)-.3 G 4.982
(nformation, which could ha)-7.982 F 5.341 -.18(ve a)-.24 H 4.981
(lso been obtained by analyzing).18 F .652
(assembly or object \214les, is stored as the side ef)111.6 453 R .652
(fect of)-.3 F F2(vpo)3.652 E F1 1.972 -.66('s c)D .652
(ompilation of one or more).66 F 5.129(Cs)111.6 479 S 2.129
(ource \214les.)-5.129 F 2.129(This control-\215o)8.129 F 5.129(wi)-.3 G
2.129(nformation is passed to the static cache simulator)-5.129 F(,)-.48
E 1.956(which ultimately cate)111.6 505 R 1.956
(gorizes each instruction')-.18 F 4.956(sp)-.66 G 1.956
(otential caching beha)-4.956 F 1.956(vior based on a)-.24 F .44 LW
398.736 576.256 417.6 592.456 DL 398.736 576.256 MT 6.624 3.312 RL
-2.376 2.736 RL CL BL 398.736 576.256 MT 6.624 3.312 RL -2.376 2.736 RL
CL ST 433.8 570.856 471.6 592.456 DL 433.8 570.856 MT 7.128 2.016 RL
-1.8 3.096 RL CL BL 433.8 570.856 MT 7.128 2.016 RL -1.8 3.096 RL CL ST
48.6 37.8 309.564 605.92 DE ST 81 32.4 404.028 560.056 DE ST 142.2
570.856 147.6 570.856 DL 142.2 541.192 142.2 570.856 DL 185.4 541.192
142.2 541.192 DL 185.4 546.592 185.4 541.192 DL 274.464 565.456 279.936
565.456 DL 274.464 535.72 274.464 565.456 DL 331.2 535.72 274.464 535.72
DL 331.2 541.192 331.2 535.72 DL 136.8 565.456 142.2 565.456 DL 136.8
535.72 136.8 565.456 DL 180 535.72 136.8 535.72 DL 180 541.192 180
535.72 DL 274.464 560.056 255.6 560.056 DL 274.464 560.056 MT -7.2 1.8
RL 0 -3.6 RL CL BL 274.464 560.056 MT -7.2 1.8 RL 0 -3.6 RL CL ST
279.936 568.192 285.336 568.192 DL 279.936 541.192 279.936 568.192 DL
336.6 541.192 279.936 541.192 DL 336.6 546.592 336.6 541.192 DL 333.936
605.92 358.2 605.92 DL 358.2 605.92 MT -7.2 1.8 RL 0 -3.6 RL CL BL 358.2
605.92 MT -7.2 1.8 RL 0 -3.6 RL CL ST 212.4 560.056 190.8 560.056 DL
212.4 560.056 MT -7.2 1.8 RL 0 -3.6 RL CL BL 212.4 560.056 MT -7.2 1.8
RL 0 -3.6 RL CL ST 385.2 592.456 385.2 574.096 DL 385.2 574.096 MT 1.8
7.2 RL -3.6 0 RL CL BL 385.2 574.096 MT 1.8 7.2 RL -3.6 0 RL CL ST 309.6
587.056 309.6 573.52 DL 309.6 587.056 MT -1.8 -7.2 RL 3.6 0 RL CL BL
309.6 587.056 MT -1.8 -7.2 RL 3.6 0 RL CL ST 285.336 605.92 258.336
605.92 DL 285.336 605.92 MT -7.2 1.8 RL 0 -3.6 RL CL BL 285.336 605.92
MT -7.2 1.8 RL 0 -3.6 RL CL ST 471.6 560.056 444.6 560.056 DL 471.6
560.056 MT -7.2 1.8 RL 0 -3.6 RL CL BL 471.6 560.056 MT -7.2 1.8 RL 0
-3.6 RL CL ST 363.6 560.056 342 560.056 DL 363.6 560.056 MT -7.2 1.8 RL
0 -3.6 RL CL BL 363.6 560.056 MT -7.2 1.8 RL 0 -3.6 RL CL ST 43.2 32.4
234 560.056 DE ST 404.064 547.456 404.064 543.856 DL 404.064 554.656
404.064 551.056 DL 404.064 561.856 404.064 558.256 DL 404.064 569.056
404.064 565.456 DL 404.064 576.256 404.064 572.656 DL 190.8 573.376 MT 0
-27.36 RL -43.2 0 RL 0 27.36 RL CL ST 342 573.376 MT 0 -27.36 RL -56.88
0 RL 0 27.36 RL CL ST 514.8 573.376 MT 0 -27.36 RL -43.2 0 RL 0 27.36 RL
CL ST 258.48 619.456 MT 0 -27.36 RL -48.96 0 RL 0 27.36 RL CL ST 411.84
619.456 MT 0 -27.36 RL -54 0 RL 0 27.36 RL CL ST 460.8 619.456 MT 0
-27.36 RL -43.2 0 RL 0 27.36 RL CL ST 514.8 619.456 MT 0 -27.36 RL -43.2
0 RL 0 27.36 RL CL ST/F3 8/Times-Roman@0 SF(Con\214guration)211.776
614.892 Q(Caching)371.868 608.832 Q(Simulator)293.82 619.632 Q(Cache)
299.604 608.832 Q(Static)300.488 598.032 Q/F4 8/Times-Bold@0 SF
(Compiler)217.78 562.896 Q F3(Source)158.092 562.896 Q(Interf)408.828
568.296 Q(ace)-.08 E(User)415.448 557.496 Q -.28(Ti)481.56 557.496 S
(ming).28 E(Predictions)475.2 568.296 Q F4 -.144(Ti)372.824 557.496 S
(ming).144 E(Analyzer)369.648 568.296 Q F3(and)289.78 562.896 Q F4
(Constraint)2 E F3(Files)161.42 571.032 Q(C)166.532 554.832 Q
(Control Flo)293.652 554.832 Q(w)-.2 E(Information)295.892 571.032 Q
(Cache)224.004 603.432 Q(Cate)360.152 616.896 Q(gorizations)-.12 E
(Instruction)367.868 600.696 Q(Dependent)421.872 608.832 Q -.28(Ti)
481.56 608.832 S(ming).28 E(Machine)425.204 600.696 Q(Information)
420.092 616.896 Q(User)485.648 600.696 Q(Requests)478.756 616.896 Q F1
(Figure 1: Ov)189.666 644.296 Q(ervie)-.18 E 3(wo)-.3 G 3(ft)-3 G(he T)
-3 E(iming Analysis En)-.42 E(vironment)-.48 E(6)322.8 725.04 Q EP
%%Page: 7 9
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF -.96(Ta)204.66 108.4 S(ble 1: W).96 E
(ork Accomplished for T)-.96 E(iming Analyzer)-.42 E .44 LW 539.997
124.55 111.603 124.55 DL/F1 11/Helvetica@0 SF 20.693(Module Lines)
119.936 137.64 R(Student Contr)24.285 E(ib).165 E 87.789(utors Pur)-.22
F(pose).33 E 539.997 143.83 111.603 143.83 DL 539.997 145.83 111.603
145.83 DL(Pro)350.587 158.92 Q(vides inf)-.165 E -2.783(or mation)-.33 F
(on control \215o)3.058 E -.66(w,)-.165 G(loop iter)350.587 173.32 Q
(ations and br)-.11 E(anch)-.11 E(constr)350.587 187.72 Q(aints)-.11 E
(.)-.165 E/F2 11/Times-Italic@0 SF(compiler)118.418 173.32 Q F1(64,000)
18.559 E 539.997 193.91 111.603 193.91 DL(Pro)350.587 207 Q(vides instr)
-.165 E(uction cache).165 E F2(static)126.052 221.4 Q F1 -2.893
(categor izations)200.698 F(.)-.165 E -2.178 -.495(Fr a)226.744 214.2 T
(nk Mueller).495 E F2(cac)125.227 235.8 Q 539.997 233.05 218.822 233.05
DL(he)140.33 235.8 Q(simulator)116.884 250.2 Q F1(Pro)191.529 E
(vides the data cache)-.165 E -2.893(categor izations)350.587 264.6 R(.)
-.165 E(Randall White)226.744 257.4 Q(15,000)176.082 235.8 Q 539.997
270.79 111.603 270.79 DL(Bounds e)350.587 283.88 Q -.33(xe)-.33 G
(cution time based on).33 E -2.893(instr uction)350.587 298.28 R
(cache perf)3.058 E -2.783(or mance)-.33 F(.)-.165 E -2.618(Rober t)
226.744 291.08 R -2.783(Ar nold)3.058 F 539.997 303.03 218.822 303.03 DL
F2(timing)123.913 314.68 Q F1(Bounds e)198.558 E -.33(xe)-.33 G
(cution time based on).33 E F2(analyzer)119.029 329.08 Q F1
(pipelining, wr)193.674 E(ap-around-\214le cache)-.11 E(,)-.165 E
(loop iter)350.587 343.48 Q(ation and br)-.11 E(anch constr)-.11 E
(aints)-.11 E(.)-.165 E -2.893(Chr istopher)226.744 329.08 R(Healy)3.058
E 539.997 348.23 218.822 348.23 DL(Bounds e)350.587 359.88 Q -.33(xe)
-.33 G(cution time bases on data).33 E(caching.)350.587 374.28 Q
(Randall White)226.744 367.08 Q(19,000)176.082 329.08 Q 539.997 380.47
111.603 380.47 DL F2(user)128.5 393.56 Q F1(Lo K)79.302 E 90.744 -.44
(o, P)-.44 H(ro).44 E(vides WCET and BCET f)-.165 E(or user-)-.33 E F2
(interface)118.418 407.96 Q F1(Emily Ratliff)69.221 E 63.057(,s)-.33 G
(elected code por)-63.057 E(tions).44 E 6.116(.W)-.165 G -2.783(ar ns)
-6.556 F(user if)3.058 E(Nagham Al-Y)226.744 422.36 Q 23.897
(aqoubi timing)-1.54 F(constr)3.058 E(aints can be violated.)-.11 E
(10,000)176.082 407.96 Q 539.997 427.11 111.603 427.11 DL 342.665 124.55
342.665 427.11 DL 218.822 124.55 218.822 427.11 DL 166.979 124.55
166.979 427.11 DL 539.997 124.55 539.997 427.11 DL 111.603 124.55
111.603 427.11 DL F0(gi)111.6 465.96 Q -.18(ve)-.3 G 4.822(nc).18 G
1.822(ache con\214guration.)-4.822 F 1.822(The caching beha)7.822 F
1.822(vior of an instruction is assigned one of)-.24 F .048(four cate)
111.6 491.96 R .048(gories, described in T)-.18 F .048
(ables 2 and 3, for each loop le)-.96 F -.18(ve)-.3 G 3.048(li).18 G
3.048(nw)-3.048 G .048(hich an instruction is)-3.048 F 5.193
(contained. The)111.6 517.96 R 2.193
(theory and implementation of static cache simulation is described in)
5.193 F 2.545(more detail else)111.6 543.96 R 2.546
(where [21, 23, 2, 24, 25].)-.3 F 2.546
(The timing analyzer uses the instruction)8.546 F .723(caching cate)
111.6 569.96 R .723(gorizations to determine whether an instruction fet\
ch should be treated as a)-.18 F .36
(hit or a miss during the pipeline analysis of a path.)111.6 595.96 R
.36(The timing analyzer also reads a \214le)6.36 F 2.206
(that speci\214es the hardw)111.6 621.96 R(are')-.12 E 5.206(si)-.66 G
2.206(nstruction set pipeline characteristics in order to detect)-5.206
F(structural and data hazards between instructions.)111.6 647.96 Q(Gi)
126.6 673.96 Q -.18(ve)-.3 G 4.552(nap).18 G(rogram')-4.552 E 4.552(sc)
-.66 G(ontrol-\215o)-4.552 E 4.552(wi)-.3 G 1.553
(nformation and instruction caching cate)-4.552 F(gorizations)-.18 E(7)
322.8 725.04 Q EP
%%Page: 8 10
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF -.96(Ta)187.866 122.8 S
(ble 2: De\214nitions of W).96 E(orst-Case Instruction Cate)-.96 E
(gories)-.18 E .44 LW 518.899 141.83 132.7 141.83 DL/F1 11/Helvetica@0
SF -2.893(Instr uction)138.2 153.96 R -2.728(Categor y)3.058 F
(De\214nition According to Beha)16.5 E(vior in Instr)-.22 E
(uction Cache).165 E 518.899 159.95 132.7 159.95 DL/F2 11/Times-Bold@0
SF(always miss)160.007 170.84 Q F1 3.498(The instr)253.623 170.84 R
3.498(uction is not guar).165 F 3.498(anteed to be in cache)-.11 F
(when it is ref)253.623 183.24 Q(erenced.)-.33 E 518.899 189.23 132.7
189.23 DL F2(always hit)162.449 200.12 Q F1 1.27(The instr)253.623
200.12 R 1.269(uction is guar).165 F 1.269(anteed to alw)-.11 F -.33(ay)
-.165 G 4.327(sb).33 G 4.327(ei)-4.327 G 4.327(nc)-4.327 G(ache)-4.327 E
(when it is ref)253.623 212.52 Q(erenced.)-.33 E 518.899 218.51 132.7
218.51 DL F2(\214rst miss)166.426 229.4 Q F1 1.41(The instr)253.623
229.4 R 1.41(uction is not guar).165 F 1.411(anteed to be in cache on)
-.11 F .739(its \214rst ref)253.623 241.8 R .738
(erence each time the loop is e)-.33 F -.33(xe)-.33 G .738(cuted, b).33
F(ut)-.22 E 2.183(is guar)253.623 254.2 R 2.184
(anteed to be in cache on subsequent ref)-.11 F(er-)-.33 E(ences)253.623
266.6 Q(.)-.165 E 518.899 272.59 132.7 272.59 DL F2(\214rst hit)170.397
283.48 Q F1 1.888(The instr)253.623 283.48 R 1.887(uction is guar).165 F
1.887(anteed to be in cache on its)-.11 F 1.078(\214rst ref)253.623
295.88 R 1.078(erence each time the loop is e)-.33 F -.33(xe)-.33 G
1.078(cuted, b).33 F 1.078(ut is)-.22 F 1.265(not guar)253.623 308.28 R
1.265(anteed to be in cache on subsequent ref)-.11 F(er-)-.33 E(ences)
253.623 320.68 Q(.)-.165 E 518.899 326.67 132.7 326.67 DL 245.373 141.83
245.373 326.67 DL 518.899 141.83 518.899 326.67 DL 132.7 141.83 132.7
326.67 DL F0 -.96(Ta)191.382 358.72 S
(ble 3: De\214nitions of Best-Case Instruction Cate).96 E(gories)-.18 E
518.899 377.75 132.7 377.75 DL F1 -2.893(Instr uction)138.2 389.88 R
-2.728(Categor y)3.058 F(De\214nition According to Beha)16.5 E
(vior in Instr)-.22 E(uction Cache).165 E 518.899 395.87 132.7 395.87 DL
F2(always miss)160.007 406.76 Q F1 3.498(The instr)253.623 406.76 R
3.498(uction is guar).165 F 3.498(anteed to not be in cache)-.11 F
(when it is ref)253.623 419.16 Q(erenced.)-.33 E 518.899 425.15 132.7
425.15 DL F2(always hit)162.449 436.04 Q F1 .258(The instr)253.623
436.04 R .258(uction ma).165 F 3.316(yb)-.33 G 3.316(ei)-3.316 G 3.315
(nc)-3.316 G .257(ache e)-3.315 F -.275(ve)-.33 G -.403 .33(ry t).275 H
.257(ime it is ref)-.33 F(er-)-.33 E(enced.)253.623 448.44 Q 518.899
454.43 132.7 454.43 DL F2(\214rst miss)166.426 465.32 Q F1 1.41
(The instr)253.623 465.32 R 1.41(uction is guar).165 F 1.411
(anteed to not be in cache on)-.11 F .739(its \214rst ref)253.623 477.72
R .738(erence each time the loop is e)-.33 F -.33(xe)-.33 G .738
(cuted, b).33 F(ut)-.22 E(ma)253.623 490.12 Q 3.058(yb)-.33 G 3.058(ei)
-3.058 G 3.058(nc)-3.058 G(ache on subsequent ref)-3.058 E(erences)-.33
E(.)-.165 E 518.899 496.11 132.7 496.11 DL F2(\214rst hit)170.397 507 Q
F1 .592(The instr)253.623 507 R .592(uction ma).165 F 3.651(yb)-.33 G
3.651(ei)-3.651 G 3.651(nc)-3.651 G .593(ache on its \214rst ref)-3.651
F(erence)-.33 E .983(each time the loop is e)253.623 519.4 R -.33(xe)
-.33 G .983(cuted, b).33 F .982(ut is guar)-.22 F .982(anteed to)-.11 F
(not be in cache on subsequent ref)253.623 531.8 Q(erences)-.33 E(.)
-.165 E 518.899 537.79 132.7 537.79 DL 245.373 377.75 245.373 537.79 DL
518.899 377.75 518.899 537.79 DL 132.7 377.75 132.7 537.79 DL F0 1.175
(along with the processor')111.6 568.44 R 4.175(si)-.66 G 1.175
(nstruction set information, the timing analyzer then deri)-4.175 F -.18
(ve)-.3 G(s).18 E .662(best-case and w)111.6 594.44 R .662(orst-case es\
timates for each path, loop and function within the program.)-.12 F
4.056(At)111.6 620.44 S 1.055(iming analysis tree is constructed, where\
the each node of the tree corresponds to a)-4.056 F(8)322.8 725.04 Q EP
%%Page: 9 11
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF .224
(loop or function in the function instance graph.)111.6 95 R .224
(Each node is considered a natural loop.)6.224 F/F1 10/Times-Roman@0 SF
(1)-6 I F0 4.444(An)111.6 121 S 1.444(ode that represents a function in\
stance is treated as a loop that will iterate e)-4.444 F(xactly)-.18 E
.939(once when entered.)111.6 147 R .938
(The loops in the timing analysis tree are processed in a bottom-up)
6.939 F(manner)111.6 173 Q 7.505(.I)-.66 G 4.505(no)-7.505 G 1.505
(ther w)-4.505 F 1.506
(ords, the WCET and BCET for a loop are not calculated until the)-.12 F
3.099(times for all of its immediate child loops are kno)111.6 199 R
6.098(wn. This)-.3 F 3.098(means that the timing)6.098 F .832
(analyzer determines e)111.6 225 R -.18(xe)-.18 G .832
(cution time for programs by \214rst analyzing the innermost loops).18 F
3.439(and functions, and proceeding to higher le)111.6 251 R -.18(ve)-.3
G 6.439(ll).18 G 3.439(oops and functions until it reaches)-6.439 F/F2
12/Courier@0 SF(main\(\))111.6 277 Q F0(.)A .462(The v)126.6 303 R .463
(ersion of the timing analyzer described in this dissertation is an e)
-.18 F .463(xtension of an)-.18 F .595(earlier timing tool)111.6 329 R
.595
([25, 2, 26] that bounded instruction cache and pipeline performance.)
6.595 F .008(When the timing analyzer has completed its analysis, it in)
111.6 355 R -.24(vo)-.48 G -.12(ke).24 G 3.009(sag).12 G .009
(raphical user interf)-3.009 F(ace)-.12 E 2.289([27] allo)111.6 381 R
2.288
(wing the user to request timing bounds for portions of the program.)-.3
F(These)8.288 E 2.485(portions may be at an)111.6 407 R 5.485(yo)-.18 G
2.485(ne of se)-5.485 F -.18(ve)-.3 G 2.486(ral le).18 F -.18(ve)-.3 G
2.486(ls of the analysis:).18 F 2.486(the entire program, a)8.486 F
2.926(function, loop, code section, path, sub-path or ranges of instruc\
tions.)111.6 433 R 2.926(Some of the)8.926 F .433
(research that has been associated with the timing analyzer)111.6 459 R
3.433(,t)-.48 G .433(hough not directly related to)-3.433 F 4.678(this \
dissertation, includes analysis of data caches [28, 29, 10], wrap-aroun\
d \214ll)111.6 485 R .546
(instruction caches [10] and partitioning control \215o)111.6 511 R
3.546(wi)-.3 G 3.547(nc)-3.546 G .547(ases where the number of paths)
-3.547 F .751(is arbitrarily lar)111.6 537 R .751(ge [30].)-.216 F .751
(Excerpts of this dissertation, including a concise description of)6.751
F(the algorithm and results, can be found in [31, 32].)111.6 563 Q 3.054
(Ad)126.6 589 S .055
(escription of the programs used to test the timing analyzer is gi)
-3.054 F -.18(ve)-.3 G 3.055(ni).18 G 3.055(nT)-3.055 G .055(able 4.)
-4.015 F(Six)6.055 E 2.522(of these programs,)111.6 615 R/F3 12
/Times-Italic@0 SF(Des)5.522 E F0(,)A F3(Matcnt)5.522 E F0(,)A F3
(Matsum)5.522 E F0(,)A F3(Matmul)5.522 E F0(,)A F3(Sort)5.522 E F0(and)
5.522 E F3(Stats)5.522 E F0 5.522(,w)C 2.521(ere used in the)-5.522 F
.32 LW 115.6 631.268 111.6 631.268 DL 119.6 631.268 115.6 631.268 DL
123.6 631.268 119.6 631.268 DL 127.6 631.268 123.6 631.268 DL 131.6
631.268 127.6 631.268 DL 135.6 631.268 131.6 631.268 DL 139.6 631.268
135.6 631.268 DL 143.6 631.268 139.6 631.268 DL 147.6 631.268 143.6
631.268 DL 151.6 631.268 147.6 631.268 DL 155.6 631.268 151.6 631.268 DL
159.6 631.268 155.6 631.268 DL 163.6 631.268 159.6 631.268 DL 167.6
631.268 163.6 631.268 DL 171.6 631.268 167.6 631.268 DL 175.6 631.268
171.6 631.268 DL 179.6 631.268 175.6 631.268 DL 183.6 631.268 179.6
631.268 DL 187.6 631.268 183.6 631.268 DL 191.6 631.268 187.6 631.268 DL
195.6 631.268 191.6 631.268 DL 199.6 631.268 195.6 631.268 DL 203.6
631.268 199.6 631.268 DL 207.6 631.268 203.6 631.268 DL 211.6 631.268
207.6 631.268 DL 215.6 631.268 211.6 631.268 DL 219.6 631.268 215.6
631.268 DL 223.6 631.268 219.6 631.268 DL 227.6 631.268 223.6 631.268 DL
231.6 631.268 227.6 631.268 DL 235.6 631.268 231.6 631.268 DL 239.6
631.268 235.6 631.268 DL 243.6 631.268 239.6 631.268 DL 247.6 631.268
243.6 631.268 DL 251.6 631.268 247.6 631.268 DL 255.6 631.268 251.6
631.268 DL/F4 6/Times-Roman@0 SF(1)133.2 636.88 Q/F5 8/Times-Roman@0 SF
2.023(An)2.023 4 O .023
(atural loop is a loop with a single entry block.)-2.023 F .024(While t\
he static simulator can process unnatural loops, the timing analyzer)
4.023 F .563(is restricted to only analyzing natural loops since it w)
111.6 650.48 R .563(ould be dif)-.08 F .563
(\214cult for both the timing analyzer and user to determine the set of)
-.2 F .111(possible blocks associated with a single iteration in an unn\
atural loop.)111.6 660.08 R .111
(It should be noted that unnatural loops occur quite infrequent-)4.111 F
(ly)111.6 669.68 Q(.)-.52 E F0(9)322.8 725.04 Q EP
%%Page: 10 12
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 1.035(results of the original timing analyzer)
111.6 95 R 7.036(.T)-.66 G 1.036
(he remaining programs were added to the test)-7.036 F .458
(suite to illustrate situations of v)111.6 121 R .458
(arious constraints that are described in Chapters 4 and 5.)-.3 F 1.443
(The programs printed in boldf)111.6 147 R 1.443(ace in T)-.12 F 1.443
(able 4 are published in)-.96 F/F1 12/Times-Italic@0 SF 1.444
(Numerical Recipes in C)4.444 F F0 1.367([33, 34].)111.6 173 R 1.366(Th\
e code size of all programs ranged from 22 to 668 assembly instructions\
,)7.367 F 1.641(with an a)111.6 199 R -.18(ve)-.24 G 1.641
(rage of 211 instructions.).18 F 1.642(The reason wh)7.641 F 4.642(yt)
-.06 G 1.642(he programs in the test set are)-4.642 F(relati)111.6 225 Q
-.18(ve)-.3 G .279(ly small w).18 F .279(as so that it w)-.12 F .278
(ould be feasible for the author to determine manually the)-.12 F
(actual w)111.6 251 Q(orst-case and best-case input data.)-.12 E -.18
(Fo)126.6 277 S 3.765(re).18 G .766(ach program a direct-mapped instruc\
tion cache con\214guration containing 8 lines)-3.765 F .761
(of 16 bytes w)111.6 303 R .761(as used.)-.12 F .76(It w)6.76 F .76
(as assumed that a cache hit required one c)-.12 F .76
(ycle, a cache miss)-.18 F 1.157(required ten c)111.6 329 R 1.158
(ycles, and all data cache references were assumed to be hits.)-.18 F
1.158(This is the)7.158 F .881
(same cache con\214guration that has been used in se)111.6 355 R -.18
(ve)-.3 G .881(ral pre).18 F .881(vious timing analysis studies)-.3 F
-.96(Ta)270.54 392.78 S(ble 4: T).96 E(est Programs)-.84 E .36 LW
525.298 409.63 126.301 409.63 DL/F2 9/Helvetica@0 SF 138.415(Name Descr)
145.066 420.03 R(iption or Emphasis).135 E 525.298 425.93 126.301 425.93
DL/F3 9/Helvetica-Bold@0 SF(Des)130.801 435.78 Q F2 -2.232(Encr ypts)
49.527 F(and decr)2.502 E(ypts 64 bits).27 E F3(Expint)130.801 446.78 Q
F2(Computes an e)38.529 E(xponential integ)-.27 E -.09(ra)-.09 G(l).09 E
F3(Fresnel)130.801 457.78 Q F2(Computes non-comple)34.02 E 2.502(xF)-.27
G(resnel integ)-2.907 E -.09(ra)-.09 G(ls).09 E F3(Gaujac)130.801 468.78
Q F2(Computes Abscissas and W)36.018 E(eights of a 10 point Gauss-J)-.27
E(acobi quadr)-.18 E(ature f)-.09 E -2.277(or m)-.27 F(ula)-.09 E F3
(Hes)130.801 479.78 Q F2(Reduces a 100x100 matr)49.527 E
(ix to Hessenberg f).135 E -2.277(or m)-.27 F 43.515(Integ Ev)130.801
490.78 R(aluates a doub)-.225 E(le integ)-.18 E -.09(ra)-.09 G 2.502(lo)
.09 G -.225(ve)-2.637 G 2.502(rat).225 G -.09(ra)-2.502 G(pez).09 E
(oidal region)-.135 E F3(Interp)130.801 501.78 Q F2 -.45(Po)41.031 G
(lynomial inter).45 E(polation of 500 points).27 E F3(LU)130.801 512.78
Q F2 -.45(Pe)54.036 G(rf).45 E -2.277(or ms)-.27 F
(LU Decomposition on a 100x100 matr)2.502 E(ix).135 E 36.522
(Matcnt Counts)130.801 523.78 R(and sums nonnegativ)2.502 E 2.502(ev)
-.225 G(alues in a 100x100 integer matr)-2.727 E(ix).135 E(Matm)130.801
534.78 Q 34.119(ul Multiplies)-.09 F(tw)2.502 E 2.502(o5)-.09 G
(0x50 integer matr)-2.502 E(ices).135 E 31.527(Matsum Sums)130.801
545.78 R(nonnegativ)2.502 E 2.502(ev)-.225 G
(alues in a 100x100 integer matr)-2.727 E(ix).135 E -2.142(Sor t)130.801
556.78 R(Bub)49.167 E -.18(bl)-.09 G -2.142(esor t).18 F(arr)2.502 E .54
-.27(ay o)-.09 H 2.502(f5).27 G(00 integers into ascending order)-2.502
E F3(Spr)130.801 567.78 Q(sin)-.135 E F2(Con)38.16 E -.225(ve)-.18 G .36
(rt).225 G 2.502(sa2)-.36 G(0x20 integer matr)-2.502 E(ix into ro).135 E
(w-inde)-.135 E 2.502(xs)-.27 G(parse stor)-2.502 E(age mode)-.09 E
43.02(Stats Std.)130.801 578.78 R(de)2.502 E 1.44 -.72(v. & c)-.27 H
(orr).72 E 2.502(.c)-.45 G(oef)-2.502 E 2.502(.o)-.27 G 2.502(ft)-2.502
G .18 -.09(wo a)-2.502 H(rr).09 E -.27(ay)-.09 G 2.502(so).27 G 2.502
(f1)-2.502 G(000 \215oating point v)-2.502 E(alues)-.225 E 21.528
(Summidall Sums)130.801 589.78 R
(the middle half and all elements of a 1000 integer v)2.502 E(ector)
-.225 E 13.527(Summinmax Sums)130.801 600.78 R
(the min. and max. of corresponding elements of tw)2.502 E 2.502(o1)-.09
G(000 element v)-2.502 E(ectors)-.225 E 15.507(Sumnegpos Sums)130.801
611.78 R(the negativ)2.502 E .27 -.135(e, p)-.225 H(ositiv).135 E 2.502
(ea)-.225 G(nd all elements of a 1000 integer v)-2.502 E(ector)-.225 E
(Sumodde)130.801 622.78 Q -.225(ve)-.27 G 13.5(nS).225 G
(ums the odd and e)-13.5 E -.225(ve)-.27 G 2.502(nn).225 G
(umbered elements of a 1000 integer v)-2.592 E(ector)-.225 E 45.531
(Sym T)130.801 633.78 R(ests if a 500x500 matr)-1.08 E(ix is symmetr)
.135 E(ic).135 E 525.298 639.13 126.301 639.13 DL 190.084 409.63 190.084
639.13 DL 525.298 409.63 525.298 639.13 DL 126.301 409.63 126.301 639.13
DL F0(10)319.8 725.04 Q EP
%%Page: 11 13
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF([25, 26, 31].)111.6 95 Q 1.223
(The implementation of the timing analysis en)126.6 121 R 1.223
(vironment includes about 19,000 lines)-.48 F .764(of C source code in \
the timing analyzer itself \(14,000 written by the author\), plus other)
111.6 147 R 1.718(modules depicted in Figure 1.)111.6 173 R 1.718
(The compiler)7.718 F 4.718(,s)-.48 G 1.718
(tatic cache simulator and the algebraic)-4.718 F(solv)111.6 199 Q 1.372
(er were implemented by other researchers at FSU.)-.18 F 3.292 -.96
(To o)7.372 H 1.372(btain results that inte).96 F(grate)-.18 E 1.371
(instruction cache and pipeline ef)111.6 225 R 1.371
(fects, the author had pre)-.3 F 1.372(viously amended a traditional)-.3
F(cache simulator [35].)111.6 251 Q
(This modi\214cation required about 2,000 lines of source code.)6 E
1.466(Assessing the accurac)126.6 277 R 4.465(yo)-.18 G 4.465(ft)-4.465
G 1.465(he timing analyzer w)-4.465 F 1.465
(as accomplished by comparing the)-.12 F 4.014(timing analyzer')111.6
303 R 7.014(s\()-.66 G 4.014(static\) prediction with the simulator')
-7.014 F 7.014(s\()-.66 G 4.014(dynamic\) measurements.)-7.014 F .659
(Since the e)111.6 329 R -.18(xe)-.18 G .659(cution time of dif).18 F
.658(ferent programs can dif)-.3 F .658(fer widely)-.3 F 3.658(,i)-.78 G
3.658(ti)-3.658 G 3.658(su)-3.658 G .658(seful to consider)-3.658 F(the)
111.6 355 Q/F1 12/Times-Italic@0 SF -.18(ra)3.741 G(tio).18 E F0 .741
(of the timing analyzer')3.741 F 3.741(se)-.66 G .741(stimated c)-3.741
F .741(ycle time to the simulator')-.18 F 3.742(so)-.66 G(bserv)-3.742 E
.742(ed time.)-.18 F 3.231
(Of course, the best possible timing prediction w)111.6 381 R 3.23
(ould yield a ratio of 1, when the)-.12 F 1.162(estimated and observ)
111.6 407 R 1.162(ed times are the same.)-.18 F 1.162(In the w)7.162 F
1.162(orst-case analysis one \214nds ratios)-.12 F .482
(greater than one, meaning that the timing prediction is an o)111.6 433
R -.18(ve)-.18 G .482(restimate, being some).18 F(what)-.3 E 1.323
(pessimistic whene)111.6 459 R -.18(ve)-.3 G 4.323(rn).18 G 1.323
(ot being e)-4.323 F 4.324(xact. Analogously)-.18 F 4.324(,f)-.78 G
1.324(or best-case analysis, one should)-4.324 F 2.367(\214nd a ratio l\
ess than or equal to 1, indicating an underestimation of e)111.6 485 R
-.18(xe)-.18 G 2.366(cution time).18 F(whene)111.6 511 Q -.18(ve)-.3 G 3
(rt).18 G(he e)-3 E(xact time cannot be precisely determined.)-.18 E
-.96(Ta)126.6 537 S .489(ble 5 sho).96 F .489(ws the results for)-.3 F
F1(Cac)3.489 E .49(he Only)-.18 F F0 .49(analysis and T)3.49 F .49
(able 6 gi)-.96 F -.18(ve)-.3 G 3.49(st).18 G .49(he results when)-3.49
F 1.828(both caching and pipelining are analyzed.)111.6 563 R 1.828
(These results sho)7.828 F 4.828(wt)-.3 G 1.827(he state of the timing)
-4.828 F 2.374(analyzer before w)111.6 589 R 2.374
(ork on the dissertation w)-.12 F 2.374(as be)-.12 F 5.374(gun. T)-.18 F
5.374(or)-.96 G 2.374(ecognize the utility of the)-5.374 F 2.055
(timing analyzer)111.6 615 R 5.055(,o)-.48 G 2.055
(ne can compare its estimated ratio to a nai)-5.055 F 2.414 -.18(ve r)
-.3 H 5.054(atio: what).18 F 2.054(the ratio)5.054 F -.12(wo)111.6 641 S
1.593(uld ha).12 F 1.953 -.18(ve b)-.24 H 1.593
(een without performing an).18 F 4.593(ya)-.18 G 4.593(nalysis. T)-4.593
F 1.593(able 5 sho)-.96 F 1.593(ws that cache analysis)-.3 F 4.332
(can pro)111.6 667 R 4.332(vide much tighter bounds on the e)-.18 F -.18
(xe)-.18 G 4.332(cution time v).18 F 4.332(ersus the nai)-.18 F 4.692
-.18(ve r)-.3 H(atios.).18 E(11)319.8 725.04 Q EP
%%Page: 12 14
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF -.96(Ta)225.792 108.4 S
(ble 5: Results for Cache-Only Analysis).96 E .36 LW 500.143 128.85
151.456 128.85 DL/F1 9/Helvetica@0 SF -.27(Wo)285.929 138.7 S
(rst-Case Results).27 E 500.143 144.05 151.456 144.05 DL -2.232(Obser v)
224.977 153.9 R 27.616(ed Naiv)-.225 F 29.502(eN)-.225 G(aiv)-29.502 E
17.384(eC)-.225 G(ache Only)-17.384 E(Cache Only)15.012 E 31.536
(Cycles Cycles)231.007 164.9 R 25.776(Ratio Cycles)28.278 F(Ratio)38.025
E(Name)170.221 159.4 Q 500.143 170.25 151.456 170.25 DL 60.039
(Des 149,706)155.956 180.1 R 16.002(770,142 5.144)31.014 F 25.749
(398,604 2.663)31.014 F 56.034(Expint 58,217)155.956 191.1 R 10.998
(2,933,194 50.384)23.508 F 20.745(2,004,151 34.426)23.508 F -.405(Fr)
155.956 202.1 S 51.444(esnel 47,749).405 F 16.002(106,121 2.222)31.014 F
25.749(73,199 1.533)36.018 F 47.529(Gaujac 786,786)155.956 213.1 R
16.002(1,579,588 2.006)23.508 F 25.749(1,153,123 1.466)23.508 F 47.529
(Hes 55,834,609)155.956 224.1 R 10.998(686,873,410 12.302 404,879,389)
13.5 F(7.251)28.251 E 43.515(Integ 22,538,082)155.956 235.1 R 16.002
(99,585,206 4.419 54,544,607)18.504 F(2.420)28.251 E -2.232(Inter p)
155.956 246.1 R 10.998(25,469,403 107,183,344)42.75 F 16.002
(4.208 75,543,529)18.504 F(2.966)28.251 E 52.029(LU 23,055,832)155.956
257.1 R 10.998(791,692,885 34.338 420,919,578)13.5 F(18.257)23.247 E
41.526(Matcnt 1,769,321)155.956 268.1 R 16.002(6,525,017 3.688)23.508 F
25.749(3,262,463 1.844)23.508 F(Matm)155.956 279.1 Q 39.123
(ul 4,444,911)-.09 F 16.002(22,122,016 4.977)18.504 F 25.749
(9,370,402 2.108)23.508 F 36.531(Matsum 1,277,465)155.956 290.1 R 16.002
(5,214,645 4.082)23.508 F 25.749(2,401,380 1.880)23.508 F -2.142(Sor t)
155.956 301.1 R 16.002(7,672,281 80,913,015)54.171 F 16.002
(10.546 38,220,912)13.5 F(4.982)28.251 E 55.539(Sprsin 28,339)155.956
312.1 R 16.002(188,294 6.644)31.014 F 25.749(76,838 2.711)36.018 F
48.024(Stats 1,016,048)155.956 323.1 R 16.002(3,168,159 3.118)23.508 F
25.749(1,852,107 1.823)23.508 F 39.042(Summidall 15,340)155.956 334.1 R
10.998(212,207 13.834)31.014 F 25.749(104,108 6.787)31.014 F 31.041
(Summinmax 16,080)155.956 345.1 R 10.998(201,179 12.511)31.014 F 25.749
(102,089 6.349)31.014 F 33.021(Sumnegpos 11,067)155.956 356.1 R 10.998
(159,137 14.379)31.014 F 25.749(78,065 7.054)36.018 F(Sumodde)155.956
367.1 Q -.225(ve)-.27 G 31.014(n1).225 G 28.512(5,092 195,343)-31.014 F
33.516(12.943 96,181)13.5 F(6.373)28.251 E 50.535(Sym 2,747,654)155.956
378.1 R 10.998(71,752,986 26.114)18.504 F 25.749(24,673,698 8.980)18.504
F 500.143 382.35 151.456 382.35 DL -2.007 -.36(Av e)155.956 391.1 T -.09
(ra).36 G 35.694(ge 7,734,420).09 F 10.998(99,019,784 11.993)18.504 F
25.749(54,723,917 6.414)18.504 F 500.143 395.35 151.456 395.35 DL
500.143 397.35 151.456 397.35 DL 441.877 144.05 441.877 395.35 DL
378.337 144.05 378.337 395.35 DL 337.315 144.05 337.315 395.35 DL
273.775 144.05 273.775 395.35 DL 215.239 144.05 215.239 395.35 DL
(Best-Case Results)288.539 407.2 Q 500.143 412.55 151.456 412.55 DL
-2.232(Obser v)224.977 422.4 R 27.616(ed Naiv)-.225 F 29.502(eN)-.225 G
(aiv)-29.502 E 17.384(eC)-.225 G(ache Only)-17.384 E(Cache Only)15.012 E
31.536(Cycles Cycles)231.007 433.4 R 25.776(Ratio Cycles)28.278 F(Ratio)
38.025 E(Name)170.221 427.9 Q 500.143 438.75 151.456 438.75 DL 65.043
(Des 65,615)155.956 448.6 R 16.002(12,559 0.191)36.018 F 25.749
(19,183 0.292)36.018 F 68.544(Expint 125)155.956 459.6 R 16.002
(29 0.232)53.532 F 25.749(102 0.816)48.528 F -.405(Fr)155.956 470.6 S
63.954(esnel 181).405 F 16.002(43 0.238)53.532 F 25.749(151 0.834)48.528
F 52.533(Gaujac 45,270)155.956 481.6 R 16.002(12,117 0.268)36.018 F
25.749(34,104 0.753)36.018 F 60.039(Hes 306,733)155.956 492.6 R 16.002
(4,427 0.014)41.022 F 25.749(13,301 0.043)36.018 F 43.515
(Integ 19,160,842)155.956 503.6 R 16.002(2,510,015 0.131)23.508 F 25.749
(2,532,560 0.132)23.508 F -2.232(Inter p)155.956 514.6 R 33.516
(6,485,878 47,509)47.754 F 28.512(0.007 119,590)18.504 F(0.018)28.251 E
52.029(LU 12,883,939)155.956 525.6 R 16.002(216,528 0.017)31.014 F
25.749(232,782 0.018)31.014 F 41.526(Matcnt 1,549,095)155.956 536.6 R
16.002(383,241 0.247)31.014 F 25.749(1,020,783 0.659)23.508 F(Matm)
155.956 547.6 Q 39.123(ul 4,444,666)-.09 F 16.002(1,429,980 0.322)23.508
F 25.749(1,774,995 0.399)23.508 F 36.531(Matsum 1,257,239)155.956 558.6
R 16.002(323,214 0.257)31.014 F 25.749(957,111 0.761)31.014 F -2.142
(Sor t)155.956 569.6 R 38.52(19,966 9,600)66.681 F 38.52(0.481 9,888)
18.504 F(0.495)28.251 E 55.539(Sprsin 17,436)155.956 580.6 R 16.002
(7,313 0.419)41.022 F 25.749(15,701 0.900)36.018 F 55.53(Stats 607,399)
155.956 591.6 R 16.002(182,312 0.300)31.014 F 25.749(417,230 0.687)
31.014 F 39.042(Summidall 15,340)155.956 602.6 R 16.002(7,015 0.457)
41.022 F 25.749(7,069 0.461)41.022 F 31.041(Summinmax 13,080)155.956
613.6 R 16.002(12,013 0.918)36.018 F 25.749(12,058 0.922)36.018 F 38.025
(Sumnegpos 9,067)155.956 624.6 R 16.002(8,010 0.883)41.022 F 25.749
(8,037 0.886)41.022 F(Sumodde)155.956 635.6 Q -.225(ve)-.27 G 48.528(n9)
.225 G 53.532(45)-48.528 G 18.504(90)-53.532 G 51.03(.628 63)-18.504 F
(0.670)28.251 E 75.555(Sym 160)155.956 646.6 R 16.002(38 0.238)53.532 F
25.749(137 0.856)48.528 F 500.143 650.85 151.456 650.85 DL -2.007 -.36
(Av e)155.956 659.6 T -.09(ra).36 G 35.694(ge 2,467,480).09 F 16.002
(271,896 0.329)31.014 F 25.749(377,623 0.558)31.014 F 500.143 663.85
151.456 663.85 DL 500.143 666.95 151.456 666.95 DL 441.877 412.55
441.877 666.95 DL 378.337 412.55 378.337 666.95 DL 337.315 412.55
337.315 666.95 DL 273.775 412.55 273.775 666.95 DL 215.239 412.55
215.239 666.95 DL 500.143 128.85 500.143 666.95 DL 151.456 128.85
151.456 666.95 DL F0(12)319.8 725.04 Q EP
%%Page: 13 15
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF -.96(Ta)209.952 96.4 S
(ble 6: Results After Adding Pipeline Analysis).96 E .36 LW 509.769
113.25 141.831 113.25 DL/F1 9/Helvetica@0 SF -.27(Wo)285.93 123.1 S
(rst-Case Results).27 E 509.769 128.45 141.831 128.45 DL -2.232(Obser v)
215.352 138.3 R 15.498(ed Cache)-.225 F 12.51(Only Cache)2.502 F 12.631
(Only +)2.502 F 12.632(Pipelining +)2.502 F(Pipelining)2.502 E 31.536
(Cycles Cycles)221.382 149.3 R 35.523(Ratio Cycles)38.025 F(Ratio)37.903
E(Name)160.596 143.8 Q 509.769 154.65 141.831 154.65 DL 60.039
(Des 149,706)146.331 164.5 R 25.749(398,604 2.663)31.014 F 25.627
(172,509 1.152)40.761 F 56.034(Expint 58,217)146.331 175.5 R 20.745
(2,004,151 34.426)23.508 F 20.623(1,293290 22.215)35.757 F -.405(Fr)
146.331 186.5 S 51.444(esnel 47,749).405 F 25.749(73,199 1.533)36.018 F
25.627(48,887 1.024)45.765 F 47.529(Gaujac 786,786)146.331 197.5 R
25.749(1,153,123 1.466)23.508 F 25.627(790,116 1.004)40.761 F 47.529
(Hes 55,834,609)146.331 208.5 R 25.749(404,879,389 7.251)13.5 F 25.627
(130,574,296 2.339)23.247 F 43.515(Integ 22,538,082)146.331 219.5 R
25.749(54,544,607 2.420 30,023,163)18.504 F(1.332)28.129 E -2.232
(Inter p)146.331 230.5 R 16.002(25,469,403 75,543,529)42.75 F 25.749
(2.966 50,701,362)28.251 F(1.991)28.129 E 52.029(LU 23,055,832)146.331
241.5 R 20.745(420,919,578 18.257 124,577,237)13.5 F(5.403)28.129 E
41.526(Matcnt 1,769,321)146.331 252.5 R 25.749(3,262,463 1.844)23.508 F
25.627(1,861,150 1.052)33.255 F(Matm)146.331 263.5 Q 39.123
(ul 4,444,911)-.09 F 25.749(9,370,402 2.108)23.508 F 25.627
(4,448,212 1.001)33.255 F 36.531(Matsum 1,277,465)146.331 274.5 R 25.749
(2,401,380 1.880)23.508 F 25.627(1,279,322 1.001)33.255 F -2.142(Sor t)
146.331 285.5 R 16.002(7,672,281 38,220,912)54.171 F 25.749
(4.982 15,251,603)28.251 F(1.988)28.129 E 55.539(Sprsin 28,339)146.331
296.5 R 25.749(76,838 2.711)36.018 F 25.627(28,664 1.011)45.765 F 48.024
(Stats 1,016,048)146.331 307.5 R 25.749(1,852,107 1.823)23.508 F 25.627
(1,016,128 1.000)33.255 F 39.042(Summidall 15,340)146.331 318.5 R 25.749
(104,108 6.787)31.014 F 25.627(18,090 1.179)45.765 F 31.041
(Summinmax 16,080)146.331 329.5 R 25.749(102,089 6.349)31.014 F 25.627
(17,080 1.062)45.765 F 33.021(Sumnegpos 11,067)146.331 340.5 R 25.749
(78,065 7.054)36.018 F 25.627(13,068 1.181)45.765 F(Sumodde)146.331
351.5 Q -.225(ve)-.27 G 31.014(n1).225 G 33.516(5,092 96,181)-31.014 F
43.263(6.373 16,112)28.251 F(1.068)28.129 E 50.535(Sym 2,747,654)146.331
362.5 R 25.749(24,673,698 8.980)18.504 F 25.627(5,481,220 1.995)33.255 F
509.769 366.75 141.831 366.75 DL -2.007 -.36(Av e)146.331 375.5 T -.09
(ra).36 G 35.694(ge 7,734,420).09 F 25.749(54,723,917 6.414 19,347,974)
18.504 F(2.631)28.129 E 509.769 379.75 141.831 379.75 DL 509.769 381.75
141.831 381.75 DL 451.746 128.45 451.746 379.75 DL 388.206 128.45
388.206 379.75 DL 327.69 128.45 327.69 379.75 DL 264.15 128.45 264.15
379.75 DL 205.614 128.45 205.614 379.75 DL(Best-Case Results)288.54
391.6 Q 509.769 396.95 141.831 396.95 DL -2.232(Obser v)215.352 406.8 R
15.498(ed Cache)-.225 F 12.51(Only Cache)2.502 F 12.631(Only +)2.502 F
12.632(Pipelining +)2.502 F(Pipelining)2.502 E 31.536(Cycles Cycles)
221.382 417.8 R 35.523(Ratio Cycles)38.025 F(Ratio)37.903 E(Name)160.596
412.3 Q 509.769 423.15 141.831 423.15 DL 65.043(Des 65,615)146.331 433 R
25.749(19,183 0.292)36.018 F 25.627(22,247 0.339)45.765 F 68.544
(Expint 125)146.331 444 R 25.749(102 0.816)48.528 F 25.627(118 0.944)
58.275 F -.405(Fr)146.331 455 S 63.954(esnel 181).405 F 25.749
(151 0.834)48.528 F 25.627(172 0.950)58.275 F 52.533(Gaujac 45,270)
146.331 466 R 25.749(34,104 0.753)36.018 F 25.627(44,566 0.984)45.765 F
60.039(Hes 306,733)146.331 477 R 25.749(13,301 0.043)36.018 F 25.627
(14,006 0.046)45.765 F 43.515(Integ 19,160,842)146.331 488 R 25.749
(2,532,560 0.132 12,808,073)23.508 F(0.668)28.129 E -2.232(Inter p)
146.331 499 R 28.512(6,485,878 119,590)47.754 F 38.259(0.018 143,064)
28.251 F(0.022)28.129 E 52.029(LU 12,883,939)146.331 510 R 25.749
(232,782 0.018)31.014 F 25.627(284,011 0.022)40.761 F 41.526
(Matcnt 1,549,095)146.331 521 R 25.749(1,020,783 0.659)23.508 F 25.627
(1,548,798 1.000)33.255 F(Matm)146.331 532 Q 39.123(ul 4,444,666)-.09 F
25.749(1,774,995 0.399)23.508 F 25.627(4,420,068 0.994)33.255 F 36.531
(Matsum 1,257,239)146.331 543 R 25.749(957,111 0.761)31.014 F 25.627
(1,167,140 0.923)33.255 F -2.142(Sor t)146.331 554 R 38.52(19,966 9,888)
66.681 F 43.263(0.495 19,950)28.251 F(0.999)28.129 E 55.539
(Sprsin 17,436)146.331 565 R 25.749(15,701 0.900)36.018 F 25.627
(17,379 0.997)45.765 F 55.53(Stats 607,399)146.331 576 R 25.749
(417,230 0.687)31.014 F 25.627(601,406 0.990)40.761 F 39.042
(Summidall 15,340)146.331 587 R 25.749(7,069 0.461)41.022 F 25.627
(8,072 0.526)50.769 F 31.041(Summinmax 13,080)146.331 598 R 25.749
(12,058 0.922)36.018 F 25.627(13,062 0.999)45.765 F 38.025
(Sumnegpos 9,067)146.331 609 R 25.749(8,037 0.886)41.022 F 25.627
(9,049 0.998)50.769 F(Sumodde)146.331 620 Q -.225(ve)-.27 G 48.528(n9)
.225 G 53.532(46)-48.528 G 28.251(30)-53.532 G 60.777(.670 63)-28.251 F
(0.670)28.129 E 75.555(Sym 160)146.331 631 R 25.749(137 0.856)48.528 F
25.627(160 1.000)58.275 F 509.769 635.25 141.831 635.25 DL -2.007 -.36
(Av e)146.331 644 T -.09(ra).36 G 35.694(ge 2,467,480).09 F 25.749
(377,623 0.558)31.014 F 25.627(1,111,653 0.741)33.255 F 509.769 648.25
141.831 648.25 DL 509.769 651.35 141.831 651.35 DL 451.746 396.95
451.746 651.35 DL 388.206 396.95 388.206 651.35 DL 327.69 396.95 327.69
651.35 DL 264.15 396.95 264.15 651.35 DL 205.614 396.95 205.614 651.35
DL 509.769 113.25 509.769 651.35 DL 141.831 113.25 141.831 651.35 DL F0
(13)319.8 725.04 Q EP
%%Page: 14 16
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF(Lik)111.6 95 Q -.3(ew)-.12 G 1.508(ise, T).3 F
1.508(able 6 sho)-.96 F 1.508(ws ho)-.3 F 4.508(wm)-.3 G 1.508
(uch tighter the WCET and BCET predictions become)-4.508 F .635
(when pipeline analysis is added.)111.6 121 R/F1 10/Times-Roman@0 SF(2)
-6 I F0 .634(The nai)3.634 6 N .994 -.18(ve W)-.3 H .634
(CET considers all instruction accesses to).18 F 1.393
(be misses and assumes that no pipeline o)111.6 147 R -.18(ve)-.18 G
1.393(rlap e).18 F 1.393(xists between instructions.)-.18 F(Best-case)
7.394 E(nai)111.6 173 Q 3.693 -.18(ve exe)-.3 H 3.333(cution times are \
computed by considering all cache accesses as hits and).18 F .627
(assuming the maximum possible o)111.6 199 R -.18(ve)-.18 G .628
(rlap between instructions.).18 F .628(Thus, a program')6.628 F 3.628
(sn)-.66 G(ai)-3.628 E -.18(ve)-.3 G .628
(BCET is equal to the minimum number of instructions that could be e)
111.6 225 R -.18(xe)-.18 G 3.628(cuted. In).18 F(order)3.628 E 1.341(fo\
r the timing analyzer to be a useful tool, the estimated ratios should \
be signi\214cantly)111.6 251 R(closer to 1 \(to)111.6 277 Q -.12(wa)-.3
G(rd a perfect prediction\) than the respecti).12 E .36 -.18(ve n)-.3 H
(ai).18 E .36 -.18(ve r)-.3 H(atios.).18 E .32 LW 115.6 633.069 111.6
633.069 DL 119.6 633.069 115.6 633.069 DL 123.6 633.069 119.6 633.069 DL
127.6 633.069 123.6 633.069 DL 131.6 633.069 127.6 633.069 DL 135.6
633.069 131.6 633.069 DL 139.6 633.069 135.6 633.069 DL 143.6 633.069
139.6 633.069 DL 147.6 633.069 143.6 633.069 DL 151.6 633.069 147.6
633.069 DL 155.6 633.069 151.6 633.069 DL 159.6 633.069 155.6 633.069 DL
163.6 633.069 159.6 633.069 DL 167.6 633.069 163.6 633.069 DL 171.6
633.069 167.6 633.069 DL 175.6 633.069 171.6 633.069 DL 179.6 633.069
175.6 633.069 DL 183.6 633.069 179.6 633.069 DL 187.6 633.069 183.6
633.069 DL 191.6 633.069 187.6 633.069 DL 195.6 633.069 191.6 633.069 DL
199.6 633.069 195.6 633.069 DL 203.6 633.069 199.6 633.069 DL 207.6
633.069 203.6 633.069 DL 211.6 633.069 207.6 633.069 DL 215.6 633.069
211.6 633.069 DL 219.6 633.069 215.6 633.069 DL 223.6 633.069 219.6
633.069 DL 227.6 633.069 223.6 633.069 DL 231.6 633.069 227.6 633.069 DL
235.6 633.069 231.6 633.069 DL 239.6 633.069 235.6 633.069 DL 243.6
633.069 239.6 633.069 DL 247.6 633.069 243.6 633.069 DL 251.6 633.069
247.6 633.069 DL 255.6 633.069 251.6 633.069 DL/F2 6/Times-Roman@0 SF(2)
133.2 638.68 Q/F3 8/Times-Roman@0 SF -.64(Ta)4 K .263
(bles 12 and 22 later in this dissertation sho).64 F 2.263(wt)-.2 G .262
(he further tightening of the WCET and BCET based on the ne)-2.263 F
2.262(wa)-.2 G .262(nalysis de-)-2.262 F .035
(scribed in this dissertation.)111.6 652.28 R -.64(Ta)4.035 G .035
(ble 23 summarizes all the w).64 F .035
(orst-case and best-case ratios from e)-.08 F -.12(ve)-.2 G .035(ry le)
.12 F -.12(ve)-.2 G 2.035(lo).12 G 2.035(fa)-2.035 G .035
(nalysis so that the reader)-2.035 F(can mak)111.6 661.88 Q 2(eq)-.08 G
(uick comparisons.)-2 E F0(14)319.8 725.04 Q EP
%%Page: 15 17
%%BeginPageSetup
BP
%%EndPageSetup
/F0 16/Times-Roman@0 SF(CHAPTER 4)283.352 167 Q(OBT)137.904 206 Q
(AINING TIGHT BOUNDS OF LOOP ITERA)-1.488 E(TIONS)-1.776 E/F1 12
/Times-Roman@0 SF .743(This chapter discusses general methods ho)111.6
245 R 3.743(wl)-.3 G .743(oop iteration constraints are automatically)
-3.743 F 3.487(calculated. Most)111.6 271 R .487(of a program')3.487 F
3.487(se)-.66 G -.18(xe)-3.667 G .488
(cution time is spent inside of loops, so to be able to).18 F .228
(predict the WCET and BCET of a program, one must kno)111.6 297 R 3.228
(wt)-.3 G .228(he number of iterations that)-3.228 F .521
(can be performed by the loops in the program.)111.6 323 R .521
(Under certain conditions, such as a loop)6.521 F 3.61(with a single e)
111.6 349 R 3.61(xit, man)-.18 F 6.61(yc)-.18 G 3.61
(ompilers statically determine the e)-6.61 F 3.61(xact number of loop)
-.18 F 4.046(iterations [22].)111.6 375 R 4.047
(Besides timing analysis, applications for determining this number)
10.046 F 1.275(include loop unrolling [36], softw)111.6 401 R 1.274
(are pipelining [37], and e)-.12 F 1.274(xploiting parallelism across)
-.18 F 2.026(loop iterations [38].)111.6 427 R 2.026
(When the number of iterations cannot be e)8.026 F 2.026
(xactly determined, it)-.18 F -.12(wo)111.6 453 S .775
(uld be desirable in a real-time system to kno).12 F 3.775(wt)-.3 G .775
(he lo)-3.775 F .775(wer and upper iteration bounds.)-.3 F 1.08(These b\
ounds can be used by a timing analysis tool to more accurately predict \
BCETs)111.6 479 R(and WCETs.)111.6 505 Q(Se)126.6 531 Q -.18(ve)-.3 G
1.622(ral e).18 F 1.622(xisting timing analyzers require the user to ma\
nually enter the number of)-.18 F 1.196
(iterations for each loop, which is a tedious and error prone process.)
111.6 557 R 1.196(It w)7.196 F 1.196(ould be more)-.12 F .867
(appropriate to ha)111.6 583 R 1.226 -.18(ve t)-.24 H .866
(he compiler automatically and ef).18 F .866
(\214ciently determine the bounds for)-.3 F 2.097
(each loop in a program when possible.)111.6 609 R 2.097
(This chapter describes three approaches that)8.097 F .133
(support timing analysis by bounding the number of loop iterations.)
111.6 635 R .133(First, an algorithm is)6.133 F .913(presented that det\
ermines a bounded number of iterations for loops with multiple e)111.6
661 R(xits.)-.18 E .612(Second, support is pro)111.6 687 R .612
(vided for loops whose number of iterations is dependent on loop-)-.18 F
(15)319.8 725.04 Q EP
%%Page: 16 18
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF(in)111.6 95 Q -.3(va)-.48 G .798(riant v).3 F
3.798(ariables. Finally)-.3 F 3.798(,am)-.78 G .798(ethod is gi)-3.798 F
-.18(ve)-.3 G 3.798(nt).18 G 3.798(oa)-3.798 G .798
(ccurately predict the a)-3.798 F -.18(ve)-.24 G .798(rage number).18 F
2.591(of iterations for inner loops, whose number of iterations v)111.6
121 R 2.591(aries depending upon the)-.3 F -.3(va)111.6 147 S 1.136
(lues of counter v).3 F 1.136(ariables of enclosing outer loops.)-.3 F
1.137(All three of these approaches are)7.136 F(ef)111.6 173 Q .349
(\214ciently implemented and result in less w)-.3 F .349(ork for a user)
-.12 F 6.349(.T)-.66 G .349(he last approach also results)-6.349 F 5.642
(in tighter timing analysis predictions.)111.6 199 R 5.643
(These approaches were implemented by)11.643 F 1.033(modifying the)111.6
225 R/F1 12/Times-Italic@0 SF(vpo)4.033 E F0 1.033
(compiler [22] to analyze loops and this loop analysis information is)
4.033 F
(passed to a timing analyzer [25, 26, 29] to predict performance.)111.6
251 Q 3(4.1 Bounding)194.298 286.1 R .48 LW 457.302 289.1 194.298 289.1
DL(Iterations for Loops with Multiple Exits)265.638 286.1 Q .831(This s\
ection presents a method to determine a bounded number of iterations fo\
r natural)111.6 312.1 R 3.101(loops with multiple e)111.6 338.1 R 6.101
(xits. The)-.18 F 3.101(method includes the follo)6.101 F 3.101
(wing steps.)-.3 F 3.101(\(1\) First, the)9.101 F 1.726
(conditional branches within the loop that can af)111.6 364.1 R 1.726
(fect the number of loop iterations are)-.3 F 4.584(identi\214ed. \(2\))
111.6 390.1 R(Ne)4.584 E 1.584
(xt, the compiler calculates when each of the identi\214ed branches can)
-.18 F .713
(change its result based on the number of loop iterations performed.)
111.6 416.1 R .714(\(3\) Afterw)6.714 F .714(ards, the)-.12 F .8(range \
of loop iterations when each of these branches can be reached is determ\
ined.)111.6 442.1 R(\(4\))6.799 E(Finally)111.6 468.1 Q 5.322(,t)-.78 G
2.322(he minimum and maximum number of iterations for the loop is calcu\
lated.)-5.322 F(These steps are described in the follo)111.6 494.1 Q
(wing subsections.)-.3 E 3(4.1.1 Branches)111.6 529.2 R(Af)3 E 384.576
532.2 111.6 532.2 DL(fecting the Number of Loop Iterations)201.612 529.2
Q 1.382(Some terms are no)111.6 561.7 R 4.382(wd)-.3 G 1.382
(e\214ned to f)-4.382 F 1.382
(acilitate the presentation of the methods gi)-.12 F -.18(ve)-.3 G 4.381
(ni).18 G 4.381(nt)-4.381 G(his)-4.381 E(chapter)111.6 587.7 Q 7.42(.A)
-.66 G 1.421(more complete description of these terms can be found else)
-3 F 1.421(where [39].)-.3 F(A)7.421 E F1 .471(basic bloc)111.6 613.7 R
(k)-.24 E F0 .471
(is a sequence of instructions with a single entry point at the be)3.471
F .471(ginning and a)-.18 F 1.79(single e)111.6 639.7 R 1.79
(xit point at the end.)-.18 F(A)7.79 E F1(natur)4.79 E 1.79(al loop)-.18
F F0 1.79(is a loop with a single entry point.)4.79 F(The)7.791 E F1
(header)111.6 665.7 Q F0 .614
(of a natural loop is the single basic block where the loop is entered.)
3.615 F -.42(Tr)6.614 G(ansitions).42 E .426
(from within the loop to the header are called)111.6 691.7 R F1(bac)
3.427 E 3.427(ke)-.24 G(dg)-3.427 E(es)-.12 E F0 6.427(.B)C .427(lock A)
-6.427 F F1(dominates)3.427 E F0 .427(block B if)3.427 F(16)319.8 725.04
Q EP
%%Page: 17 19
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF -2.58 -.3(ev e)111.6 95 T .494
(ry path from the initial node of the control \215o).3 F 3.493(wg)-.3 G
.493(raph to B has to \214rst go through A.)-3.493 F -.18(Fo)111.6 121 S
4.042(ri).18 G 1.042(nstance, the header block of a natural loop domina\
tes all other blocks in the loop.)-4.042 F(Lik)111.6 147 Q -.3(ew)-.12 G
.975(ise, block B).3 F/F1 12/Times-Italic@0 SF(post-dominates)3.975 E F0
.975(block A if all control paths from block A e)3.975 F -.18(ve)-.3 G
(ntually).18 E 4.181(lead to block B.)111.6 173 R 7.181(Ab)10.181 G
4.181(lock al)-7.181 F -.12(wa)-.12 G 4.181
(ys dominates and post-dominates itself.).12 F -.18(Fo)10.181 G 7.181
(rt).18 G(his)-7.181 E 2.483(dissertation, the number of loop iteration\
s is de\214ned to be the number of times the)111.6 199 R(header is e)
111.6 225 Q -.18(xe)-.18 G(cuted once the loop is entered [25].).18 E
1.181(Figure 2\(a\) contains the code for a to)126.6 251 R 4.181(yCf)
-.12 G 1.182(unction that will be used to illustrate the)-4.181 F .161(\
algorithm for calculating loop iteration bounds for loops with multiple\
e)111.6 277 R 3.161(xits. Figure)-.18 F(2\(b\))3.161 E .78
(depicts the R)111.6 303 R .78(TLs, representing SP)-.72 F .78
(ARC assembly instructions, that the)-1.104 F F1(vpo)3.78 E F0 .78
(compiler has)3.78 F 1.968(generated for this function.)111.6 329 R
1.967(\(No delay slots ha)7.967 F 2.327 -.18(ve b)-.24 H 1.967
(een \214lled in order to simplify the).18 F -.18(ex)111.6 355 S 3.04
(ample.\) Figure).18 F .04(2\(c\) e)3.04 F .04(xplains the R)-.18 F .041
(TL notation used.)-.72 F .041(The loop consists of basic blocks)6.041 F
(2, 3, 5, 6, 7, and 8.)111.6 381 Q(The header of the loop is block 7.)6
E(An)126.6 407 Q F1(iter)4.405 E 1.405(ation br)-.18 F(anc)-.18 E(h)-.18
E F0 1.405
(in a loop is a conditional transfer of control, where the choice)4.405
F .401(between the tw)111.6 433 R 3.401(oo)-.12 G .401
(utgoing transitions can directly or indirectly af)-3.401 F .402
(fect the number of loop)-.3 F 4.932(iterations. The)111.6 459 R 1.932
(iteration branches in the loop that can directly af)4.932 F 1.932
(fect this number are)-.3 F .542(branches that ha)111.6 485 R .902 -.18
(ve \()-.24 H .542(1\) a transition to a basic block outside the loop o\
r \(2\) a transition to).18 F .279(the header block of the loop or to a\
block that is post-dominated by the header)111.6 511 R 6.279(.I)-.66 G
(teration)-6.279 E 2.678(branches that can indirectly af)111.6 537 R
2.678(fect the number of loop iterations are those branches)-.3 F 3.09
(whose tw)111.6 563 R 6.09(os)-.12 G 3.09
(uccessors are post-dominated by dif)-6.09 F 3.09
(ferent iteration branches.)-.3 F 3.09(Figure 3)9.09 F(sho)111.6 589 Q
.172(ws an algorithm to calculate the set of iteration branches)-.3 F F1
(I)3.172 E F0 .172(for a loop.)3.172 F .172(The w)6.172 F(orst-case)-.12
E(comple)111.6 615 Q .31(xity of the algorithm is)-.18 F F1(O)3.31 E F0
(\()A F1(B)A/F2 10/Times-Roman@0 SF(2)-6 I F0 .31(\), where)6 J F1(B)
3.31 E F0 .31(is the number of basic blocks in the loop.)3.31 F(Ho)111.6
641 Q(we)-.3 E -.18(ve)-.3 G 2.028 -.48(r, t).18 H 1.068(he a).48 F -.18
(ve)-.24 G 1.068(rage comple).18 F 1.068(xity w)-.18 F 1.068
(ould be closer to)-.12 F F1(O)4.068 E F0(\()A F1(B)A F0 4.068(\)s)C
1.068(ince iteration branches that)-4.068 F(indirectly af)111.6 667 Q
(fect the number of loop iterations are not common.)-.3 E .775
(The algorithm sho)126.6 693 R .774
(wn in Figure 3 identi\214es block 5 as containing an iteration branch)
-.3 F(17)319.8 725.04 Q EP
%%Page: 18 20
%%BeginPageSetup
BP
%%EndPageSetup
/F0 9/Times-Roman@0 SF 2.25(:a)336.06 554.556 S(llocated for v)-2.25 E
(ariable j)-.225 E/F1 9/Courier@0 SF(r[9])311.004 554.116 Q F0 2.25(:a)
336.06 564.34 S(llocated for v)-2.25 E(ariable i)-.225 E F1(r[10])
305.604 564.34 Q F0 2.25(:h)336.06 574.636 S(igh portion of address)
-2.25 E F1(HI[
])262.404 574.636 Q F0 2.25(:l)336.06 584.86 S
.45 -.225(ow p)-2.25 H(ortion of address).225 E F1(LO[])262.404
584.86 Q F0 2.25(:i)336.06 595.084 S(nte)-2.25 E(ger memory reference)
-.135 E F1(R[])267.804 595.084 Q F0 2.25(:c)336.06 605.38 S
(omparison)-2.25 E F1(IC=- ?
- ;)240.804 605.38 Q F0 2.25(:c)
336.06 615.676 S(onditional branch)-2.25 E F1(PC=IC
0,;)
213.804 615.676 Q F0 2.25(:r)336.06 625.9 S(eturn)-2.25 E F1(PC=RT;)
300.204 625.9 Q F0 2.25(:u)336.06 636.124 S(nconditional jump)-2.25 E F1
(PC=;)273.204 636.124 Q/F2 9/Times-Bold@0 SF
(\(c\) Explanation of R)242.487 653.26 Q(TL Notation in Figur)-.36 E
2.25(e2)-.162 G(\(b\))-2.25 E 414.54 266.8 MT 0 -44.64 RL -164.16 0 RL 0
44.64 RL CL .36 LW ST 414.54 304.24 MT 0 -23.76 RL -164.16 0 RL 0 23.76
RL CL ST 332.604 317.92 332.604 304.24 DL 332.604 317.92 MT -1.8 -7.2 RL
3.6 0 RL CL BL 332.604 317.92 MT -1.8 -7.2 RL 3.6 0 RL CL ST 414.54
351.76 MT 0 -33.84 RL -164.16 0 RL 0 33.84 RL CL ST 332.604 365.8
332.604 352.12 DL 332.604 365.8 MT -1.8 -7.2 RL 3.6 0 RL CL BL 332.604
365.8 MT -1.8 -7.2 RL 3.6 0 RL CL ST 414.54 379.12 MT 0 -13.68 RL
-164.16 0 RL 0 13.68 RL CL ST 414.54 417.28 MT 0 -23.76 RL -164.16 0 RL
0 23.76 RL CL ST 332.604 430.744 332.604 417.064 DL 332.604 430.744 MT
-1.8 -7.2 RL 3.6 0 RL CL BL 332.604 430.744 MT -1.8 -7.2 RL 3.6 0 RL CL
ST 414.54 454.72 MT 0 -23.76 RL -164.16 0 RL 0 23.76 RL CL ST 332.604
468.4 332.604 454.72 DL 332.604 468.4 MT -1.8 -7.2 RL 3.6 0 RL CL BL
332.604 468.4 MT -1.8 -7.2 RL 3.6 0 RL CL ST 414.54 492.16 MT 0 -23.76
RL -164.16 0 RL 0 23.76 RL CL ST 332.604 505.984 332.604 492.304 DL
332.604 505.984 MT -1.8 -7.2 RL 3.6 0 RL CL BL 332.604 505.984 MT -1.8
-7.2 RL 3.6 0 RL CL ST 414.54 519.52 MT 0 -13.68 RL -164.16 0 RL 0 13.68
RL CL ST 466.02 543.64 185.58 543.64 DL 466.02 215.32 185.58 215.32 DL
465.66 659.92 MT 0 -547.2 RL -280.08 0 RL 0 547.2 RL CL ST 414.828
266.656 414.684 266.656 DL 414.972 266.656 414.828 266.656 DL 415.26
266.728 414.972 266.656 DL 415.764 266.8 415.26 266.728 DL 416.412
266.872 415.764 266.8 DL 417.276 267.088 416.412 266.872 DL 418.284
267.304 417.276 267.088 DL 419.436 267.592 418.284 267.304 DL 420.66
267.88 419.436 267.592 DL 422.028 268.24 420.66 267.88 DL 423.468
268.744 422.028 268.24 DL 424.836 269.248 423.468 268.744 DL 426.276
269.752 424.836 269.248 DL 427.644 270.328 426.276 269.752 DL 428.868
271.048 427.644 270.328 DL 430.164 271.696 428.868 271.048 DL 431.316
272.488 430.164 271.696 DL 432.396 273.352 431.316 272.488 DL 433.404
274.216 432.396 273.352 DL 434.34 275.224 433.404 274.216 DL 435.276
276.304 434.34 275.224 DL 436.14 277.456 435.276 276.304 DL 436.932
278.68 436.14 277.456 DL 437.724 280.048 436.932 278.68 DL 438.444
281.56 437.724 280.048 DL 439.092 283.144 438.444 281.56 DL 439.812
284.872 439.092 283.144 DL 440.244 286.024 439.812 284.872 DL 440.604
287.248 440.244 286.024 DL 441.108 288.472 440.604 287.248 DL 441.468
289.84 441.108 288.472 DL 441.828 291.208 441.468 289.84 DL 442.26
292.648 441.828 291.208 DL 442.692 294.16 442.26 292.648 DL 443.052
295.744 442.692 294.16 DL 443.412 297.328 443.052 295.744 DL 443.844
299.056 443.412 297.328 DL 444.204 300.856 443.844 299.056 DL 444.564
302.584 444.204 300.856 DL 444.924 304.456 444.564 302.584 DL 445.284
306.4 444.924 304.456 DL 445.716 308.416 445.284 306.4 DL 446.076 310.36
445.716 308.416 DL 446.364 312.52 446.076 310.36 DL 446.724 314.608
446.364 312.52 DL 447.084 316.768 446.724 314.608 DL 447.372 319 447.084
316.768 DL 447.66 321.232 447.372 319 DL 447.948 323.464 447.66 321.232
DL 448.236 325.768 447.948 323.464 DL 448.524 328.072 448.236 325.768 DL
448.812 330.448 448.524 328.072 DL 449.028 332.752 448.812 330.448 DL
449.316 335.056 449.028 332.752 DL 449.532 337.432 449.316 335.056 DL
449.676 339.736 449.532 337.432 DL 449.892 342.112 449.676 339.736 DL
450.108 344.488 449.892 342.112 DL 450.252 346.792 450.108 344.488 DL
450.396 349.096 450.252 346.792 DL 450.54 351.4 450.396 349.096 DL
450.684 353.704 450.54 351.4 DL 450.756 355.936 450.684 353.704 DL 450.9
358.168 450.756 355.936 DL 450.972 360.328 450.9 358.168 DL 451.044
362.488 450.972 360.328 DL 451.116 364.72 451.044 362.488 DL 451.188
366.88 451.116 364.72 DL 451.188 368.968 451.188 366.88 DL 451.188
371.056 451.188 368.968 DL 451.188 373.216 451.188 371.056 DL 451.188
373.216 451.188 373.216 DL 451.188 375.448 451.188 373.216 DL 451.188
377.608 451.188 375.448 DL 451.188 379.768 451.188 377.608 DL 451.116
382 451.188 379.768 DL 451.044 384.16 451.116 382 DL 450.9 386.392
451.044 384.16 DL 450.828 388.624 450.9 386.392 DL 450.756 390.856
450.828 388.624 DL 450.612 393.088 450.756 390.856 DL 450.468 395.32
450.612 393.088 DL 450.324 397.552 450.468 395.32 DL 450.18 399.784
450.324 397.552 DL 449.964 402.016 450.18 399.784 DL 449.82 404.32
449.964 402.016 DL 449.532 406.552 449.82 404.32 DL 449.316 408.784
449.532 406.552 DL 449.1 411.016 449.316 408.784 DL 448.812 413.248
449.1 411.016 DL 448.524 415.408 448.812 413.248 DL 448.308 417.568
448.524 415.408 DL 447.948 419.728 448.308 417.568 DL 447.66 421.816
447.948 419.728 DL 447.3 423.832 447.66 421.816 DL 447.012 425.92 447.3
423.832 DL 446.652 427.864 447.012 425.92 DL 446.292 429.808 446.652
427.864 DL 445.932 431.68 446.292 429.808 DL 445.572 433.552 445.932
431.68 DL 445.212 435.28 445.572 433.552 DL 444.78 437.008 445.212
435.28 DL 444.42 438.664 444.78 437.008 DL 444.06 440.248 444.42 438.664
DL 443.628 441.76 444.06 440.248 DL 443.196 443.272 443.628 441.76 DL
442.836 444.712 443.196 443.272 DL 442.404 446.08 442.836 444.712 DL
441.972 447.304 442.404 446.08 DL 441.54 448.528 441.972 447.304 DL
441.108 449.752 441.54 448.528 DL 440.676 450.904 441.108 449.752 DL
440.244 451.984 440.676 450.904 DL 439.812 453.064 440.244 451.984 DL
439.092 454.576 439.812 453.064 DL 438.3 456.016 439.092 454.576 DL
437.508 457.312 438.3 456.016 DL 436.716 458.536 437.508 457.312 DL
435.852 459.616 436.716 458.536 DL 434.844 460.624 435.852 459.616 DL
433.836 461.632 434.844 460.624 DL 432.828 462.424 433.836 461.632 DL
431.604 463.216 432.828 462.424 DL 430.38 463.936 431.604 463.216 DL
429.084 464.584 430.38 463.936 DL 427.716 465.232 429.084 464.584 DL
426.276 465.736 427.716 465.232 DL 424.764 466.24 426.276 465.736 DL
423.252 466.744 424.764 466.24 DL 421.74 467.104 423.252 466.744 DL
420.3 467.392 421.74 467.104 DL 418.932 467.68 420.3 467.392 DL 417.78
467.968 418.932 467.68 DL 416.772 468.112 417.78 467.968 DL 415.98
468.184 416.772 468.112 DL 414.684 468.4 415.98 468.184 DL 414.684 468.4
MT 6.84 -2.952 RL .576 3.528 RL CL BL 414.684 468.4 MT 6.84 -2.952 RL
.576 3.528 RL CL ST 414.828 304.24 414.684 304.24 DL 415.188 304.312
414.828 304.24 DL 415.764 304.312 415.188 304.312 DL 416.7 304.384
415.764 304.312 DL 417.852 304.456 416.7 304.384 DL 419.22 304.6 417.852
304.456 DL 420.804 304.816 419.22 304.6 DL 422.46 304.96 420.804 304.816
DL 424.188 305.248 422.46 304.96 DL 425.844 305.536 424.188 305.248 DL
427.5 305.824 425.844 305.536 DL 429.012 306.184 427.5 305.824 DL 430.38
306.544 429.012 306.184 DL 431.604 307.048 430.38 306.544 DL 432.756
307.48 431.604 307.048 DL 433.836 308.056 432.756 307.48 DL 434.772
308.56 433.836 308.056 DL 435.492 309.28 434.772 308.56 DL 436.212 310
435.492 309.28 DL 436.932 310.792 436.212 310 DL 437.508 311.656 436.932
310.792 DL 437.94 312.376 437.508 311.656 DL 438.372 313.24 437.94
312.376 DL 438.732 314.104 438.372 313.24 DL 439.092 314.968 438.732
314.104 DL 439.452 315.976 439.092 314.968 DL 439.74 317.056 439.452
315.976 DL 440.028 318.136 439.74 317.056 DL 440.316 319.36 440.028
318.136 DL 440.532 320.584 440.316 319.36 DL 440.748 321.808 440.532
320.584 DL 440.964 323.176 440.748 321.808 DL 441.108 324.544 440.964
323.176 DL 441.324 326.056 441.108 324.544 DL 441.468 327.496 441.324
326.056 DL 441.612 329.008 441.468 327.496 DL 441.684 330.52 441.612
329.008 DL 441.756 332.032 441.684 330.52 DL 441.828 333.616 441.756
332.032 DL 441.9 335.128 441.828 333.616 DL 441.972 336.712 441.9
335.128 DL 441.972 338.224 441.972 336.712 DL 442.044 339.808 441.972
338.224 DL 442.044 341.32 442.044 339.808 DL 442.044 342.832 442.044
341.32 DL 442.044 344.344 442.044 342.832 DL 442.044 345.784 442.044
344.344 DL 442.044 347.224 442.044 345.784 DL 442.044 348.664 442.044
347.224 DL 442.044 350.176 442.044 348.664 DL 442.044 351.616 442.044
350.176 DL 442.044 353.056 442.044 351.616 DL 442.044 354.568 442.044
353.056 DL 442.044 356.08 442.044 354.568 DL 442.044 357.592 442.044
356.08 DL 441.972 359.176 442.044 357.592 DL 441.972 360.688 441.972
359.176 DL 441.9 362.272 441.972 360.688 DL 441.828 363.784 441.9
362.272 DL 441.756 365.368 441.828 363.784 DL 441.684 366.88 441.756
365.368 DL 441.612 368.392 441.684 366.88 DL 441.468 369.904 441.612
368.392 DL 441.324 371.344 441.468 369.904 DL 441.108 372.856 441.324
371.344 DL 440.964 374.224 441.108 372.856 DL 440.748 375.592 440.964
374.224 DL 440.532 376.816 440.748 375.592 DL 440.316 378.04 440.532
376.816 DL 440.028 379.264 440.316 378.04 DL 439.74 380.344 440.028
379.264 DL 439.452 381.424 439.74 380.344 DL 439.092 382.432 439.452
381.424 DL 438.732 383.296 439.092 382.432 DL 438.372 384.16 438.732
383.296 DL 437.94 385.024 438.372 384.16 DL 437.508 385.744 437.94
385.024 DL 437.508 385.744 437.508 385.744 DL 436.932 386.608 437.508
385.744 DL 436.212 387.4 436.932 386.608 DL 435.492 388.12 436.212 387.4
DL 434.772 388.84 435.492 388.12 DL 433.836 389.344 434.772 388.84 DL
432.756 389.92 433.836 389.344 DL 431.604 390.352 432.756 389.92 DL
430.38 390.856 431.604 390.352 DL 429.012 391.216 430.38 390.856 DL
427.5 391.576 429.012 391.216 DL 425.844 391.864 427.5 391.576 DL
424.188 392.152 425.844 391.864 DL 422.46 392.44 424.188 392.152 DL
420.804 392.584 422.46 392.44 DL 419.22 392.8 420.804 392.584 DL 417.852
392.944 419.22 392.8 DL 416.7 393.016 417.852 392.944 DL 414.684 393.16
416.7 393.016 DL 414.684 393.16 MT 7.056 -2.304 RL .288 3.6 RL CL BL
414.684 393.16 MT 7.056 -2.304 RL .288 3.6 RL CL ST 250.452 519.664
250.524 519.664 DL 250.236 519.664 250.452 519.664 DL 249.876 519.664
250.236 519.664 DL 249.3 519.664 249.876 519.664 DL 248.436 519.664
249.3 519.664 DL 247.356 519.592 248.436 519.664 DL 246.06 519.52
247.356 519.592 DL 244.62 519.376 246.06 519.52 DL 242.964 519.232
244.62 519.376 DL 241.092 519.088 242.964 519.232 DL 239.22 518.8
241.092 519.088 DL 237.348 518.584 239.22 518.8 DL 235.404 518.224
237.348 518.584 DL 233.46 517.864 235.404 518.224 DL 231.588 517.432
233.46 517.864 DL 229.788 516.928 231.588 517.432 DL 228.132 516.424
229.788 516.928 DL 226.476 515.776 228.132 516.424 DL 224.964 515.128
226.476 515.776 DL 223.596 514.408 224.964 515.128 DL 222.228 513.616
223.596 514.408 DL 221.004 512.68 222.228 513.616 DL 219.852 511.744
221.004 512.68 DL 218.7 510.664 219.852 511.744 DL 217.692 509.512 218.7
510.664 DL 216.756 508.216 217.692 509.512 DL 215.82 506.848 216.756
508.216 DL 214.956 505.336 215.82 506.848 DL 214.092 503.752 214.956
505.336 DL 213.516 502.672 214.092 503.752 DL 213.012 501.448 213.516
502.672 DL 212.508 500.224 213.012 501.448 DL 212.004 498.928 212.508
500.224 DL 211.5 497.632 212.004 498.928 DL 210.996 496.264 211.5
497.632 DL 210.492 494.824 210.996 496.264 DL 209.988 493.312 210.492
494.824 DL 209.556 491.728 209.988 493.312 DL 209.124 490.072 209.556
491.728 DL 208.62 488.344 209.124 490.072 DL 208.188 486.616 208.62
488.344 DL 207.756 484.816 208.188 486.616 DL 207.324 482.872 207.756
484.816 DL 206.892 481 207.324 482.872 DL 206.532 478.984 206.892 481 DL
206.1 476.896 206.532 478.984 DL 205.668 474.808 206.1 476.896 DL
205.308 472.72 205.668 474.808 DL 204.948 470.488 205.308 472.72 DL
204.588 468.184 204.948 470.488 DL 204.3 465.952 204.588 468.184 DL
203.94 463.576 204.3 465.952 DL 203.652 461.272 203.94 463.576 DL
203.292 458.896 203.652 461.272 DL 203.076 456.448 203.292 458.896 DL
202.788 454 203.076 456.448 DL 202.572 451.552 202.788 454 DL 202.284
449.104 202.572 451.552 DL 202.068 446.656 202.284 449.104 DL 201.852
444.136 202.068 446.656 DL 201.636 441.688 201.852 444.136 DL 201.42
439.168 201.636 441.688 DL 201.276 436.72 201.42 439.168 DL 201.204
434.2 201.276 436.72 DL 201.06 431.752 201.204 434.2 DL 200.916 429.304
201.06 431.752 DL 200.844 426.784 200.916 429.304 DL 200.7 424.336
200.844 426.784 DL 200.628 421.96 200.7 424.336 DL 200.556 419.512
200.628 421.96 DL 200.484 417.064 200.556 419.512 DL 200.412 414.616
200.484 417.064 DL 200.412 412.24 200.412 414.616 DL 200.412 409.792
200.412 412.24 DL 200.412 407.416 200.412 409.792 DL 200.412 405.112
200.412 407.416 DL 200.412 402.736 200.412 405.112 DL 200.412 400.432
200.412 402.736 DL 200.484 398.056 200.412 400.432 DL 200.556 395.68
200.484 398.056 DL 200.556 393.232 200.556 395.68 DL 200.7 390.856
200.556 393.232 DL 200.772 388.408 200.7 390.856 DL 200.844 385.96
200.772 388.408 DL 200.916 383.512 200.844 385.96 DL 201.06 380.992
200.916 383.512 DL 201.204 378.472 201.06 380.992 DL 201.348 375.952
201.204 378.472 DL 201.564 373.432 201.348 375.952 DL 201.708 370.84
201.564 373.432 DL 201.924 368.248 201.708 370.84 DL 202.14 365.728
201.924 368.248 DL 202.356 363.136 202.14 365.728 DL 202.572 360.544
202.356 363.136 DL 202.788 358.024 202.572 360.544 DL 203.076 355.432
202.788 358.024 DL 203.364 352.912 203.076 355.432 DL 203.652 350.392
203.364 352.912 DL 203.94 347.872 203.652 350.392 DL 204.3 345.424
203.94 347.872 DL 204.588 342.976 204.3 345.424 DL 204.948 340.528
204.588 342.976 DL 205.308 338.152 204.948 340.528 DL 205.668 335.848
205.308 338.152 DL 206.028 333.544 205.668 335.848 DL 206.388 331.312
206.028 333.544 DL 206.748 329.152 206.388 331.312 DL 207.18 326.992
206.748 329.152 DL 207.54 324.904 207.18 326.992 DL 207.972 322.888
207.54 324.904 DL 208.404 320.944 207.972 322.888 DL 208.836 319 208.404
320.944 DL 209.268 317.128 208.836 319 DL 209.772 315.4 209.268 317.128
DL 210.132 313.6 209.772 315.4 DL 210.636 312.016 210.132 313.6 DL
211.14 310.36 210.636 312.016 DL 211.572 308.848 211.14 310.36 DL
212.076 307.336 211.572 308.848 DL 212.58 305.896 212.076 307.336 DL
213.084 304.528 212.58 305.896 DL 213.588 303.232 213.084 304.528 DL
214.092 301.936 213.588 303.232 DL 214.884 300.136 214.092 301.936 DL
215.748 298.48 214.884 300.136 DL 216.54 296.896 215.748 298.48 DL
217.476 295.456 216.54 296.896 DL 218.412 294.088 217.476 295.456 DL
219.42 292.792 218.412 294.088 DL 220.428 291.64 219.42 292.792 DL
221.58 290.488 220.428 291.64 DL 222.804 289.48 221.58 290.488 DL 224.1
288.544 222.804 289.48 DL 225.468 287.608 224.1 288.544 DL 226.908
286.816 225.468 287.608 DL 228.42 286.024 226.908 286.816 DL 230.004
285.304 228.42 286.024 DL 231.732 284.656 230.004 285.304 DL 233.46
284.008 231.732 284.656 DL 235.26 283.432 233.46 284.008 DL 237.06
282.928 235.26 283.432 DL 238.86 282.424 237.06 282.928 DL 240.66
282.064 238.86 282.424 DL 242.388 281.704 240.66 282.064 DL 243.972
281.344 242.388 281.704 DL 245.484 281.056 243.972 281.344 DL 246.78
280.84 245.484 281.056 DL 247.86 280.696 246.78 280.84 DL 248.796
280.552 247.86 280.696 DL 249.516 280.408 248.796 280.552 DL 250.524
280.336 249.516 280.408 DL 250.524 280.336 MT -7.056 2.304 RL -.288 -3.6
RL CL BL 250.524 280.336 MT -7.056 2.304 RL -.288 -3.6 RL CL ST 414.756
352.12 414.684 352.12 DL 414.9 352.12 414.756 352.12 DL 415.332 352.192
414.9 352.12 DL 415.98 352.192 415.332 352.192 DL 416.844 352.336 415.98
352.192 DL 417.924 352.408 416.844 352.336 DL 419.148 352.552 417.924
352.408 DL 420.3 352.696 419.148 352.552 DL 421.38 352.912 420.3 352.696
DL 422.388 353.2 421.38 352.912 DL 423.252 353.416 422.388 353.2 DL
424.044 353.704 423.252 353.416 DL 424.692 354.064 424.044 353.704 DL
425.196 354.496 424.692 354.064 DL 425.7 355 425.196 354.496 DL 426.132
355.504 425.7 355 DL 426.42 356.08 426.132 355.504 DL 426.78 356.728
426.42 356.08 DL 426.996 357.376 426.78 356.728 DL 427.284 358.168
426.996 357.376 DL 427.5 358.96 427.284 358.168 DL 427.644 359.824 427.5
358.96 DL 427.788 360.76 427.644 359.824 DL 428.004 361.768 427.788
360.76 DL 428.076 362.848 428.004 361.768 DL 428.148 363.928 428.076
362.848 DL 428.292 365.008 428.148 363.928 DL 428.292 366.16 428.292
365.008 DL 428.364 367.24 428.292 366.16 DL 428.364 368.32 428.364
367.24 DL 428.364 369.472 428.364 368.32 DL 428.364 370.552 428.364
369.472 DL 428.364 371.56 428.364 370.552 DL 428.364 372.64 428.364
371.56 DL 428.364 373.72 428.364 372.64 DL 428.364 374.728 428.364
373.72 DL 428.364 375.808 428.364 374.728 DL 428.364 376.96 428.364
375.808 DL 428.364 378.04 428.364 376.96 DL 428.292 379.12 428.364
378.04 DL 428.292 380.272 428.292 379.12 DL 428.148 381.352 428.292
380.272 DL 428.076 382.432 428.148 381.352 DL 428.004 383.512 428.076
382.432 DL 427.788 384.52 428.004 383.512 DL 427.644 385.456 427.788
384.52 DL 427.5 386.32 427.644 385.456 DL 427.284 387.112 427.5 386.32
DL 426.996 387.904 427.284 387.112 DL 426.78 388.552 426.996 387.904 DL
426.42 389.2 426.78 388.552 DL 426.132 389.704 426.42 389.2 DL 425.7
390.28 426.132 389.704 DL 425.196 390.784 425.7 390.28 DL 424.692
391.216 425.196 390.784 DL 424.044 391.576 424.692 391.216 DL 423.252
391.864 424.044 391.576 DL 422.388 392.08 423.252 391.864 DL 421.38
392.368 422.388 392.08 DL 420.3 392.584 421.38 392.368 DL 419.148
392.728 420.3 392.584 DL 417.924 392.872 419.148 392.728 DL 416.844
392.944 417.924 392.872 DL 415.98 393.088 416.844 392.944 DL 414.684
393.16 415.98 393.088 DL 414.684 393.16 MT 7.056 -2.232 RL .216 3.6 RL
CL BL 414.684 393.16 MT 7.056 -2.232 RL .216 3.6 RL CL ST 250.452
492.304 250.524 492.304 DL 250.236 492.376 250.452 492.304 DL 249.804
492.448 250.236 492.376 DL 249.156 492.52 249.804 492.448 DL 248.292
492.664 249.156 492.52 DL 247.14 492.736 248.292 492.664 DL 245.844
492.88 247.14 492.736 DL 244.332 493.024 245.844 492.88 DL 242.748
493.096 244.332 493.024 DL 241.092 493.24 242.748 493.096 DL 239.508
493.24 241.092 493.24 DL 237.852 493.312 239.508 493.24 DL 236.268
493.24 237.852 493.312 DL 234.756 493.168 236.268 493.24 DL 233.316
492.952 234.756 493.168 DL 232.02 492.808 233.316 492.952 DL 230.796
492.448 232.02 492.808 DL 229.644 492.16 230.796 492.448 DL 228.564
491.728 229.644 492.16 DL 227.628 491.224 228.564 491.728 DL 226.764
490.576 227.628 491.224 DL 225.9 489.928 226.764 490.576 DL 225.18
489.136 225.9 489.928 DL 224.46 488.272 225.18 489.136 DL 223.812
487.336 224.46 488.272 DL 223.308 486.472 223.812 487.336 DL 222.804
485.68 223.308 486.472 DL 222.3 484.744 222.804 485.68 DL 221.868
483.736 222.3 484.744 DL 221.436 482.728 221.868 483.736 DL 221.004
481.576 221.436 482.728 DL 220.572 480.424 221.004 481.576 DL 220.212
479.128 220.572 480.424 DL 219.852 477.832 220.212 479.128 DL 219.42
476.464 219.852 477.832 DL 219.06 475.024 219.42 476.464 DL 218.7
473.512 219.06 475.024 DL 218.412 471.928 218.7 473.512 DL 218.124
470.344 218.412 471.928 DL 217.764 468.616 218.124 470.344 DL 217.476
466.888 217.764 468.616 DL 217.26 465.088 217.476 466.888 DL 216.972
463.288 217.26 465.088 DL 216.756 461.488 216.972 463.288 DL 216.54
459.616 216.756 461.488 DL 216.324 457.744 216.54 459.616 DL 216.18
455.8 216.324 457.744 DL 215.964 453.928 216.18 455.8 DL 215.892 451.984
215.964 453.928 DL 215.748 450.04 215.892 451.984 DL 215.604 448.096
215.748 450.04 DL 215.46 446.224 215.604 448.096 DL 215.46 444.28 215.46
446.224 DL 215.388 442.408 215.46 444.28 DL 215.316 440.464 215.388
442.408 DL 215.244 438.592 215.316 440.464 DL 215.244 436.72 215.244
438.592 DL 215.244 434.848 215.244 436.72 DL 215.244 432.976 215.244
434.848 DL 215.244 431.176 215.244 432.976 DL 215.244 429.376 215.244
431.176 DL 215.244 427.576 215.244 429.376 DL 215.316 425.704 215.244
427.576 DL 215.388 423.832 215.316 425.704 DL 215.388 421.96 215.388
423.832 DL 215.46 420.088 215.388 421.96 DL 215.604 418.144 215.46
420.088 DL 215.676 416.2 215.604 418.144 DL 215.748 414.256 215.676
416.2 DL 215.892 412.24 215.748 414.256 DL 216.036 410.296 215.892
412.24 DL 216.252 408.352 216.036 410.296 DL 216.324 406.336 216.252
408.352 DL 216.612 404.392 216.324 406.336 DL 216.756 402.448 216.612
404.392 DL 216.972 400.504 216.756 402.448 DL 217.26 398.56 216.972
400.504 DL 217.476 396.688 217.26 398.56 DL 217.692 394.816 217.476
396.688 DL 218.052 393.016 217.692 394.816 DL 218.34 391.216 218.052
393.016 DL 218.628 389.488 218.34 391.216 DL 218.988 387.832 218.628
389.488 DL 219.276 386.248 218.988 387.832 DL 219.636 384.664 219.276
386.248 DL 219.996 383.224 219.636 384.664 DL 220.356 381.784 219.996
383.224 DL 220.716 380.416 220.356 381.784 DL 221.148 379.12 220.716
380.416 DL 221.58 377.896 221.148 379.12 DL 221.94 376.744 221.58
377.896 DL 222.372 375.664 221.94 376.744 DL 222.804 374.656 222.372
375.664 DL 223.308 373.648 222.804 374.656 DL 223.812 372.784 223.308
373.648 DL 224.46 371.56 223.812 372.784 DL 225.18 370.552 224.46 371.56
DL 225.9 369.616 225.18 370.552 DL 226.764 368.752 225.9 369.616 DL
227.628 368.032 226.764 368.752 DL 228.564 367.384 227.628 368.032 DL
229.644 366.88 228.564 367.384 DL 230.796 366.376 229.644 366.88 DL
232.02 366.016 230.796 366.376 DL 233.316 365.728 232.02 366.016 DL
234.756 365.512 233.316 365.728 DL 236.268 365.296 234.756 365.512 DL
237.852 365.224 236.268 365.296 DL 239.508 365.152 237.852 365.224 DL
241.092 365.152 239.508 365.152 DL 242.748 365.152 241.092 365.152 DL
244.332 365.224 242.748 365.152 DL 245.844 365.368 244.332 365.224 DL
247.14 365.44 245.844 365.368 DL 248.292 365.512 247.14 365.44 DL
249.156 365.584 248.292 365.512 DL 250.524 365.8 249.156 365.584 DL
250.524 365.8 MT -7.416 .648 RL .576 -3.528 RL CL BL 250.524 365.8 MT
-7.416 .648 RL .576 -3.528 RL CL ST 250.452 417.064 250.524 417.064 DL
250.164 417.064 250.452 417.064 DL 249.732 417.136 250.164 417.064 DL
249.012 417.136 249.732 417.136 DL 248.076 417.208 249.012 417.136 DL
246.924 417.208 248.076 417.208 DL 245.556 417.208 246.924 417.208 DL
244.116 417.208 245.556 417.208 DL 242.532 417.136 244.116 417.208 DL
240.948 417.064 242.532 417.136 DL 239.436 416.92 240.948 417.064 DL
237.924 416.704 239.436 416.92 DL 236.484 416.56 237.924 416.704 DL
235.26 416.272 236.484 416.56 DL 234.036 415.984 235.26 416.272 DL
232.956 415.552 234.036 415.984 DL 231.948 415.12 232.956 415.552 DL
231.084 414.616 231.948 415.12 DL 230.292 414.04 231.084 414.616 DL
229.572 413.392 230.292 414.04 DL 228.924 412.6 229.572 413.392 DL
228.276 411.736 228.924 412.6 DL 227.772 410.872 228.276 411.736 DL
227.34 409.936 227.772 410.872 DL 226.908 409 227.34 409.936 DL 226.548
407.992 226.908 409 DL 226.188 406.912 226.548 407.992 DL 225.9 405.76
226.188 406.912 DL 225.612 404.536 225.9 405.76 DL 225.324 403.312
225.612 404.536 DL 225.108 401.944 225.324 403.312 DL 224.964 400.576
225.108 401.944 DL 224.748 399.136 224.964 400.576 DL 224.604 397.696
224.748 399.136 DL 224.532 396.184 224.604 397.696 DL 224.46 394.6
224.532 396.184 DL 224.46 393.088 224.46 394.6 DL 224.46 391.504 224.46
393.088 DL 224.532 389.992 224.46 391.504 DL 224.604 388.48 224.532
389.992 DL 224.748 386.968 224.604 388.48 DL 224.964 385.528 224.748
386.968 DL 225.108 384.16 224.964 385.528 DL 225.324 382.792 225.108
384.16 DL 225.612 381.424 225.324 382.792 DL 225.9 380.2 225.612 381.424
DL 226.188 379.048 225.9 380.2 DL 226.548 377.896 226.188 379.048 DL
226.908 376.816 226.548 377.896 DL 227.34 375.808 226.908 376.816 DL
227.772 374.944 227.34 375.808 DL 228.348 373.792 227.772 374.944 DL
229.068 372.856 228.348 373.792 DL 229.788 371.92 229.068 372.856 DL
230.508 371.128 229.788 371.92 DL 231.444 370.48 230.508 371.128 DL
232.524 369.76 231.444 370.48 DL 233.676 369.184 232.524 369.76 DL 234.9
368.68 233.676 369.184 DL 236.268 368.176 234.9 368.68 DL 237.78 367.744
236.268 368.176 DL 239.436 367.384 237.78 367.744 DL 241.092 367.024
239.436 367.384 DL 242.82 366.736 241.092 367.024 DL 244.476 366.448
242.82 366.736 DL 246.06 366.232 244.476 366.448 DL 247.428 366.088
246.06 366.232 DL 248.58 366.016 247.428 366.088 DL 250.524 365.8 248.58
366.016 DL 250.524 365.8 MT -6.984 2.592 RL -.432 -3.6 RL CL BL 250.524
365.8 MT -6.984 2.592 RL -.432 -3.6 RL CL ST F1(r[10]=0;)253.98 232.636
Q F0(1)405.594 232.636 Q F1(r[9]=1;)253.98 242.86 Q
(r[11]=HI[_somecond];)253.98 253.156 Q(PC=L18;)253.98 263.38 Q F0(2)
405.594 290.74 Q F1(IC=r[9]?75;)253.98 290.74 Q(L19)227.484 290.74 Q
(PC=IC<=0,L21;)253.98 301.036 Q F0(3)405.594 328.324 Q F1
(r[8]=R[r[11]+LO[_somecond]];)253.98 328.324 Q(L21)227.484 410.476 Q F0
(5)405.594 410.476 Q F1(IC=r[8]?0;)253.98 338.62 Q(PC=IC==0,L21;)253.98
348.916 Q F0(4)405.594 376.276 Q F1(PC=RT;)253.98 376.276 Q
(IC=r[9]?300;)253.98 403.564 Q(PC=IC>0,L17;)253.98 413.86 Q(L17)227.484
379.66 Q(r[10]=r[10]+1;)253.98 441.22 Q(L18)227.484 482.26 Q F0(6)
405.594 441.22 Q F1(r[9]=r[9]+3;)253.98 451.444 Q(IC=r[10]?100;)253.98
478.804 Q F0(7)405.594 478.804 Q F1(PC=IC>=0,L17;)253.98 489.1 Q F0(8)
405.594 516.46 Q F1(PC=L19;)253.98 516.46 Q F2(\(b\) Corr)256.892 536.98
Q(esponding SP)-.162 E(ARC Instructions)-.666 E(\(a\) Sour)301.941
208.66 Q(ce Code)-.162 E F1(for \(i = 0, j = 1; i < 100; i++, j += 3\))
246.204 171.004 Q(if \(j > 75 && somecond || j > 300\))262.404 181.3 Q
(break;)278.604 191.524 Q(})230.004 201.82 Q(main\(\))230.004 123.124 Q
({)230.004 133.42 Q(int i, j;)246.204 143.644 Q(extern int somecond;)
246.204 153.94 Q/F3 12/Times-Roman@0 SF
(Figure 2: Example Loop with Multiple Exits)218.796 679.36 Q(18)319.8
725.04 Q EP
%%Page: 19 21
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Courier-Bold@0 SF(//)145.42 93.4 Q/F1 10/Times-Italic@0 SF -.45
(Fi)6 G(nd the iter).45 E(ation br)-.15 E(anc)-.15 E(hes that can dir)
-.15 E(ectly af)-.37 E(fect the number of iter)-.18 E(ations.)-.15 E/F2
10/Times-Roman@0 SF 2.5(I={)145.42 104.8 S(})-2.5 E F0(FOR)145.42 116.2
Q F2(each block B in the loop L)6 E F0(DO)6 E(IF \()163.42 127.6 Q F2
2.5(Bh)C(as tw)-2.5 E 2.5(os)-.1 G(uccs S1 and S2)-2.5 E F0 6(\)T)C(HEN)
-6 E(IF \()181.42 139 Q F2(S1)A/F3 10/Symbol SF3.3 E F2 4.675(/L)
-5.755 G F0 6(\)O)-4.675 G 6(R\()-6 G F2(S2)-6 E F33.3 E F2 4.675
(/L)-5.755 G F0 6(\)O)-4.675 G 6(R\()-6 G F2(S1)-6 E F33.3 E F2
(PostDom\(Header\(L\)\))1.7 E F0 6(\)O)C(R)-6 E(\()199.42 150.4 Q F2(S2)
A F33.3 E F2(PostDom\(Header\(L\)\))1.7 E F0 6(\)T)C(HEN)-6 E F2 2.5
(I=I)217.42 161.8 S F3A F2(B)2.5 E F0(END IF)181.42 173.2 Q(END IF)
163.42 184.6 Q(END FOR)145.42 196 Q(//)145.42 218.8 Q F1 -.45(Fi)6 G
(nd the iter).45 E(ation br)-.15 E(anc)-.15 E(hes that can indir)-.15 E
(ectly af)-.37 E(fect the number of iter)-.18 E(ations.)-.15 E F0(DO)
145.42 230.2 Q(FOR)163.42 241.6 Q F2(each block B in the loop L)6 E F0
(DO)6 E(IF \()181.42 253 Q F2 2.5(Bh)C(as tw)-2.5 E 2.5(os)-.1 G
(uccs S1 and S2)-2.5 E F0 6(\)A)C(ND \()-6 E F2(B)A F33.3 E F2 4.675
(/I)-5.755 G F0 6(\)T)-4.675 G(HEN)-6 E(IF \()199.42 264.4 Q F2(there e)
A(xists J,K)-.15 E F33.3 E F2(I)1.7 E F0 6(\)A)C(ND \()-6 E F2(J)A
F32.5 E F2(K)2.5 E F0 6(\)A)C(ND \()-6 E F2(S1)A F33.3 E F2
(PostDom\(J\))1.7 E F0 6(\)A)C(ND)-6 E(\()217.42 275.8 Q F2(S2)A F3
3.3 E F2(PostDom\(K\))1.7 E F0 6(\)T)C(HEN)-6 E F2 2.5(I=I)217.42 287.2
S F3A F2(B)2.5 E F0(END IF)199.42 298.6 Q(END IF)181.42 310 Q
(END FOR)163.42 321.4 Q(WHILE \()145.42 332.8 Q F2(an)A 2.5(yc)-.15 G
(hange to I)-2.5 E F0(\))A/F4 12/Times-Roman@0 SF
(Figure 3: Finding the Set of Iteration Branches for a Loop)186.816
360.94 Q .65(since it has a transition to block 6, which is post-domina\
ted by the loop header)111.6 396.02 R 6.651(.B)-.66 G(locks)-6.651 E
1.976(3, 5, and 7 are identi\214ed as ha)111.6 422.02 R 1.976
(ving iteration branches since the)-.24 F 4.976(yh)-.18 G -2.7 -.24
(av e)-4.976 H 4.976(at)5.216 G 1.976(ransition to)-4.976 F 2.181
(block 4, which is not in the loop.)111.6 448.02 R 2.181
(Block 2 is added to the set of blocks containing)8.181 F 1.794(iterati\
on branches since it can transfer to either block 3 or block 5, which h\
a)111.6 474.02 R 2.154 -.18(ve b)-.24 H(een).18 E .714
(identi\214ed as containing iteration branches.)111.6 500.02 R .714
(In other w)6.714 F .714(ords, block 2 can indirectly af)-.12 F(fect)-.3
E(the number of iterations of the loop.)111.6 526.02 Q 2.019
(Once the blocks containing iteration branches for the loop ha)126.6
552.02 R 2.379 -.18(ve b)-.24 H 2.019(een identi\214ed, a).18 F .862(pr\
ecedence is established that represents the order that these blocks can\
be e)111.6 578.02 R -.18(xe)-.18 G .863(cuted on).18 F(an)111.6 604.02
Q 4.808(yg)-.18 G -2.58 -.3(iv e)-4.808 H 4.808(ni).3 G 1.808
(teration of the loop.)-4.808 F 1.807
(This precedence relationship can be represented as a)7.807 F .717
(Directed Ac)111.6 630.02 R .717(yclic Graph \(D)-.18 F -.48(AG)-.48 G
3.717(\). The).48 F .717(nodes in the D)3.717 F 1.677 -.48(AG r)-.48 H
.717(epresent the blocks containing).48 F .359
(the iteration branches and tw)111.6 656.02 R 3.358(oa)-.12 G .358
(dditional nodes,)-3.358 F/F5 12/Times-Italic@0 SF(continue)3.358 E F4
(and)3.358 E F5(br)3.358 E(eak)-.444 E F4 6.358(.F)C .358(igure 4 sho)
-6.358 F .358(ws the)-.3 F 4.268 -.48(DAG d)111.6 682.02 T 3.308(epicti\
ng the precedence relationship between the blocks containing iteration)
.48 F(19)319.8 725.04 Q EP
%%Page: 20 22
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF .01(branches from Figure 2.)111.6 95 R .01
(The construction of the D)6.01 F .97 -.48(AG c)-.48 H .01
(an conceptually be accomplished).48 F .138(by starting with the graph \
representing the loop, replacing all back edges with transitions)111.6
121 R(to)111.6 147 Q/F1 12/Times-Italic@0 SF(continue)5.207 E F0 5.207
(,r)C 2.206
(eplacing each transition out of the loop with a transition to)-5.207 F
F1(br)5.206 E(eak)-.444 E F0 5.206(,a)C(nd)-5.206 E .496
(collapsing all nodes that do not represent iteration branches.)111.6
173 R .497(The actual implementation)6.497 F 2.988(of the D)111.6 199 R
3.948 -.48(AG c)-.48 H 2.988
(onstruction started with only nodes representing).48 F F1(continue)
5.988 E F0(,)A F1(br)5.988 E(eak)-.444 E F0 5.988(,a)C(nd)-5.988 E 6.22
(blocks containing iteration branches and used domination and post-domi\
nation)111.6 225 R .059
(information to establish the edges between the nodes.)111.6 251 R .059
(This algorithm is essentially a sort)6.059 F(and requires)111.6 277 Q
F1(O)3 E F0(\()A F1(I)A/F2 10/Times-Roman@0 SF(2)-6 I F0 3(\)c)6 K
(omple)-3 E(xity)-.18 E 3(,w)-.78 G(here)-3 E F1(I)3 E F0
(is the number of iteration branches in the loop.)3 E 3(4.1.2 When)111.6
312.1 R .48 LW 371.208 315.1 111.6 315.1 DL
(Each Iteration Branch Changes Direction)173.256 312.1 Q .218(In this s\
ubsection a technique is presented that calculates when each iteration \
branch can)111.6 344.6 R 1.446
(change its result based on the number of loop iterations performed.)
111.6 370.6 R 1.445(This technique is)7.445 F .72(similar to those used\
by other compilers that can calculate the number of iterations of a)
111.6 396.6 R .067(loop with a single e)111.6 422.6 R .067(xit [22].)
-.18 F -.18(Fo)6.067 G 3.067(re).18 G .067(ach iteration branch)-3.067 F
F1(vpo)3.067 E F0(deri)3.067 E -.18(ve)-.3 G 3.067(st).18 G .066
(he information sho)-3.067 F(wn)-.3 E 370.8 480.272 MT 0 -18 RL -18 0 RL
0 18 RL CL .44 LW ST 334.8 498.272 352.8 480.272 DL 334.8 498.272 MT
3.816 -6.336 RL 2.52 2.52 RL CL BL 334.8 498.272 MT 3.816 -6.336 RL 2.52
2.52 RL CL ST 388.8 498.272 370.8 480.272 DL 388.8 498.272 MT -6.336
-3.816 RL 2.52 -2.52 RL CL BL 388.8 498.272 MT -6.336 -3.816 RL 2.52
-2.52 RL CL ST 262.8 570.272 280.8 552.272 DL 262.8 570.272 MT 3.816
-6.336 RL 2.52 2.52 RL CL BL 262.8 570.272 MT 3.816 -6.336 RL 2.52 2.52
RL CL ST 298.8 552.272 MT 0 -18 RL -18 0 RL 0 18 RL CL ST 316.8 570.272
298.8 552.272 DL 316.8 570.272 MT -6.336 -3.816 RL 2.52 -2.52 RL CL BL
316.8 570.272 MT -6.336 -3.816 RL 2.52 -2.52 RL CL ST 334.8 516.272 MT 0
-18 RL -18 0 RL 0 18 RL CL ST 298.8 534.272 316.8 516.272 DL 298.8
534.272 MT 3.816 -6.336 RL 2.52 2.52 RL CL BL 298.8 534.272 MT 3.816
-6.336 RL 2.52 2.52 RL CL ST 334.8 588.272 MT 0 -18 RL -18 0 RL 0 18 RL
CL ST 325.8 570.272 325.8 516.272 DL 325.8 570.272 MT -1.8 -7.2 RL 3.6 0
RL CL BL 325.8 570.272 MT -1.8 -7.2 RL 3.6 0 RL CL ST 298.8 606.272
316.8 588.272 DL 298.8 606.272 MT 3.816 -6.336 RL 2.52 2.52 RL CL BL
298.8 606.272 MT 3.816 -6.336 RL 2.52 2.52 RL CL ST 352.8 606.272 334.8
588.272 DL 352.8 606.272 MT -6.336 -3.816 RL 2.52 -2.52 RL CL BL 352.8
606.272 MT -6.336 -3.816 RL 2.52 -2.52 RL CL ST(7)358.8 475.78 Q(2)322.8
512 Q/F3 12/Times-Bold@0 SF(br)373.908 512 Q(eak)-.216 E(br)247.908 584
Q(eak)-.216 E F0(5)322.8 584 Q(3)286.8 548 Q F3(continue)276.798 620 Q
(br)337.908 620 Q(eak)-.216 E F0(Figure 4: Precedence Relationship betw\
een Iteration Branches in Figure 2)148.332 640.4 Q(20)319.8 725.04 Q EP
%%Page: 21 23
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 1.892(in T)111.6 95 R 1.892(able 7.)-.96 F 1.892
(When all of the requirements listed in T)7.892 F 1.892
(able 7 are satis\214ed, the iteration)-.96 F .927
(branch is classi\214ed as)111.6 121 R/F1 12/Times-Italic@0 SF(known)
3.927 E F0 6.927(.O)C .927
(therwise, the iteration branch is classi\214ed as)-6.927 F F1(unknown)
3.927 E F0(.)A 2.365(Note that detection of)111.6 147 R F1(unknown)5.365
E F0 2.366(iteration branches in a loop does not mean that the)5.366 F
3.378(number of iterations of a loop cannot be bounded.)111.6 173 R
3.377(Using the deri)9.377 F -.18(ve)-.3 G 6.377(dv).18 G 3.377
(alues, the)-6.677 F .816(compiler applies Equation 1 to straightforw)
111.6 199 R .816(ardly calculate on which iteration,)-.12 F F1(N)3.817 E
/F2 10/Times-Italic@0 SF(i)A F0 3.817(,t)C .817(hat a)-3.817 F F1(known)
111.6 225 Q F0 .465(iteration branch)3.465 F F1(i)3.465 E F0 .465
(will change direction.)3.465 F -.96(Ta)6.465 G .465(ble 8 sho).96 F
.466(ws the v)-.3 F .466(alues deri)-.3 F -.18(ve)-.3 G 3.466(df).18 G
.466(or the)-3.466 F -.18(ex)111.6 251 S .776(ample in Figure 2.).18 F
.775(The iteration branch in block 3 is classi\214ed as)6.775 F F1
(unknown)3.775 E F0 .775(since the)3.775 F F1(variable)111.6 277 Q/F3 12
/Courier@0 SF(somecond)3.442 E F0 .442(is not a basic induction v)3.442
F 3.442(ariable. The)-.3 F(comple)3.442 E .442(xity of this algorithm)
-.18 F(is)111.6 303 Q F1(O)3.012 E F0(\()A F1(I)A F0 .012(\), where)B F1
(I)3.012 E F0 .012(is the number of iteration branches, since each iter\
ation branch need only)3.012 F(be e)111.6 329 Q(xamined once.)-.18 E
(\(1\))526.008 371.8 Q F1(N)214.08 371.92 Q/F4 8/Times-Italic@0 SF(i)
.524 2.4 M/F5 12/Symbol SF(=)4.248 -2.4 M3.36 -10.02 M-4.608 12
M-4.608 12 M F1(limit)1.548 -22.38 M F4(i).524 2.4 M F5(-)3.528 -2.4
M F0(\()2.64 E F1(initial).012 E F4(i).524 2.4 M F5(+)3.528 -2.4 M F1
(before)2.964 E F4(i).224 2.4 M F0(\)).888 -2.4 M F5(+)2.64 E F1(adjust)
3.036 E F4(i).524 2.4 M F1(before)-119.916 14.4 M F4(i).224 2.4 M F5(+)
3.528 -2.4 M F1(after)3.036 E .48 LW 414.444 368.8 245.076 368.8 DL F4
(i)363.092 382.72 Q F550.568 -20.82 M-4.608 12 M-4.608 12 M
(+)2.64 -13.98 M F0(1)2.64 E .029(In addition, v)126.6 410.7 R .029
(arious checks ha)-.3 F .389 -.18(ve t)-.24 H 3.029(ob).18 G 3.03(em)
-3.029 G .03(ade in case the iteration branch will al)-3.03 F -.12(wa)
-.12 G .03(ys or).12 F(ne)111.6 436.7 Q -.18(ve)-.3 G 3.843(rb).18 G
3.843(es)-3.843 G 3.843(atis\214ed. These)-3.843 F .843
(checks depend on whether the)3.843 F F1(limit)3.842 E F0 .842
(is greater or less than the)3.842 F F1(initial)111.6 462.7 Q F0 -.3(va)
3.262 G .262(lue, whether the sum of the).3 F F1(befor)3.262 E(e)-.444 E
F0(and)3.262 E F1(after)3.263 E F0 -.3(va)3.263 G .263
(lues are greater or less than zero,).3 F 2.708
(and the relational operator used in the comparison.)111.6 488.7 R 2.707
(Figure 5 sho)8.707 F 2.707(ws tw)-.3 F 5.707(ol)-.12 G 2.707(oops that)
-5.707 F 1.887(require special checks.)111.6 514.7 R 1.887
(The implementation detects that the loop in Figure 5\(a\) e)7.887 F
(xits)-.18 E 2.061(after a single iteration.)111.6 540.7 R 2.06
(Recall that the timing analyzer')8.061 F 5.06(sd)-.66 G 2.06
(e\214nition of the number of)-5.06 F .335(iterations is the number of \
times that the loop header block \(i.e. testing)111.6 566.7 R F3 7.536
(i>1)3.336 G(00)-7.536 E F0 .336(in the)3.336 F -.18(ex)111.6 592.7 S
.49(ample\) is e).18 F -.18(xe)-.18 G .49
(cuted once the loop is entered [25].).18 F .489
(The loop in Figure 5\(b\) is classi\214ed)6.49 F(as)111.6 618.7 Q F1
(unbounded)5.036 E F0 2.036(since the loop may ne)5.036 F -.18(ve)-.3 G
5.036(re).18 G 2.036(xit depending on ho)-5.216 F 5.037(wo)-.3 G -.18
(ve)-5.217 G(r\215o).18 E 5.037(wo)-.3 G 5.037(fn)-5.037 G -2.7 -.18
(eg a)-5.037 H(ti).18 E -.18(ve)-.3 G(inte)111.6 644.7 Q(ger v)-.18 E
(alues is handled.)-.3 E(21)319.8 725.04 Q EP
%%Page: 22 24
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF -.96(Ta)186.48 108.4 S
(ble 7: Information Calculated for Each Iteration Branch).96 E .4 LW 540
117.1 111.6 117.1 DL/F1 10/Helvetica@0 SF -1.2(Te)122.46 127.14 S 70.555
.25(rm E)1.2 H 134.625(xplanation Requirement)-.25 F 540 132.78 111.6
132.78 DL 540 134.78 111.6 134.78 DL/F2 10/Times-Italic@0 SF(variable)
116.985 144.82 Q F1 3.114(The control v)163.8 144.82 R -2.63(ar iab)-.25
F 3.114(le on which the)-.2 F(br)163.8 156.22 Q 2.124(anch depends)-.1 F
4.904(,w)-.15 G 2.124(hich is the v)-4.904 F -2.63(ar i-)-.25 F(ab)163.8
167.62 Q 3.172(le being compared in the b)-.2 F(loc)-.2 E(k)-.2 E
(containing the iter)163.8 179.02 Q(ation br)-.1 E(anch.)-.1 E 1.11
(The control v)337.95 144.82 R -2.63(ar iab)-.25 F 1.11(le m)-.2 F 1.11
(ust be a basic induc-)-.1 F 2.448(tion v)337.95 156.22 R -2.63(ar iab)
-.25 F(le)-.2 E 5.227(,w)-.15 G 2.447(hich is a v)-5.227 F -2.63(ar iab)
-.25 F(le)-.2 E/F3 10/Courier@0 SF(v)5.227 E F1(whose)5.227 E 1.289
(only assignments within the loop are of the)337.95 167.62 R -.3(fo)
337.95 179.02 S .25(rm).3 G F3 7.807(v:)4.337 G 7.807(=v)-7.807 G/F4 10
/Symbol SFA F3(c)7.807 E F1(where)4.587 E F3(c)4.587 E F1 1.807
(is a constant)4.587 F([39].)337.95 190.42 Q 540 196.06 111.6 196.06 DL
F2(limit)124.48 206.1 Q F1 3.212(The v)163.8 206.1 R 3.212
(alue being compared to the)-.25 F F2(variable)163.8 217.5 Q F1 2.134
(in the b)4.914 F(loc)-.2 E 4.914(kc)-.2 G 2.134(ontaining the)-4.914 F
(br)163.8 228.9 Q(anch.)-.1 E 2.097(The limit m)337.95 206.1 R 2.097
(ust be a constant.)-.1 F 2.098(Section 4.2)7.657 F -2.63(descr ibes)
337.95 217.5 R(ho)4.75 E 4.75(wt)-.15 G 1.97(his requirement can be re-)
-4.75 F(lax)337.95 228.9 Q(ed.)-.3 E 540 234.54 111.6 234.54 DL F2 -.37
(re)123.28 244.58 S(lop).37 E F1 .184(The relational oper)163.8 244.58 R
.184(ator used to com-)-.1 F(pare the)163.8 255.98 Q F2(variable)2.78 E
F1(and the)2.78 E F2(limit)2.78 E F1(.)A 1.019(The initial descr)337.95
244.58 R 1.018(iption requires that the rela-).15 F .356(tional oper)
337.95 255.98 R .357(ator be an inequality oper)-.1 F .357(ator \(i.e)
-.1 F(.)-.15 E(<,)337.95 267.38 Q F44.763 E F1(,)A F44.763 E F1
4.763(,a)C 1.983(nd >\).)-4.763 F 1.983(Subsection 4.1.5 e)7.543 F
(xplains)-.3 E(ho)337.95 278.78 Q 2.844(wt)-.15 G .064(his restr)-2.844
F .064(iction is relax).15 F .065(ed to handle more)-.3 F(accur)337.95
290.18 Q .079(ately the equality oper)-.1 F .078(ators \(i.e)-.1 F 2.858
(.=)-.15 G 2.858(=a)-2.858 G(nd)-2.858 E(!=\).)337.95 301.58 Q 540
307.22 111.6 307.22 DL F2(initial)121.7 317.26 Q F1 1.845(The v)163.8
317.26 R 1.845(alue of the)-.25 F F2(variable)4.625 E F1 1.845(when the)
4.625 F(loop is entered.)163.8 328.66 Q/F5 8/Helvetica@0 SF(3)-5 I F1
1.816(The initial v)337.95 317.26 R 1.816(alue m)-.25 F 1.816
(ust be a constant.)-.1 F(Sec-)7.375 E .856(tion 4.2 descr)337.95 328.66
R .857(ibes ho).15 F 3.637(wt)-.15 G .857(his requirement can)-3.637 F
(be relax)337.95 340.06 Q(ed.)-.3 E 540 345.7 111.6 345.7 DL F2(befor)
121.06 355.74 Q(e)-.37 E F1 .729(The amount b)163.8 355.74 R 3.508(yw)
-.2 G .728(hich the)-3.508 F F2(variable)3.508 E F1(is)3.508 E 2.385
(changed bef)163.8 367.14 R 2.385(ore reaching the iter)-.3 F(a-)-.1 E
(tion br)163.8 378.54 Q(anch in each iter)-.1 E(ation.)-.1 E .886
(The amount b)337.95 355.74 R 3.666(yw)-.2 G .886(hich the control v)
-3.666 F -2.63(ar iab)-.25 F .885(le is)-.2 F .225
(incremented or decremented m)337.95 367.14 R .225(ust be a con-)-.1 F
1.24(stant and these constant changes m)337.95 378.54 R 1.24(ust oc-)-.1
F(cur on each complete iter)337.95 389.94 Q(ation of the loop)-.1 E(.)
-.35 E F5(4)-5 I 540 395.58 111.6 395.58 DL F2(after)124.205 405.62 Q F1
.728(The amount b)163.8 405.62 R 3.508(yw)-.2 G .728(hich the)-3.508 F
F2(variable)3.509 E F1(is)3.509 E 1.198(changed after reaching the iter)
163.8 417.02 R(ation)-.1 E(br)163.8 428.42 Q(anch in each iter)-.1 E
(ation.)-.1 E .885(The amount b)337.95 405.62 R 3.666(yw)-.2 G .886
(hich the control v)-3.666 F -2.63(ar iab)-.25 F .886(le is)-.2 F .225
(incremented or decremented m)337.95 417.02 R .225(ust be a con-)-.1 F
1.24(stant and these constant changes m)337.95 428.42 R 1.24(ust oc-)-.1
F(cur on each complete iter)337.95 439.82 Q(ation of the loop)-.1 E(.)
-.35 E 540 445.46 111.6 445.46 DL F2(adjust)121.425 455.5 Q F1 .152
(An adjustment v)163.8 455.5 R .151(alue of 0 or 1, which)-.25 F 2.02
(compensates f)163.8 466.9 R 2.02(or the diff)-.3 F 2.02(erence be-)-.3
F(tw)163.8 478.3 Q 3.973(een relational oper)-.1 F 3.972(ators \(e)-.1 F
3.972(.g. <)-.15 F(and)163.8 489.7 Q F42.78 E F1(\).)A 540 494.2
111.6 494.2 DL 331.875 117.1 331.875 494.2 DL 157.725 117.1 157.725
494.2 DL 540 117.1 540 494.2 DL 111.6 117.1 111.6 494.2 DL F0 -.96(Ta)
165.222 519.1 S(ble 8: Deri).96 E -.18(ve)-.3 G 3(dI).18 G
(nformation for Each Iteration Branch in Figure 2)-3 E .36 LW 534.969
527.55 116.631 527.55 DL/F6 9/Helvetica@0 SF(br)121.495 536.7 Q 16.502
(anch v)-.09 F -2.367(ar iab)-.225 F 16.137(le register)-.18 F 10.998
(limit relop initial bef)13.5 F 10.998(ore after adjust)-.27 F 22.946
(class N)21.19 F 534.969 542.09 116.631 542.09 DL -.18(bl)121.131 552.38
S(oc).18 E 5.994 2.502(k2 j)-.18 H 22.491(r[9] 75)61.519 F 23.495(<= 1)
18.738 F 30.123(03)31.369 G 23.004(1k)-.616 G(no)-23.004 E 26.01(wn 26)
-.135 F -.18(bl)121.131 563.78 S(oc).18 E 5.994 2.502(k3 s)-.18 H 22
(omecond r[8])-2.502 F 18.738(0=)29.997 G 20.997(=N)-18.738 G 23.868
(/A 0)-20.997 F 24.507(0N)30.123 G 15.503(/A unkno)-24.507 F 11.002
(wn N/A)-.135 F -.18(bl)121.131 575.18 S(oc).18 E 5.994 2.502(k5 j)-.18
H 17.487(r[9] 300)61.519 F -28.383 28.625(>1 0)21.366 H 29.507(31)1.498
G(kno)-6.503 E 21.006(wn 101)-.135 F -.18(bl)121.131 586.58 S(oc).18 E
5.994 2.502(k7 i)-.18 H 17.487(r[10] 100)56.515 F 23.495(>= 0)18.738 F
30.123(01)31.369 G 23.004(0k)-.616 G(no)-23.004 E 21.006(wn 101)-.135 F
534.969 590.83 116.631 590.83 DL 508.707 527.55 508.707 590.83 DL
458.324 527.55 458.324 590.83 DL 460.324 527.55 460.324 590.83 DL
421.812 527.55 421.812 590.83 DL 390.303 527.55 390.303 590.83 DL
351.558 527.55 351.558 590.83 DL 317.556 527.55 317.556 590.83 DL
284.049 527.55 284.049 590.83 DL 254.556 527.55 254.556 590.83 DL 211.05
527.55 211.05 590.83 DL 155.033 527.55 155.033 590.83 DL 157.033 527.55
157.033 590.83 DL 534.969 527.55 534.969 590.83 DL 116.631 527.55
116.631 590.83 DL .32 LW 115.6 621.656 111.6 621.656 DL 119.6 621.656
115.6 621.656 DL 123.6 621.656 119.6 621.656 DL 127.6 621.656 123.6
621.656 DL 131.6 621.656 127.6 621.656 DL 135.6 621.656 131.6 621.656 DL
139.6 621.656 135.6 621.656 DL 143.6 621.656 139.6 621.656 DL 147.6
621.656 143.6 621.656 DL 151.6 621.656 147.6 621.656 DL 155.6 621.656
151.6 621.656 DL 159.6 621.656 155.6 621.656 DL 163.6 621.656 159.6
621.656 DL 167.6 621.656 163.6 621.656 DL 171.6 621.656 167.6 621.656 DL
175.6 621.656 171.6 621.656 DL 179.6 621.656 175.6 621.656 DL 183.6
621.656 179.6 621.656 DL 187.6 621.656 183.6 621.656 DL 191.6 621.656
187.6 621.656 DL 195.6 621.656 191.6 621.656 DL 199.6 621.656 195.6
621.656 DL 203.6 621.656 199.6 621.656 DL 207.6 621.656 203.6 621.656 DL
211.6 621.656 207.6 621.656 DL 215.6 621.656 211.6 621.656 DL 219.6
621.656 215.6 621.656 DL 223.6 621.656 219.6 621.656 DL 227.6 621.656
223.6 621.656 DL 231.6 621.656 227.6 621.656 DL 235.6 621.656 231.6
621.656 DL 239.6 621.656 235.6 621.656 DL 243.6 621.656 239.6 621.656 DL
247.6 621.656 243.6 621.656 DL 251.6 621.656 247.6 621.656 DL 255.6
621.656 251.6 621.656 DL/F7 6/Times-Roman@0 SF(3)133.2 627.268 Q/F8 8
/Times-Roman@0 SF .489(This v)2.489 4 N .489
(alue is found by searching backw)-.2 F .489(ards in the control \215o)
-.08 F 2.489(wf)-.2 G .489(or assignments to)-2.489 F/F9 8
/Times-Italic@0 SF(variable)2.489 E F8 4.489(.T)C .489
(he search starts with the)-4.489 F(preheader)111.6 640.868 Q 2(,w)-.32
G(hich is the block that has a transition to the loop header and is not\
in the loop.)-2 E F7(4)133.2 646.48 Q F8(In other w)2 4 M
(ords, the basic blocks containing these changes must dominate e)-.08 E
-.12(ve)-.2 G(ry predecessor block of the header that is in the).12 E
(loop.)111.6 660.08 Q F0(22)319.8 725.04 Q EP
%%Page: 23 25
%%BeginPageSetup
BP
%%EndPageSetup
478.8 136.72 MT 0 -40.32 RL -306 0 RL 0 40.32 RL CL .44 LW ST 324 96.4
324 137.008 DL/F0 9/Times-Bold@0 SF(\(a\) A Loop That Exits Immediately)
179.154 133.956 Q(\(b\) A Loop That May Ne)346.005 133.516 Q -.09(ve)
-.135 G 2.25(rE).09 G(xit)-2.25 E/F1 9/Courier@0 SF
(for \(i = 0; i > 100; i++\))176.4 107.668 Q(A;)192.6 118.756 Q
(for \(i = 0; i < 100; i--\))338.76 107.668 Q(A;)354.96 118.756 Q/F2 12
/Times-Roman@0 SF(Figure 5: T)211.68 160.048 Q .24 -.12(wo L)-.96 H
(oops Requiring Special Checks).12 E 3(4.1.3 When)111.6 195.128 R .48 LW
361.536 198.128 111.6 198.128 DL(Each Iteration Branch Can Be Reached)
173.256 195.128 Q .687(The ne)111.6 227.628 R .687
(xt step is to determine the iterations on which it is possible to e)
-.18 F -.18(xe)-.18 G .687(cute each node).18 F .174(of the D)111.6
253.628 R -.48(AG)-.48 G 6.174(.T).48 G .175(his information is recorde\
d as a range of iterations and a range is attached)-6.174 F .033
(to each node and edge.)111.6 279.628 R .033(The D)6.033 F .993 -.48
(AG i)-.48 H 3.033(sp).48 G .033
(rocessed in a preorder manner \(i.e. all predecessors)-3.033 F .374
(of a node are processed before the node is processed\).)111.6 305.628 R
.374(Calculating these ranges requires)6.374 F/F3 12/Times-Italic@0 SF
(O)111.6 331.628 Q F2(\()A F3(I)A F2 4.095(\)c)C(omple)-4.095 E(xity)
-.18 E 4.095(,w)-.78 G(here)-4.095 E F3(I)4.095 E F2 1.094
(is the number of iteration branches.)4.095 F 1.094(The head of the D)
7.094 F 2.054 -.48(AG i)-.48 H(s).48 E .912(assigned the range [1..)
111.6 357.628 R/F4 12/Symbol SFA F2 3.912(]. All)B .912
(other nodes are assigned a range that is the union of the)3.912 F .499
(ranges of all incoming edges.)111.6 383.628 R .498
(The outgoing edges of a node)6.499 F F3(i)3.498 E F2 .498
(are assigned ranges using)3.498 F(one of the follo)111.6 409.628 Q
(wing tw)-.3 E 3(or)-.12 G(ules:)-3 E(\(1\))111.6 440.228 Q/F5 11
/Times-Roman@0 SF .266(If iteration branch)10.008 F/F6 11/Times-Italic@0
SF(i)3.016 E F5(is)3.016 E F6(known)3.016 E F5 3.017(,t)C(hen)-3.017 E
F6 -.407(re)3.017 G(lop).407 E/F7 9/Times-Italic@0 SF(i)A F5 .267
(and the direction of the increment \(i.e. the sign of)3.017 F F6(befor)
135.6 453.628 Q(e)-.407 E F7(i)A F5(+)A F6(after)A F7(i)A F5 3.939(\)i)C
3.939(su)-3.939 G 1.188(sed to determine which edge is tak)-3.939 F
1.188(en on the \214rst)-.11 F F6(N)3.938 E F7(i)A F5 1.188
(-1 iterations.)B(That)6.688 E .513
(edge is assigned the range that is the intersection of [1..)135.6
467.028 R F6(N)A F7(i)A F5 .513(-1] and the range of node)B F6(i)3.264 E
F5 6.014(.T)C(he)-6.014 E .226(other outgoing edge is assigned the rang\
e that is the intersection of [)135.6 480.428 R F6(N)A F7(i)A F5(..)A/F8
11/Symbol SFA F5 2.976(]a)C .226(nd the range of)-2.976 F(node)135.6
493.828 Q F6(i)3.325 E F5 6.075(.I)C 3.325(far)-6.075 G .576
(ange assigned to an outgoing edge is empty)-3.325 F 3.326(,t)-.715 G
.576(hen this edge corresponds to an)-3.326 F
(infeasible transition and is deleted from the D)135.6 507.228 Q -.44
(AG)-.44 G(.).44 E F2(\(2\))111.6 524.828 Q F5 .983(If iteration branch)
8.008 F F6(i)3.733 E F5(is)3.733 E F6(unknown)3.733 E F5 3.733(,t)C .983
(hen both outgoing edges are assigned the same range as)-3.733 F(node)
133.6 538.228 Q F6(i)2.75 E F5(.)A F2 .692(Figure 6 sho)126.6 570.228 R
.692(ws the D)-.3 F 1.652 -.48(AG o)-.48 H 3.692(fi).48 G .692
(teration branches in Figure 4 with the range of possible)-3.692 F 1.374
(iterations for each node and edge also depicted.)111.6 599.028 R 1.374
(Nodes with)7.374 F F3(known)4.374 E F2 1.374(iteration branches)4.374 F
1.719(are mark)111.6 627.828 R 1.719(ed with a)-.12 F/F9 12/Times-Bold@0
SF(K)4.719 E F2(and)4.719 E F3(unknown)4.719 E F2 1.72
(iteration branches are mark)4.719 F 1.72(ed with a)-.12 F F9(U)4.72 E
F2 7.72(.I)C(teration)-7.72 E .035(branch 7 will tak)111.6 656.628 R
3.035(et)-.12 G .034
(he transition to branch 2 on the \214rst 100 iterations.)-3.035 F .034
(Note this iteration)6.034 F .258
(range of [1..100] corresponds to the v)111.6 685.428 R(ariable)-.3 E
/F10 12/Courier@0 SF(i)3.258 E F2 1.578 -.66('s v)D .259
(alue range of [0..99].).36 F .259(At this point, all)6.259 F(23)319.8
725.04 Q EP
%%Page: 24 26
%%BeginPageSetup
BP
%%EndPageSetup
418.5 146.92 MT 0 -33.84 RL -50.4 0 RL 0 33.84 RL CL .44 LW ST 351.18
163.48 368.1 146.56 DL 351.18 163.48 MT 3.816 -6.336 RL 2.52 2.52 RL CL
BL 351.18 163.48 MT 3.816 -6.336 RL 2.52 2.52 RL CL ST 435.78 163.48
418.86 146.56 DL 435.78 163.48 MT -6.336 -3.816 RL 2.52 -2.52 RL CL BL
435.78 163.48 MT -6.336 -3.816 RL 2.52 -2.52 RL CL ST 418.86 129.64
401.94 112.72 DL 350.82 197.32 MT 0 -33.84 RL -50.4 0 RL 0 33.84 RL CL
ST 283.5 214.24 300.42 197.32 DL 283.5 214.24 MT 3.816 -6.336 RL 2.52
2.52 RL CL BL 283.5 214.24 MT 3.816 -6.336 RL 2.52 2.52 RL CL ST 351.18
180.4 334.26 163.48 DL 300.42 265 283.5 248.08 DL 300.42 265 MT -6.336
-3.816 RL 2.52 -2.52 RL CL BL 300.42 265 MT -6.336 -3.816 RL 2.52 -2.52
RL CL ST 215.82 265 232.74 248.08 DL 215.82 265 MT 3.816 -6.336 RL 2.52
2.52 RL CL BL 215.82 265 MT 3.816 -6.336 RL 2.52 2.52 RL CL ST 283.5
231.16 266.58 214.24 DL 283.14 248.44 MT 0 -33.84 RL -50.4 0 RL 0 33.84
RL CL ST 350.82 298.84 MT 0 -33.84 RL -50.4 0 RL 0 33.84 RL CL ST 283.5
315.76 300.42 298.84 DL 283.5 315.76 MT 3.816 -6.336 RL 2.52 2.52 RL CL
BL 283.5 315.76 MT 3.816 -6.336 RL 2.52 2.52 RL CL ST 351.18 281.92
334.26 265 DL 342.756 265 342.756 197.32 DL 342.756 265 MT -1.8 -7.2 RL
3.6 0 RL CL BL 342.756 265 MT -1.8 -7.2 RL 3.6 0 RL CL ST/F0 11
/Times-Roman@0 SF(7)390.766 125.652 Q([1..)380.432 142.572 Q/F1 11
/Symbol SFA F0(])A/F2 9/Times-Roman@0 SF(K)411.363 121.836 Q F0(2)
323.014 175.972 Q([1..100])308.351 193.332 Q F2(K)343.683 172.596 Q/F3
11/Times-Bold@0 SF(br)422.129 175.972 Q(eak)-.198 E F0(3)255.334 227.172
Q([26..100])237.921 244.092 Q F2(U)276.003 223.356 Q F3(br)202.169
277.492 Q(eak)-.198 E F0([26..100])183.918 252.516 Q(5)323.014 277.932 Q
([1..100])308.351 294.852 Q F2(K)343.683 274.116 Q F0([1..100])257.17
302.836 Q F3(continue)263.332 328.692 Q F0([26..100])291.996 252.516 Q
([26..100])251.67 201.756 Q([1..100])324.778 150.996 Q([101..)427.284
150.996 Q F1A F0(])A([1..25])346.932 235.596 Q/F4 12/Times-Roman@0
SF(Figure 6: D)197.634 349.312 Q .96 -.48(AG o)-.48 H 3(fB).48 G
(ranches with Ranges of Iterations)-3 E -.3(va)111.6 385.792 S .737
(lues of v).3 F .737(ariables ha)-.3 F 1.097 -.18(ve b)-.24 H .736
(een abstracted as ranges of loop iterations.).18 F .736(Node 3 is mark)
6.736 F(ed)-.12 E 1.413(with a)111.6 414.592 R/F5 12/Times-Bold@0 SF(U)
4.413 E F4 1.413(to denote that its iteration branch is)4.413 F/F6 12
/Times-Italic@0 SF(unknown)4.414 E F4 7.414(.T)C 1.414(hus, its tw)
-7.414 F 4.414(oo)-.12 G 1.414(utgoing edges)-4.414 F(ha)111.6 443.392 Q
1.86 -.18(ve r)-.24 H 1.5(anges that match the range in node 3.).18 F
1.5(Node 5')7.5 F 4.5(st)-.66 G 1.5(ransition to a)-4.5 F F6(br)4.5 E
(eak)-.444 E F4 1.5(is deleted)4.5 F .007(since the range associated wi\
th that transition is empty \(i.e. the transition is not possible\).)
111.6 472.192 R 3(4.1.4 Determining)111.6 511.072 R .48 LW 374.928
514.072 111.6 514.072 DL(Minimum and Maximum Iterations)205.26 511.072 Q
.675
(The ranges of iterations associated with each node and edge of the D)
111.6 547.072 R 1.635 -.48(AG c)-.48 H .675(an be used to).48 F 1.228
(calculate the minimum and maximum number of iterations for the loop.)
111.6 575.872 R 3.148 -.96(To d)7.228 H(etermine).96 E 3.337
(the minimum and maximum iteration v)111.6 604.672 R 3.337
(alue for each iteration branch, the D)-.3 F 4.297 -.48(AG i)-.48 H(s)
.48 E .466(processed in a postorder manner \(i.e. all successors of the\
node are processed before the)111.6 633.472 R 2.806
(node can be processed\), which requires)111.6 662.272 R F6(O)5.805 E F4
(\()A F6(I)A F4 5.805(\)c)C(omple)-5.805 E(xity)-.18 E 5.805(,w)-.78 G
(here)-5.805 E F6(I)5.805 E F4 2.805(is the number of)5.805 F .237
(iteration branches.)111.6 691.072 R .237
(The minimum and maximum iteration v)6.237 F .237
(alues for the root node of the)-.3 F(24)319.8 725.04 Q EP
%%Page: 25 27
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 1.89 -.48(DAG w)111.6 96.4 T .93
(ill be the minimum and maximum iteration v).48 F .93
(alues for the entire loop.)-.3 F .93(Figure 7)6.93 F 2.009
(de\214nes the notation used in this subsection.)111.6 125.2 R 2.01
(Note that the range has been calculated)8.01 F
(using the rules de\214ned in Subsection 2.3.)111.6 154 Q 1.724
(The follo)126.6 182.8 R 1.724
(wing rules are used to assign minimum and maximum iteration v)-.3 F
1.724(alues to)-.3 F(edges.)111.6 211.6 Q(\(1\))111.6 243.6 Q/F1 11
/Times-Roman@0 SF .963(If an edge is to a)10.008 F/F2 11/Times-Italic@0
SF(br)3.713 E(eak)-.407 E F1 3.713(,t)C .963(hen both the)-3.713 F F2
(edg)3.713 E(e_e)-.11 E(xit_min)-.22 E F1(and)3.714 E F2(edg)3.714 E
(e_e)-.11 E(xit_max)-.22 E F1 .964(are assigned the)3.714 F -.275(va)
135.6 257 S .661(lue of).275 F F2(edg)3.411 E(e_r)-.11 E(ang)-.165 E
(e_min)-.11 E F1 6.161(.\()C .661(If there is a transition to a)-6.161 F
F2(br)3.41 E(eak)-.407 E F1 3.41(,t)C .66(hen the loop can only mak)
-3.41 F(e)-.11 E .276(that transition once.\))135.6 270.4 R .277
(This is the only point where a)5.777 F F2(bounded)3.027 E F1 -.275(va)
3.027 G .277(lue can be introduced since).275 F
(these are the only points where the loop can e)135.6 283.8 Q(xit.)-.165
E F0(\(2\))111.6 301.4 Q F1 .64(If an edge is to a)8.008 F F2(continue)
3.39 E F1 3.39(,t)C .64(hen the)-3.39 F F2(edg)3.39 E(e_e)-.11 E
(xit_min)-.22 E F1(and)3.39 E F2(edg)3.39 E(e_e)-.11 E(xit_max)-.22 E F1
-.275(va)3.39 G .639(lues for that edge).275 F .785(are mark)133.6 314.8
R .785(ed as)-.11 F F2(unbounded)3.535 E F1 3.535(,w)C .785
(hich will be denoted by `)-3.535 F/F3 11/Courier@0 SF(_)A F1 3.535
('. \(These)B .786(transitions do not supply)3.536 F(an)133.6 328.2 Q
2.75(yi)-.165 G(nformation about when the loop e)-2.75 E(xits.\))-.165 E
F0(\(3\))111.6 345.8 Q F1 3.391(Otherwise, the incoming edge is to a no\
de representing an iteration branch and the)8.008 F F2(edg)133.6 359.2 Q
(e_e)-.11 E(xit_min)-.22 E F1(and)4.313 E F2(edg)4.313 E(e_e)-.11 E
(xit_max)-.22 E F1 -.275(va)4.313 G 1.563
(lues assigned to the edge depend upon one of three).275 F .249
(possible relations between the range of the edge and the iteration v)
133.6 372.6 R .249(alues of the node.)-.275 F(These)5.748 E 412.2 481.08
MT 0 -28.8 RL -159.84 0 RL 0 28.8 RL CL .44 LW ST 252.288 452.352
223.632 415.488 DL 252.288 452.352 MT -5.832 -4.608 RL 2.808 -2.232 RL
CL BL 252.288 452.352 MT -5.832 -4.608 RL 2.808 -2.232 RL CL ST/F4 10
/Times-Bold@0 SF()262.414 469.172 Q
()248.256 440.296 Q
([edge_range_min..edge_range_max])240.048 423.88 Q 493.56 624.36 MT 0
-221.04 RL -335.52 0 RL 0 221.04 RL CL .4 LW ST/F5 10/Times-Roman@0 SF
(highest loop iteration when this edge can be reached)252.288 522.16 Q
(lo)252.288 505.816 Q(west loop iteration when this edge can be reached)
-.25 E F4(edge_range_min:)170.272 505.816 Q(edge_range_max:)168.612
522.16 Q(edge_exit_min:)179.162 538.576 Q F5
(\214rst iteration when this edge may lead to a break)252.288 538.576 Q
F4(node_exit_min:)178.042 587.68 Q(edge_exit_max:)177.502 554.92 Q F5
(\214rst iteration when this node may lead to a break)252.288 587.68 Q
F4(node_exit_max:)176.382 604.096 Q F5
(\214rst iteration when this edge must lead to a break)252.288 554.92 Q
(\214rst iteration when this node must lead to a break)252.288 604.096 Q
(\(on subsequent iterations it must also lead to a break\))252.288
567.232 Q(\(on subsequent iterations it must also lead to a break\))
252.288 616.336 Q F0
(Figure 7: Notation Used in Rules for Assigning Iteration V)172.644
647.4 Q(alues)-1.332 E(25)319.8 725.04 Q EP
%%Page: 26 28
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF .241
(relations and the corresponding edge assignments are depicted in T)
133.6 95.4 R .241(able 9.)-.88 F -.165(Fo)5.741 G 2.991(re).165 G .241
(xample, the)-3.156 F 1.52(edge assignment when)133.6 108.8 R/F1 11
/Times-Italic@0 SF(node_e)4.27 E(xit_min)-.22 E F0 1.519
(satis\214es case 1 and)4.27 F F1(node_e)4.269 E(xit_max)-.22 E F0 1.519
(satis\214es case 2)4.269 F -.11(wo)133.6 122.2 S 1.426(uld be <).11 F
F1(edg)A(e_r)-.11 E(ang)-.165 E(e_min)-.11 E F0(,)A F1(node_e)4.176 E
(xit_max)-.22 E F0 4.177(>. Case)B 4.177(1d)4.177 G 1.427
(epicts that the)-4.177 F F1(edg)4.177 E(e_e)-.11 E(xit)-.22 E F0 1.427
(is set to)4.177 F F1(edg)133.6 135.6 Q(e_r)-.11 E(ang)-.165 E(e_min)
-.11 E F0 .119(since this is the \214rst iteration the edge can be tra)
2.869 F -.165(ve)-.22 G .118(rsed when the edge may).165 F .18
(lead to a)133.6 149 R F1(br)2.93 E(eak)-.407 E F0 5.68(.C)C .18
(ase 2 sho)-5.68 F .18(ws that the)-.275 F F1(edg)2.93 E(e_e)-.11 E(xit)
-.22 E F0 .18(is set to the)2.93 F F1(node_e)2.931 E(xit)-.22 E F0 .181
(when it is within the)2.931 F 1.001
(range of iterations that the edge is e)133.6 162.4 R -.165(xe)-.165 G
3.751(cuted. Case).165 F 3.751(3i)3.751 G 1(llustrates that the)-3.751 F
F1(edg)3.75 E(e_e)-.11 E(xit)-.22 E F0 1(is set to)3.75 F F1(unbounded)
133.6 175.8 Q F0 .222
(when there is no iteration on which the edge will be tra)2.971 F -.165
(ve)-.22 G .222(rsed after the edge can).165 F(lead to a)133.6 189.2 Q
F1(br)2.75 E(eak)-.407 E F0(.)A/F2 12/Times-Roman@0 SF 1.724(The follo)
126.6 221.2 R 1.724
(wing rules are used to assign minimum and maximum iteration v)-.3 F
1.724(alues to)-.3 F(nodes.)111.6 250 Q(\(1\))111.6 282 Q F0(The)10.008
E F1(node_e)2.859 E(xit_min)-.22 E F0 .11
(for a node is set to the smallest of the)2.859 F F1 .11(bounded edg)
2.86 F(e_e)-.11 E(xit_min)-.22 E F0 -.275(va)2.86 G .11(lues on).275 F
1.424(the outgoing edges of the node or is denoted as)135.6 295.4 R F1
(unbounded)4.174 E F0 1.424(if both outgoing edges ha)4.174 F -.165(ve)
-.22 G F1 .167(unbounded edg)135.6 308.8 R(e_e)-.11 E(xit_min)-.22 E F0
-.275(va)2.917 G 2.917(lues. \(The).275 F .168(smallest v)2.917 F .168
(alue represents the \214rst possibility to e)-.275 F(xit)-.165 E
(the loop.\))135.6 322.2 Q F2(\(2\))111.6 339.8 Q F0 .131
(If the iteration branch associated with a node is classi\214ed as)8.008
F F1(known)2.881 E F0 2.88(,t)C .13(hen the)-2.88 F F1(node_e)2.88 E
(xit_max)-.22 E F0 1.49(for the node is set to the smallest of the)133.6
353.2 R F1 1.491(bounded edg)4.241 F(e_e)-.11 E(xit_max)-.22 E F0 -.275
(va)4.241 G 1.491(lues on the outgoing).275 F 1.136
(edges or is denoted as)133.6 366.6 R F1(unbounded)3.885 E F0 1.135
(if both outgoing edges ha)3.885 F -.165(ve)-.22 G F1 1.135
(unbounded edg)4.05 F(e_e)-.11 E(xit_max)-.22 E F0 -.275(va)133.6 380 S
2.75(lues. \(The).275 F(loop has to e)2.75 E
(xit when it will encounter a)-.165 E F1(br)2.75 E(eak)-.407 E F0(.\))A
F2(\(3\))111.6 397.6 Q F0 4.612
(If the iteration branch associated with a node is classi\214ed as)8.008
F F1(unknown)7.362 E F0 7.362(,t)C 4.612(hen the)-7.362 F F1(node_e)
133.6 411 Q(xit_max)-.22 E F0 .053(for the node is set to the lar)2.804
F .053(gest of the)-.198 F F1(edg)2.803 E(e_e)-.11 E(xit_max)-.22 E F0
-.275(va)2.803 G .053(lues on the outgoing).275 F 1.41
(edges of the node or is denoted as)133.6 424.4 R F1(unbounded)4.161 E
F0 1.411(if either outgoing edge has an)4.161 F F1(unbounded)4.161 E
(edg)133.6 437.8 Q(e_e)-.11 E(xit_max)-.22 E F0 -.275(va)4.056 G 4.056
(lue. \(Use).275 F 1.306(the lar)4.056 F 1.306(gest v)-.198 F 1.305
(alue when it is not guaranteed that the node will)-.275 F
(actually reach the e)133.6 451.2 Q(xit associated with a lo)-.165 E
(wer v)-.275 E(alue.\))-.275 E F2 -.96(Ta)165.966 498.316 S
(ble 9: Rules for Assigning Iteration V).96 E(alues to an Incoming Edge)
-1.332 E 0 0 316.8 326 -138.964 143 167.4 650.48 PBEGIN
%%BeginDocument: setedge.eps
%%BoundingBox: 0 0 326 143
%%Title: setedge.fig
%%Creator: fig2dev Version 3.1 Patchlevel 2
%%CreationDate: Mon Apr 6 10:36:32 1998
%%For: whalley@xi (David Whalley)
%Magnification: 1.00
%%Orientation: Portrait
%%Pages: 0
%%BeginSetup
%%IncludeFeature: *PageSize Letter
%%EndSetup
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
end
save
-35.0 178.0 translate
1 -1 scale
/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/DrawEllipse {
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y tr xrad yrad sc 0 0 1 startangle endangle arc
closepath
savematrix setmatrix
} def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
$F2psBegin
10 setmiterlimit
n 0 792 m 0 0 l 612 0 l 612 792 l cp clip
0.06000 0.06000 sc
7.500 slw
% Polyline
n 1650 1425 m 2175 1425 l gs col-1 s gr
% Polyline
n 1443 1800 m 2175 1800 l gs col-1 s gr
% Polyline
n 1425 2175 m 1950 2175 l gs col-1 s gr
% Polyline
n 1418 2662 m 1943 2662 l gs col-1 s gr
% Ellipse
n 2138 2183 37 42 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr
% Ellipse
n 1695 2880 38 38 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 600 1200 m 6000 1200 l gs col-1 s gr
% Polyline
n 1200 600 m 1200 2400 l gs col-1 s gr
% Polyline
n 2400 600 m 2400 2400 l gs col-1 s gr
% Ellipse
n 1500 1425 37 42 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr
% Ellipse
n 1800 1800 37 42 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 4800 600 m 4800 2400 l gs col-1 s gr
% Polyline
n 600 600 m 6000 600 l 6000 2400 l 600 2400 l cp gs col-1 s gr
/Times-Bold ff 180.00 scf sf
900 1875 m
gs 1 -1 sc (2) dup sw pop 2 div neg 0 rm col-1 sh gr
/Times-Bold ff 180.00 scf sf
900 2250 m
gs 1 -1 sc (3) dup sw pop 2 div neg 0 rm col-1 sh gr
/Times-Bold ff 180.00 scf sf
900 1500 m
gs 1 -1 sc (1) dup sw pop 2 div neg 0 rm col-1 sh gr
/Times-Bold ff 150.00 scf sf
893 992 m
gs 1 -1 sc (Case) dup sw pop 2 div neg 0 rm col-1 sh gr
/Times-Bold ff 150.00 scf sf
1793 992 m
gs 1 -1 sc (Condition) dup sw pop 2 div neg 0 rm col-1 sh gr
/Times-Bold ff 150.00 scf sf
3491 992 m
gs 1 -1 sc (Test) dup sw pop 2 div neg 0 rm col-1 sh gr
/Times-Roman ff 150.00 scf sf
3574 1450 m
gs 1 -1 sc (node_exit < edge_range_min) dup sw pop 2 div neg 0 rm col-1 sh gr
/Times-Roman ff 150.00 scf sf
3574 1775 m
gs 1 -1 sc (edge_range_min <= node_exit &&) dup sw pop 2 div neg 0 rm col-1 sh gr
/Times-Roman ff 150.00 scf sf
3574 1942 m
gs 1 -1 sc (node_exit <= edge_range_max) dup sw pop 2 div neg 0 rm col-1 sh gr
/Times-Roman ff 150.00 scf sf
3574 2225 m
gs 1 -1 sc (edge_range_max < node_exit) dup sw pop 2 div neg 0 rm col-1 sh gr
/Times-Roman ff 150.00 scf sf
5424 1458 m
gs 1 -1 sc (edge_range_min) dup sw pop 2 div neg 0 rm col-1 sh gr
/Times-Bold ff 150.00 scf sf
5426 1067 m
gs 1 -1 sc (Assignment) dup sw pop 2 div neg 0 rm col-1 sh gr
/Times-Bold ff 150.00 scf sf
5426 842 m
gs 1 -1 sc (Edge_Exit) dup sw pop 2 div neg 0 rm col-1 sh gr
/Times-Roman ff 150.00 scf sf
5424 1858 m
gs 1 -1 sc (node_exit) dup sw pop 2 div neg 0 rm col-1 sh gr
/Times-Roman ff 180.00 scf sf
5400 2175 m
gs 1 -1 sc (__) dup sw pop 2 div neg 0 rm col-1 sh gr
/Times-Roman ff 150.00 scf sf
2100 2700 m
gs 1 -1 sc ([edge_range_min..edge_range_max]) col-1 sh gr
/Times-Roman ff 150.00 scf sf
2100 2925 m
gs 1 -1 sc (node_exit \(i.e. node_exit_min or node_exit_max\)) col-1 sh gr
$F2psEnd
rs
%%EndDocument
end PEND(26)319.8 725.04 Q EP
%%Page: 27 29
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 2.231(Figure 8 sho)126.6 96.4 R 2.231
(ws the same D)-.3 F 3.191 -.48(AG a)-.48 H 5.231(si).48 G 5.231(nF)
-5.231 G 2.231(igure 6, b)-5.231 F 2.231(ut with minimum and maximum)
-.24 F 2.315(iteration v)111.6 125.2 R 2.314
(alues assigned to edges and nodes.)-.3 F 2.314(The pair of v)8.314 F
2.314(alues represented on the)-.3 F 1.723
(edges and in the nodes are the minimum and maximum iteration v)111.6
154 R 1.723(alues, respecti)-.3 F -.18(ve)-.3 G(ly).18 E(.)-.78 E 3.674
(Node 5 and its incoming edges are assigned)111.6 182.8 R/F1 12
/Times-Italic@0 SF(unbounded)6.674 E F0 -.3(va)6.674 G 3.674
(lues since there is no).3 F .508(transition to a)111.6 211.6 R F1(br)
3.508 E(eak)-.444 E F0 .508
(for the range of loop iterations in which the)3.508 F 3.509(ya)-.18 G
.509(re e)-3.509 F -.18(xe)-.18 G 3.509(cuted. Node).18 F(3)3.509 E
1.492(is assigned a minimum iteration v)111.6 240.4 R 1.492
(alue of 26 since that is the \214rst possible iteration at)-.3 F 1.265
(which the node can tak)111.6 269.2 R 4.265(eat)-.12 G 1.266
(ransition to a)-4.265 F F1(br)4.266 E(eak)-.444 E F0 7.266(.N)C 1.266
(ode 3')-7.266 F 4.266(sm)-.66 G 1.266(aximum iteration v)-4.266 F 1.266
(alue is)-.3 F F1(unbounded)111.6 298 Q F0 2.625(since node 3')5.625 F
5.625(si)-.66 G 2.624(teration branch is classi\214ed as)-5.625 F F1
(unknown)5.624 E F0 2.624(and there is no)5.624 F .522
(guarantee that the transition to the)111.6 326.8 R F1(br)3.522 E(eak)
-.444 E F0 .522(from node 3 will e)3.522 F -.18(ve)-.3 G 3.523(rb).18 G
3.523(et)-3.523 G(ak)-3.523 E 3.523(en. The)-.12 F(minimum)3.523 E 1.171
(and maximum iterations for the entire loop is 26 and 101, respecti)
111.6 355.6 R -.18(ve)-.3 G(ly).18 E 4.171(,s)-.78 G 1.17
(ince these are)-4.171 F(the iteration v)111.6 384.4 Q
(alues in node 7, which is the root e)-.3 E(xit condition.)-.18 E 418.5
449.32 MT 0 -33.84 RL -50.4 0 RL 0 33.84 RL CL .44 LW ST 351.18 465.88
368.1 448.96 DL 351.18 465.88 MT 3.816 -6.336 RL 2.52 2.52 RL CL BL
351.18 465.88 MT 3.816 -6.336 RL 2.52 2.52 RL CL ST 435.78 465.88 418.86
448.96 DL 435.78 465.88 MT -6.336 -3.816 RL 2.52 -2.52 RL CL BL 435.78
465.88 MT -6.336 -3.816 RL 2.52 -2.52 RL CL ST 418.86 432.04 401.94
415.12 DL 350.82 499.72 MT 0 -33.84 RL -50.4 0 RL 0 33.84 RL CL ST
351.18 482.8 334.26 465.88 DL 300.42 567.4 283.5 550.48 DL 300.42 567.4
MT -6.336 -3.816 RL 2.52 -2.52 RL CL BL 300.42 567.4 MT -6.336 -3.816 RL
2.52 -2.52 RL CL ST 215.82 567.4 232.74 550.48 DL 215.82 567.4 MT 3.816
-6.336 RL 2.52 2.52 RL CL BL 215.82 567.4 MT 3.816 -6.336 RL 2.52 2.52
RL CL ST 283.5 533.56 266.58 516.64 DL 283.14 550.84 MT 0 -33.84 RL
-50.4 0 RL 0 33.84 RL CL ST 350.82 601.24 MT 0 -33.84 RL -50.4 0 RL 0
33.84 RL CL ST 283.5 618.16 300.42 601.24 DL 283.5 618.16 MT 3.816
-6.336 RL 2.52 2.52 RL CL BL 283.5 618.16 MT 3.816 -6.336 RL 2.52 2.52
RL CL ST 351.18 584.32 334.26 567.4 DL 334.26 567.4 334.26 499.72 DL
334.26 567.4 MT -1.8 -7.2 RL 3.6 0 RL CL BL 334.26 567.4 MT -1.8 -7.2 RL
3.6 0 RL CL ST 283.5 516.64 300.42 499.72 DL 283.5 516.64 MT 3.816
-6.336 RL 2.52 2.52 RL CL BL 283.5 516.64 MT 3.816 -6.336 RL 2.52 2.52
RL CL ST/F2 11/Times-Roman@0 SF(7)390.766 428.052 Q/F3 9/Times-Roman@0
SF(K)411.363 424.236 Q F2(<26,101>)372.187 444.532 Q(<26,_>)323.77
457.644 Q(<101,101>)431.532 457.644 Q(break)423.565 478.812 Q(2)323.014
478.812 Q F3(K)343.683 474.996 Q F2(<26,_>)309.935 495.292 Q(3)255.334
529.572 Q F3(U)276.003 525.756 Q F2(<26,_>)242.255 546.052 Q(break)
203.605 580.332 Q(5)323.014 580.332 Q F3(K)343.683 576.516 Q F2(<_,_>)
312.685 596.812 Q(continue)264.558 631.092 Q(<_,_>)296.172 559.164 Q
(<26,26>)182.91 559.164 Q(<_,_>)338.508 537.996 Q(<26,_>)256.09 508.404
Q(<_,_>)261.59 609.924 Q F0(Figure 8: D)139.296 651.712 Q .96 -.48(AG o)
-.48 H 3(fI).48 G(teration Branches with Minimum and Maximum Iterations)
-3 E(27)319.8 725.04 Q EP
%%Page: 28 30
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 3(4.1.5 Iteration)111.6 96.4 R .48 LW 355.56
99.4 111.6 99.4 DL(Branches Using Equality Operators)185.256 96.4 Q
1.182(As stated in T)111.6 132.4 R 1.183(able 7, an iteration branch us\
ing an equality operator \(i.e. == or !=\) w)-.96 F(as)-.12 E 1.721
(initially described as al)111.6 161.2 R -.12(wa)-.12 G 1.721
(ys being treated as an).12 F/F1 12/Times-Italic@0 SF(unknown)4.721 E F0
4.72(branch. This)4.72 F 1.72(may result in)4.72 F(looser)111.6 190 Q
5.774(,b)-.48 G 2.774(ut safe iteration bounds for loops containing the\
se iteration branches.)-6.014 F(One)8.775 E 1.255(reason for not addres\
sing iteration branches that use the equality operators is that the)
111.6 218.8 R(y)-.18 E 2.144
(may cause loop iteration ranges to become noncontiguous and w)111.6
247.6 R 2.144(ould complicate the)-.12 F 2.354
(algorithms for bounding the number of iterations.)111.6 276.4 R(Ho)
8.354 E(we)-.3 E -.18(ve)-.3 G 3.314 -.48(r, i).18 H 5.354(nm).48 G(an)
-5.354 E 5.354(yc)-.18 G 2.354(ases iteration)-5.354 F 3.709(branches w\
ith equality operators can be handled using only contiguous ranges of)
111.6 305.2 R 4.434(iterations. F)111.6 334 R 1.434(or instance, Figure\
9\(a\) contains a loop with an equality operator that the)-.18 F .69
(implementation w)111.6 362.8 R .69(as able to successfully bound.)-.12
F .691(The implementation classi\214es iteration)6.691 F 5.076
(branches with equality operators as)111.6 391.6 R F1(known)8.076 E F0
5.076(when the follo)8.076 F 5.076(wing three additional)-.3 F .571
(requirements to those speci\214ed in T)111.6 420.4 R .571
(able 7 are satis\214ed.)-.96 F .571(\(1\) First, e)6.571 F -.18(ve)-.3
G .572(ry path ending in a).18 F .782
(back edge in the loop must include the iteration branch.)111.6 449.2 R
.781(Figure 9\(b\) sho)6.782 F .781(ws an e)-.3 F(xample)-.18 E 487.8
627.44 MT 0 -144 RL -324 0 RL 0 144 RL CL .44 LW ST 322.2 577.04 322.2
483.44 DL 487.8 577.04 163.8 577.04 DL/F2 9/Times-Bold@0 SF
(\(c\) Unbounded Loop)278.843 617.26 Q(\(a\) Bounded Loop)208.242 566.42
Q(\(b\) P)342.954 566.42 Q(otentially Unbounded Loop)-.18 E/F3 9
/Courier@0 SF(for \(i = 0; ; i++\) {)333 498.02 Q
(if \(i < 100 && somecond\))349.2 508.82 Q(continue;)365.4 519.62 Q
(if \(i == 50\))349.2 530.42 Q(break;)365.4 541.22 Q(})349.2 552.02 Q
(for \(i = 0; i != 100; i += 3\))246.6 591.62 Q(A;)262.8 602.42 Q
(for \(i = 0; i != 100; i++\))171 526.82 Q(A;)187.2 537.62 Q F0(Figure \
9: Examples of Loops with Iteration Branches Using Equality Operators)
135.156 650.48 Q(28)319.8 725.04 Q EP
%%Page: 29 31
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 1.478(of a loop that may not e)111.6 96.4 R -.18
(xe)-.18 G 1.479
(cute the test for equality on the iteration in which the loop).18 F
2.225(could e)111.6 125.2 R 5.225(xit. \(2\))-.18 F(Ne)5.225 E 2.224
(xt, one of the outgoing transitions of the iteration branch with an)
-.18 F .296(equality operator must be to a)111.6 154 R/F1 12
/Times-Italic@0 SF(br)3.296 E(eak)-.444 E F0 6.297(.\()C .297
(3\) Finally)-6.297 F 3.297(,t)-.78 G .297(he follo)-3.297 F .297
(wing e)-.3 F .297(xpression, which is part)-.18 F
(of Equation 1, must result in an inte)111.6 182.8 Q(gral v)-.18 E
(alue.)-.3 E F1(limit)263.844 215.596 Q/F2 8/Times-Italic@0 SF(i).524
2.4 M/F3 12/Symbol SF(-)3.528 -2.4 M F0(\()2.64 E F1(initial).012 E F2
(i).524 2.4 M F3(+)3.528 -2.4 M F1(before)2.964 E F2(i).224 2.4 M F0(\))
.888 -2.4 M F1(before)-98.184 16.8 M F2(i).224 2.4 M F3(+)3.528 -2.4 M
F1(after)3.036 E .48 LW 387.864 220.876 263.736 220.876 DL F2(i)359.132
234.796 Q F0 3.16(In other w)111.6 265.484 R 3.16(ords, the)-.12 F F1
(variable)6.16 E F0 3.16(must equal the)6.16 F F1(limit)6.159 E F0 3.159
(of the iteration branch on some)6.159 F 3.23(iteration. Figure)111.6
294.284 R .23(9\(c\) depicts a situation where the)3.23 F F1(variable)
3.231 E/F4 12/Courier@0 SF(i)3.231 E F0 .231(will be assigned v)3.231 F
.231(alues \(0,)-.3 F(3, ..., 99, 102, ...\) that will skip o)111.6
323.084 Q -.18(ve)-.18 G 3(rt).18 G(he)-3 E F1(limit)3 E F0(\(100\).)3 E
3(4.2 Non-Constant)192.378 361.964 R(Loop-In)3 E -.3(va)-.48 G 459.222
364.964 192.378 364.964 DL(riant Number of Iterations)333.582 361.964 Q
1.6(Sometimes a bounded number of iterations for a loop cannot be deter\
mined since the)111.6 390.764 R .34(loop e)111.6 419.564 R .34
(xit conditions in)-.18 F -.24(vo)-.48 G(lv).24 E 3.34(et)-.18 G .34
(he v)-3.34 F .34(alues of v)-.3 F 3.341(ariables. T)-.3 F(raditionally)
-.42 E 3.341(,t)-.78 G .341(iming analyzers ha)-3.341 F -.18(ve)-.24 G
(resolv)111.6 448.364 Q .894(ed this problem by requiring a user to spe\
cify the maximum number of iterations)-.18 F 4.686(for a loop interacti)
111.6 477.164 R -.18(ve)-.3 G 4.686
(ly [13, 9] or as an assertion in the source code [14, 3].).18 F
(Unfortunately)111.6 505.964 Q 5.201(,t)-.78 G 2.201
(here is no guarantee that the user will specify the correct number of)
-5.201 F 6.562(iterations. Compilers)111.6 534.764 R 3.562(may emplo)
6.562 F 6.563(yd)-.12 G(if)-6.563 E 3.563(ferent code generation strate)
-.3 F 3.563(gies or compiler)-.18 F 1.583(optimizations that can af)
111.6 563.564 R 1.583(fect the number of loop iterations.)-.3 F 1.583
(Thus, e)7.583 F -.18(ve)-.3 G 4.583(na).18 G 4.583(na)-4.583 G 1.583
(stute user)-4.583 F
(may incorrectly specify the number of loop iterations.)111.6 592.364 Q
1.854(All of the v)126.6 621.164 R 1.855
(ariables on which the number of loop iterations depend are frequently)
-.3 F 1.99(loop in)111.6 649.964 R -.3(va)-.48 G 4.99(riant. In).3 F
1.99(this case, a loop-in)4.99 F -.3(va)-.48 G 1.99(riant e).3 F 1.99
(xpression is calculated to represent the)-.18 F 2.092
(number of loop iterations.)111.6 678.764 R(Essentially)8.092 E 5.092
(,t)-.78 G 2.093(he technique is to use Equation 1 de\214ned in)-5.092 F
(29)319.8 725.04 Q EP
%%Page: 30 32
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 1.833
(Subsection 4.1.2, relaxing the requirement that the)111.6 96.4 R/F1 12
/Times-Italic@0 SF(limit)4.832 E F0(and)4.832 E F1(initial)4.832 E F0
-.3(va)4.832 G 1.832(lues ha).3 F 2.192 -.18(ve t)-.24 H 4.832(ob).18 G
(e)-4.832 E 6.039(constants. Figure)111.6 125.2 R 3.039(10 sho)6.039 F
3.039(ws an e)-.3 F 3.04(xample function and corresponding SP)-.18 F
3.04(ARC R)-1.104 F(TLs.)-.72 E .85(\(Some other compiler optimizations\
, such as loop strength reduction, ha)111.6 154 R 1.21 -.18(ve n)-.24 H
.85(ot yet been).18 F .437(performed to simplify the e)111.6 182.8 R
3.437(xample.\) In)-.18 F .437(this e)3.437 F .437
(xample, the control v)-.18 F .437(ariable for the loop is)-.3 F/F2 12
/Courier@0 SF(r[13])111.6 211.6 Q F0 .169(and the limit is)3.169 F F2
(r[12])3.169 E F0 3.169(,w)C .169(hich is loop in)-3.169 F -.3(va)-.48 G
3.169(riant. The).3 F .168(block preceding the loop is)3.169 F -.18(ex)
111.6 240.4 S 2.085(amined to determine the v).18 F 2.085
(alue associated with the limit, which is e)-.3 F 2.086(xpanded in the)
-.18 F(follo)111.6 269.2 Q(wing steps:)-.3 E/F3 10/Courier@0 SF
(1. r[12])206.19 304.9 Q(#)102 E/F4 10/Times-Roman@0 SF
(from instruction 12)6 E F3(2. r[9]+r[10])206.19 316.3 Q(#)72 E F4
(from instruction 5)6 E F3(3. r[9]+R[r[10]+LO[_n]])206.19 327.7 Q(#)12 E
F4(from instruction 4)6 E F3(4. r[9]+R[HI[_n]+LO[_n]] #)206.19 339.1 Q
F4(from instruction 3)6 E F3(5. m+n)206.19 350.5 Q F0 .046(The re)126.6
383.5 R(gister)-.18 E F2(r[9])3.046 E F0 .046
(has been allocated to the ar)3.046 F(gument)-.216 E F2(m)3.045 E F0
3.045(,w)C .045(hose v)-3.045 F .045(alue w)-.3 F .045(as also passed)
-.12 F .297(to the function in the same re)111.6 412.3 R(gister)-.18 E
6.297(.T)-.66 G .298(he compiler remembers the re)-6.297 F .298
(gister and the blocks)-.18 F .252(where each li)111.6 441.1 R .612 -.18
(ve r)-.3 H .251(ange of a local v).18 F .251(ariable or ar)-.3 F .251
(gument is allocated to a re)-.216 F(gister)-.18 E 6.251(.T)-.66 G .251
(hus, the)-6.251 F 2.498(compiler w)111.6 469.9 R 2.498
(as able to associate the re)-.12 F(gister)-.18 E F2(r[9])5.499 E F0
2.499(with the ar)5.499 F(gument)-.216 E F2(m)5.499 E F0 2.499
(and that the)5.499 F 1.303(memory reference is to the global v)111.6
498.7 R(ariable)-.3 E F2(n)4.303 E F0 7.303(.T)C 1.303
(he timing analyzer uses Equation 1 to)-7.303 F .297
(generate a symbolic e)111.6 527.5 R .297
(xpression \(containing the local v)-.18 F(ariable)-.3 E F2(m)3.297 E F0
.297(and global v)3.297 F(ariable)-.3 E F2(n)3.298 E F0 3.298(\)t)C(o)
-3.298 E(represent the number of iterations.)111.6 555.3 Q/F5 11
/Times-Italic@0 SF(N)229.852 598.11 Q/F6 11/Symbol SF(=)4.29 E3.08
-9.185 M-4.224 11 M-4.224 11 M F5(limit)1.419 -20.515 M F6(-)
3.168 E/F7 11/Times-Roman@0 SF(\()2.42 E F5(initial).011 E F6(+)2.981 E
F5(before)2.717 E F7(\)).198 E F6(+)2.42 E F5(adjust)2.783 E(before)
-101.893 15.4 M F6(+)2.618 E .44 LW 400.594 595.25 256.142 595.25 DL F5
(after)337.498 605.81 Q F643.637 -16.885 M-4.224 11 M-4.224
11 M(+)2.42 -12.815 M F7(1)2.42 E F6(=)241.479 636.61 Q3.08 -9.185 M
-4.224 11 M-4.224 11 M F5(m)1.738 -20.515 M F6(+)2.772 E F5(n)
2.816 E F6(-)2.684 E F7(\(1)2.42 E F6(+)2.42 E F7(1\))2.42 E F6(+)2.42 E
F7(0)2.42 E(1)-52.047 15.4 M F6(+)2.42 E 338.356 633.75 256.142 633.75
DL F7(0)302.688 644.31 Q F631.488 -16.885 M-4.224 11 M-4.224
11 M(+)2.42 -12.815 M F7(1)2.42 E F6(=)241.479 665.1 Q F5(m)3.498 E F6
(+)2.772 E F5(n)2.816 E F6(-)2.684 E F7(1)2.42 E F0 1.289(When the comp\
iler can determine that the number of iterations is non-constant and)
126.6 693.2 R(30)319.8 725.04 Q EP
%%Page: 31 33
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 3(:a)415.836 172.308 S(ddress of array a)-3 E 3
(:a)415.836 190.528 S -.216(rg)-3 G(ument m).216 E 3(:v)415.836 208.528
S(ariable sum)-3.3 E 3(:v)415.836 226.528 S(ariable i)-3.3 E/F1 12
/Courier@0 SF(r[8])382.5 172.528 Q(r[9])382.5 190.528 Q(r[11])375.3
208.528 Q(r[13])375.3 226.528 Q .48 LW 510.3 307.264 141.3 307.264 DL
510.3 586.48 MT 0 -463.68 RL -368.64 0 RL 0 463.68 RL CL ST 366.3
307.264 366.3 122.8 DL 330.3 433.264 330.3 415.264 DL 330.3 433.264 MT
-1.8 -7.2 RL 3.6 0 RL CL BL 330.3 433.264 MT -1.8 -7.2 RL 3.6 0 RL CL ST
474.3 518.8 MT 0 -85.68 RL -288 0 RL 0 85.68 RL CL ST 330.3 536.8 330.3
518.8 DL 330.3 536.8 MT -1.8 -7.2 RL 3.6 0 RL CL BL 330.3 536.8 MT -1.8
-7.2 RL 3.6 0 RL CL ST 474.3 554.8 MT 0 -18 RL -288 0 RL 0 18 RL CL ST
474.3 415.12 MT 0 -99.36 RL -288 0 RL 0 99.36 RL CL ST 186.228 415.264
186.3 415.264 DL 186.084 415.264 186.228 415.264 DL 185.508 415.336
186.084 415.264 DL 184.644 415.336 185.508 415.336 DL 183.348 415.408
184.644 415.336 DL 181.836 415.552 183.348 415.408 DL 180.252 415.624
181.836 415.552 DL 178.524 415.84 180.252 415.624 DL 177.012 415.984
178.524 415.84 DL 175.572 416.2 177.012 415.984 DL 174.276 416.416
175.572 416.2 DL 172.98 416.704 174.276 416.416 DL 171.9 417.064 172.98
416.704 DL 170.964 417.424 171.9 417.064 DL 169.956 417.856 170.964
417.424 DL 169.092 418.288 169.956 417.856 DL 168.444 418.648 169.092
418.288 DL 167.868 419.08 168.444 418.648 DL 167.292 419.512 167.868
419.08 DL 166.716 420.016 167.292 419.512 DL 166.068 420.52 166.716
420.016 DL 165.492 421.096 166.068 420.52 DL 164.916 421.816 165.492
421.096 DL 164.268 422.608 164.916 421.816 DL 163.692 423.472 164.268
422.608 DL 163.044 424.336 163.692 423.472 DL 162.54 425.344 163.044
424.336 DL 161.964 426.496 162.54 425.344 DL 161.388 427.648 161.964
426.496 DL 160.884 428.944 161.388 427.648 DL 160.38 430.312 160.884
428.944 DL 159.876 431.752 160.38 430.312 DL 159.444 433.264 159.876
431.752 DL 159.084 434.848 159.444 433.264 DL 158.652 436.504 159.084
434.848 DL 158.292 438.232 158.652 436.504 DL 157.932 440.104 158.292
438.232 DL 157.644 441.976 157.932 440.104 DL 157.356 443.992 157.644
441.976 DL 157.068 446.08 157.356 443.992 DL 156.852 447.736 157.068
446.08 DL 156.636 449.464 156.852 447.736 DL 156.564 451.192 156.636
449.464 DL 156.348 453.064 156.564 451.192 DL 156.276 455.008 156.348
453.064 DL 156.06 457.024 156.276 455.008 DL 155.916 459.112 156.06
457.024 DL 155.916 461.272 155.916 459.112 DL 155.772 463.504 155.916
461.272 DL 155.628 465.736 155.772 463.504 DL 155.556 468.112 155.628
465.736 DL 155.556 470.488 155.556 468.112 DL 155.484 472.936 155.556
470.488 DL 155.484 475.384 155.484 472.936 DL 155.484 477.904 155.484
475.384 DL 155.412 480.352 155.484 477.904 DL 155.484 482.8 155.412
480.352 DL 155.484 485.248 155.484 482.8 DL 155.484 487.696 155.484
485.248 DL 155.556 490.144 155.484 487.696 DL 155.556 492.448 155.556
490.144 DL 155.628 494.752 155.556 492.448 DL 155.772 496.984 155.628
494.752 DL 155.916 499.144 155.772 496.984 DL 155.916 501.232 155.916
499.144 DL 156.06 503.176 155.916 501.232 DL 156.276 505.12 156.06
503.176 DL 156.348 506.992 156.276 505.12 DL 156.564 508.792 156.348
506.992 DL 156.636 510.448 156.564 508.792 DL 156.852 512.032 156.636
510.448 DL 157.068 513.616 156.852 512.032 DL 157.356 515.416 157.068
513.616 DL 157.644 517.216 157.356 515.416 DL 157.932 519.016 157.644
517.216 DL 158.292 520.528 157.932 519.016 DL 158.652 522.04 158.292
520.528 DL 159.084 523.48 158.652 522.04 DL 159.444 524.776 159.084
523.48 DL 159.948 526.072 159.444 524.776 DL 160.452 527.224 159.948
526.072 DL 160.956 528.304 160.452 527.224 DL 161.532 529.24 160.956
528.304 DL 162.036 530.104 161.532 529.24 DL 162.684 530.896 162.036
530.104 DL 163.26 531.616 162.684 530.896 DL 163.836 532.336 163.26
531.616 DL 164.556 532.84 163.836 532.336 DL 165.204 533.344 164.556
532.84 DL 165.78 533.704 165.204 533.344 DL 166.428 534.136 165.78
533.704 DL 167.076 534.424 166.428 534.136 DL 167.796 534.712 167.076
534.424 DL 168.444 534.928 167.796 534.712 DL 169.164 535.144 168.444
534.928 DL 169.812 535.288 169.164 535.144 DL 170.748 535.504 169.812
535.288 DL 171.684 535.72 170.748 535.504 DL 172.764 535.864 171.684
535.72 DL 173.916 536.008 172.764 535.864 DL 175.068 536.152 173.916
536.008 DL 176.436 536.224 175.068 536.152 DL 177.876 536.368 176.436
536.224 DL 179.532 536.44 177.876 536.368 DL 181.26 536.584 179.532
536.44 DL 183.06 536.584 181.26 536.584 DL 184.86 536.656 183.06 536.584
DL 186.516 536.728 184.86 536.656 DL 188.028 536.728 186.516 536.728 DL
189.252 536.8 188.028 536.728 DL 190.764 536.8 189.252 536.8 DL 190.764
536.8 MT -7.2 1.8 RL 0 -3.6 RL CL BL 190.764 536.8 MT -7.2 1.8 RL 0 -3.6
RL CL ST 474.372 518.8 474.3 518.8 DL 474.516 518.8 474.372 518.8 DL
475.092 518.8 474.516 518.8 DL 475.956 518.728 475.092 518.8 DL 477.18
518.656 475.956 518.728 DL 478.692 518.584 477.18 518.656 DL 480.276
518.512 478.692 518.584 DL 481.86 518.44 480.276 518.512 DL 483.444
518.224 481.86 518.44 DL 484.884 518.152 483.444 518.224 DL 486.108
517.936 484.884 518.152 DL 487.26 517.72 486.108 517.936 DL 488.268
517.504 487.26 517.72 DL 489.204 517.216 488.268 517.504 DL 489.996
516.928 489.204 517.216 DL 490.788 516.568 489.996 516.928 DL 491.364
516.208 490.788 516.568 DL 492.012 515.848 491.364 516.208 DL 492.588
515.416 492.012 515.848 DL 493.164 514.984 492.588 515.416 DL 493.74
514.48 493.164 514.984 DL 494.244 513.904 493.74 514.48 DL 494.82
513.256 494.244 513.904 DL 495.396 512.464 494.82 513.256 DL 495.9
511.672 495.396 512.464 DL 496.404 510.808 495.9 511.672 DL 496.836
509.872 496.404 510.808 DL 497.268 508.864 496.836 509.872 DL 497.7
507.784 497.268 508.864 DL 498.132 506.632 497.7 507.784 DL 498.492
505.408 498.132 506.632 DL 498.78 504.184 498.492 505.408 DL 499.068
502.816 498.78 504.184 DL 499.356 501.448 499.068 502.816 DL 499.572
500.08 499.356 501.448 DL 499.788 498.568 499.572 500.08 DL 500.004
497.344 499.788 498.568 DL 500.076 496.048 500.004 497.344 DL 500.22
494.752 500.076 496.048 DL 500.364 493.312 500.22 494.752 DL 500.436
491.872 500.364 493.312 DL 500.58 490.288 500.436 491.872 DL 500.652
488.704 500.58 490.288 DL 500.724 487.048 500.652 488.704 DL 500.724
485.392 500.724 487.048 DL 500.796 483.664 500.724 485.392 DL 500.868
481.864 500.796 483.664 DL 500.868 480.064 500.868 481.864 DL 500.868
478.192 500.868 480.064 DL 500.868 476.392 500.868 478.192 DL 500.868
474.52 500.868 476.392 DL 500.796 472.72 500.868 474.52 DL 500.724
470.992 500.796 472.72 DL 500.724 469.264 500.724 470.992 DL 500.652
467.536 500.724 469.264 DL 500.58 465.952 500.652 467.536 DL 500.436
464.296 500.58 465.952 DL 500.364 462.856 500.436 464.296 DL 500.22
461.344 500.364 462.856 DL 500.076 459.976 500.22 461.344 DL 500.004
458.608 500.076 459.976 DL 499.788 457.312 500.004 458.608 DL 499.572
455.512 499.788 457.312 DL 499.284 453.856 499.572 455.512 DL 498.996
452.128 499.284 453.856 DL 498.636 450.616 498.996 452.128 DL 498.204
449.032 498.636 450.616 DL 497.844 447.592 498.204 449.032 DL 497.412
446.152 497.844 447.592 DL 496.908 444.856 497.412 446.152 DL 496.404
443.56 496.908 444.856 DL 495.828 442.336 496.404 443.56 DL 495.252
441.256 495.828 442.336 DL 494.604 440.32 495.252 441.256 DL 494.028
439.384 494.604 440.32 DL 493.452 438.664 494.028 439.384 DL 492.804
437.944 493.452 438.664 DL 492.084 437.296 492.804 437.944 DL 491.436
436.792 492.084 437.296 DL 490.788 436.288 491.436 436.792 DL 489.996
435.856 490.788 436.288 DL 489.204 435.424 489.996 435.856 DL 488.268
435.064 489.204 435.424 DL 487.26 434.704 488.268 435.064 DL 486.108
434.416 487.26 434.704 DL 484.884 434.2 486.108 434.416 DL 483.444
433.984 484.884 434.2 DL 481.86 433.84 483.444 433.984 DL 480.276
433.624 481.86 433.84 DL 478.692 433.552 480.276 433.624 DL 477.18
433.408 478.692 433.552 DL 475.956 433.336 477.18 433.408 DL 474.3
433.264 475.956 433.336 DL 474.3 433.264 MT 7.272 -1.512 RL -.144 3.6 RL
CL BL 474.3 433.264 MT 7.272 -1.512 RL -.144 3.6 RL CL ST
(int sumarray\(a, m\))150.3 136.528 Q(int a[], m;)150.3 150.064 Q({)
150.3 163.528 Q(int i, sum;)171.9 177.064 Q(extern int n;)171.9 190.528
Q(sum = 0;)171.9 213.064 Q/F2 12/Courier-Bold@0 SF
(valuebnd m[10:100] n[20:80])171.9 226.528 Q F1
(for \(i = 1; i < m+n; i++\))171.9 240.064 Q(sum += a[i];)193.5 253.528
Q(return sum;)171.9 267.064 Q(})150.3 280.528 Q/F3 12/Times-Bold@0 SF
(\(a\) Sour)199.416 298.528 Q(ce Code)-.216 E(\(c\) Register to V)
379.038 285.064 Q(ariable)-1.104 E(Mapping in Figur)378.234 298.528 Q 3
(e9)-.216 G(\(b\))-3 E F0(1)462.3 330.064 Q F1(r[11]=0;)190.764 330.064
Q F0 3(#i)370.764 330.064 S(nstruction 1)-3 E 3(#i)370.764 343.528 S
(nstruction 2)-3 E F1(r[13]=1;)190.764 343.528 Q(r[10]=HI[_n];)190.764
357.064 Q(r[10]=R[r[10]+LO[_n]];)190.764 370.528 Q(r[12]=r[9]+r[10];)
190.764 384.064 Q(IC=0?r[12];)190.764 397.528 Q(PC=IC>=0,L25;)190.764
411.064 Q F0 3(#i)370.764 357.064 S(nstruction 3)-3 E 3(#i)370.764
370.528 S(nstruction 4)-3 E 3(#i)370.764 384.064 S(nstruction 5)-3 E 3
(#i)370.764 397.528 S(nstruction 6)-3 E 3(#i)370.764 411.064 S
(nstruction 7)-3 E F1(L18)160.236 447.064 Q F0(2)462.3 447.064 Q F1
(r[10]=r[13]<<2;)190.764 447.064 Q F0 3(#i)370.764 447.064 S
(nstruction 8)-3 E F1(r[10]=R[r[8]+r[10]];)190.764 460.528 Q
(r[11]=r[11]+r[10];)190.764 474.064 Q(r[13]=r[13]+1;)190.764 487.528 Q
(IC=r[13]?r[12];)190.764 501.064 Q(PC=IC<0,L18;)190.764 514.528 Q F0 3
(#i)370.764 460.528 S(nstruction 9)-3 E 3(#i)370.764 474.064 S
(nstruction 10)-3 E 3(#i)370.764 487.528 S(nstruction 11)-3 E 3(#i)
370.764 501.064 S(nstruction 12)-3 E 3(#i)370.764 514.528 S
(nstruction 13)-3 E F1(L25)160.236 550.528 Q F0(3)462.3 550.528 Q F1
(PC=RT;)190.764 550.528 Q F0 3(#i)370.764 550.528 S(nstruction 14)-3 E
F3(\(b\) Corr)229.35 577.528 Q(esponding SP)-.216 E(ARC Instructions)
-.888 E F0(Figure 10: Loop with a Non-constant Loop-In)147.384 609.52 Q
-.3(va)-.48 G(riant Number of Iterations).3 E .168(loop in)111.6 646 R
-.3(va)-.48 G .168(riant, the loop-in).3 F -.3(va)-.48 G .168(riant e).3
F .168(xpression is passed to the timing analyzer)-.18 F 6.168(.T)-.66 G
.168(he user is)-6.168 F 3.34
(prompted by the timing analyzer for the minimum and maximum v)111.6
674.8 R 3.34(alues for each)-.3 F(31)319.8 725.04 Q EP
%%Page: 32 34
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF -.3(va)111.6 96.4 S 2.802(riable in this e).3 F
5.802(xpression. T)-.18 F 5.802(os)-.96 G 2.803
(implify identi\214cation of these v)-5.802 F 2.803
(ariables, the timing)-.3 F .581(analyzer also informs the user of the \
function and line number associated with the loop.)111.6 125.2 R 3.394
(After recei)111.6 154 R 3.395(ving the minimum and maximum v)-.3 F
3.395(alues for these v)-.3 F 3.395(ariables, the timing)-.3 F 5.864(an\
alyzer automatically calculates the minimum and maximum number of loop)
111.6 182.8 R(iterations.)111.6 211.6 Q/F1 10/Times-Roman@0 SF(5)-6 I F0
2.272(The compiler w)126.6 240.4 R 2.272(as also modi\214ed to allo)-.12
F 5.272(wt)-.3 G 2.271(he user to specify assertions about the)-5.272 F
.541(minimum and maximum v)111.6 269.2 R .541(alues of v)-.3 F .541
(ariables associated with loops.)-.3 F .541(The boldf)6.541 F .541
(ace line in)-.12 F .754
(Figure 10\(a\) contains assertions for the minimum and maximum v)111.6
298 R .754(alues of the v)-.3 F(ariables)-.3 E/F2 12/Courier@0 SF(m)
111.6 326.8 Q F0(and)3.077 E F2(n)3.077 E F0 6.077(.T)C .077
(he compiler uses the loop-in)-6.077 F -.3(va)-.48 G .078(riant e).3 F
.078(xpression and replaces the v)-.18 F .078(ariables with)-.3 F .615
(the minimum and maximum speci\214ed v)111.6 355.6 R 3.615(alues. The)
-.3 F .615(minimum number of iterations of 29)3.615 F 2.212(and the max\
imum number of iterations of 179 is automatically passed to the timing)
111.6 384.4 R .709(analyzer and no user interv)111.6 413.2 R .709
(ention is required.)-.18 F .709(Note that the form of a v)6.709 F .708
(alue assertion is)-.3 F 1.793(analogous to the form of timing constrai\
nt loop assertion that can be speci\214ed in the)111.6 442 R(same en)
111.6 470.8 Q(vironment [40].)-.48 E 3.077(When a loop-in)126.6 499.6 R
-.3(va)-.48 G 3.077(riant e).3 F 3.077
(xpression cannot be calculated, the timing analyzer will)-.18 F .005(p\
rompt the user for the minimum and maximum number of iterations instead\
of v)111.6 528.4 R .006(alues of)-.3 F -.3(va)111.6 557.2 S 4.763
(riables. Ho).3 F(we)-.3 E -.18(ve)-.3 G 2.723 -.48(r, t).18 H 1.763
(he author has found that a constant or loop-in).48 F -.3(va)-.48 G
1.763(riant number of).3 F 1.539(iterations can be typically calculated\
for most loops in the numerical benchmarks and)111.6 586 R
(applications that ha)111.6 614.8 Q .36 -.18(ve b)-.24 H(een e).18 E
(xamined.)-.18 E .32 LW 115.6 624.4 111.6 624.4 DL 119.6 624.4 115.6
624.4 DL 123.6 624.4 119.6 624.4 DL 127.6 624.4 123.6 624.4 DL 131.6
624.4 127.6 624.4 DL 135.6 624.4 131.6 624.4 DL 139.6 624.4 135.6 624.4
DL 143.6 624.4 139.6 624.4 DL 147.6 624.4 143.6 624.4 DL 151.6 624.4
147.6 624.4 DL 155.6 624.4 151.6 624.4 DL 159.6 624.4 155.6 624.4 DL
163.6 624.4 159.6 624.4 DL 167.6 624.4 163.6 624.4 DL 171.6 624.4 167.6
624.4 DL 175.6 624.4 171.6 624.4 DL 179.6 624.4 175.6 624.4 DL 183.6
624.4 179.6 624.4 DL 187.6 624.4 183.6 624.4 DL 191.6 624.4 187.6 624.4
DL 195.6 624.4 191.6 624.4 DL 199.6 624.4 195.6 624.4 DL 203.6 624.4
199.6 624.4 DL 207.6 624.4 203.6 624.4 DL 211.6 624.4 207.6 624.4 DL
215.6 624.4 211.6 624.4 DL 219.6 624.4 215.6 624.4 DL 223.6 624.4 219.6
624.4 DL 227.6 624.4 223.6 624.4 DL 231.6 624.4 227.6 624.4 DL 235.6
624.4 231.6 624.4 DL 239.6 624.4 235.6 624.4 DL 243.6 624.4 239.6 624.4
DL 247.6 624.4 243.6 624.4 DL 251.6 624.4 247.6 624.4 DL 255.6 624.4
251.6 624.4 DL/F3 6/Times-Roman@0 SF(5)133.2 630.012 Q/F4 8
/Times-Roman@0 SF .323(Note that the timing analyzer will not permit th\
e number of iterations to be fe)2.323 4 N .323(wer than 1.)-.2 F .324
(In the abo)4.324 F .564 -.12(ve ex)-.12 H .324(ample, a user may).12 F
.275(indicate that the minimum v)111.6 643.612 R .274(alues of)-.2 F/F5
8/Courier@0 SF(m)2.274 E F4(and)2.274 E F5(n)2.274 E F4 .274
(are both 0.)2.274 F .274(Simply substituting these v)4.274 F .274
(alues in the e)-.2 F .274(xpression w)-.12 F .274
(ould result in the num-)-.08 F .139(ber of loop iterations being)111.6
653.212 R/F6 8/Symbol SF(-)2.139 E F4 2.139(1. But)B .14
(if the loop is entered, then it has to e)2.139 F -.12(xe)-.12 G .14
(cute at least one iteration since the number of iterations is).12 F
(de\214ned as the number of times the loop header block is e)111.6
662.812 Q -.12(xe)-.12 G(cuted.).12 E F0(32)319.8 725.04 Q EP
%%Page: 33 35
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 3(4.3 Bounding)199.65 96.4 R .48 LW 451.95 99.4
199.65 99.4 DL(Iterations for Non-Rectangular Loops)270.99 96.4 Q 1.458
(The approaches described so f)111.6 125.2 R 1.457
(ar do not address loops whose number of iterations can)-.12 F -.3(va)
111.6 154 S(ry).3 E 9.784(.T)-.78 G 3.784(he pre)-9.784 F 3.785
(vious sections described approaches to determine the minimum and)-.3 F
1.251(maximum number of iterations for a loop, gi)111.6 182.8 R -.18(ve)
-.3 G 4.251(nt).18 G 1.25(hat the number of iterations depends)-4.251 F
.378(only upon either constant or loop-in)111.6 211.6 R -.3(va)-.48 G
.378(riant v).3 F 3.378(alues. Figure)-.3 F .379(11 sho)3.379 F .379
(ws tw)-.3 F 3.379(os)-.12 G .379(imple loops to)-3.379 F .546
(depict the essential dif)111.6 240.4 R .545
(ference between a rectangular and non-rectangular loop nest.)-.3 F -.18
(Fo)6.545 G(r).18 E .943(rectangular loops, the lo)111.6 269.2 R .943
(wer and upper bounds of the loop inde)-.3 F 3.944(xv)-.18 G .944
(ariables are constant.)-4.244 F .92
(In contrast, the number of iterations of a non-rectangular loop v)111.6
298 R 3.92(aries. F)-.3 F .92(or instance, the)-.18 F 2.145
(number of iterations typically depends on the v)111.6 326.8 R 2.145
(alues of counter v)-.3 F 2.145(ariables from outer)-.3 F 6.407
(loops. These)111.6 355.6 R 3.407(loops ha)6.407 F 3.767 -.18(ve l)-.24
H 3.407(ong presented a problem for timing analyzers since the).18 F
2.475(resulting timing predictions are typically quite loose.)111.6
384.4 R 2.475(In f)8.475 F 2.476(act, these predictions may)-.12 F(indi\
cate that a program does not meet its timing constraints, when it actua\
lly does.)111.6 413.2 Q 248.328 599.44 MT 0 -120.24 RL -92.16 0 RL 0
120.24 RL CL .44 LW ST 6(..........)159.048 485.436 S 6(..........)
159.048 497.896 S 6(..........)159.048 510.208 S 6(..........)159.048
522.448 S 6(..........)159.048 534.76 S 6(..........)159.048 547 S 6
(..........)159.048 559.312 S 6(..........)159.048 571.552 S 6
(..........)159.048 583.864 S 6(..........)159.048 596.104 S/F1 11
/Times-Bold@0 SF(\(a\) Rectangular Loop Nest)145.08 625.336 Q 371.088
602.608 371.088 474.232 DL 468.72 602.608 371.088 602.608 DL 371.088
474.232 468.72 602.608 DL F0(.)373.896 488.244 Q 6(..)373.896 500.704 S
6(...)373.896 513.016 S 6(....)373.896 525.256 S 6(.....)373.896 537.568
S 6(......)373.896 549.808 S 6(.......)373.896 562.12 S 6(........)
373.896 574.36 S 6(.........)373.896 586.672 S 6(..........)373.896
598.912 S F1(\(b\) Non-r)351.576 625.336 Q(ectangular Loop Nest)-.198 E
/F2 12/Courier-Bold@0 SF(for \(i = 0; i < 10; i++\))330.192 446.34 Q
(for \(j = i; j < 10; j++\))351.792 457.72 Q(for \(i = 0; i < 10; i++\))
111.6 446.56 Q(for \(j = 0; j < 10; j++\))133.2 457.72 Q F0
(Figure 11: Rectangular v)184.248 645.736 Q
(ersus Non-Rectangular Loop Nest)-.18 E(33)319.8 725.04 Q EP
%%Page: 34 36
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 2.16(The author')126.6 96.4 R 5.16(si)-.66 G
2.16
(nitial approach to calculating loop iterations only dealt with doubly)
-5.16 F 1.342(nested loops that were triangular in nature as the loop n\
est in Figure 11\(b\) [31].)111.6 125.2 R(This)7.342 E .579(simple appr\
oach has been superseded by a more general approach presented here that\
is)111.6 154 R .033(not limited to the nesting depth or ho)111.6 182.8
R 3.034(wt)-.3 G .034(he indi)-3.034 F .034(vidual loop inde)-.3 F 3.034
(xv)-.18 G .034(ariables depend on one)-3.334 F(another)111.6 211.6 Q(.)
-.66 E 3.158(This section describes a general and ef)126.6 240.4 R 3.158
(\214cient method for obtaining tight timing)-.3 F 5.421
(predictions for non-rectangular loops usually encountered in programs.)
111.6 269.2 R 5.422(This is)11.422 F 2.402(accomplished by formulating \
the number of loop iterations in terms of summations,)111.6 298 R 1.962
(where each summation represents the number of iterations to be e)111.6
326.8 R -.18(xe)-.18 G 1.963(cuted by a loop.).18 F
(Such an equation can be ef)111.6 355.6 Q(\214ciently solv)-.3 E(ed gi)
-.18 E -.18(ve)-.3 G 3(nt).18 G(hat certain restrictions are met.)-3 E
.429(This w)126.6 384.4 R .429
(ork on bounding iterations for non-rectangular loops w)-.12 F .429
(as inspired by the w)-.12 F(ork)-.12 E 1.304(of Sak)111.6 413.2 R 1.304
(ellariou [41, 42].)-.12 F 1.305
(He calculated the total number of iterations for loops that are)7.304 F
1.056(dependent on counter v)111.6 442 R 1.056
(ariables of outer loops in order to obtain better load balance by)-.3 F
2.496(assigning approximately the same number of loop iterations to eac\
h processor)111.6 470.8 R 8.496(.T)-.66 G(he)-8.496 E .932
(approach used w)111.6 499.6 R .932
(as to formulate summations representing the number of loop iterations)
-.12 F .449(by hand and to interf)111.6 528.4 R .45
(ace to a mathematical package of)-.12 F 3.45(fl)-.3 G .45(ine to solv)
-3.45 F 3.45(et)-.18 G .45(he equations.)-3.45 F(This)6.45 E 1.811
(section describes an approach to automatically calculate the a)111.6
557.2 R -.18(ve)-.24 G 1.811(rage number of times).18 F 3.873(that a lo\
op will iterate during the timing analysis of a program and to use this)
111.6 586 R(information to obtain tighter timing predictions.)111.6
614.8 Q 3(4.3.1 F)111.6 653.68 R .48 LW 322.068 656.68 111.6 656.68 DL
(ormulating the Number of Iterations)148.092 653.68 Q .168
(This subsection sho)111.6 689.68 R .168(ws ho)-.3 F 3.168(wal)-.3 G
.168(oop nest may be formulated in terms of summations.)-3.168 F(This)
6.168 E(34)319.8 725.04 Q EP
%%Page: 35 37
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF(frame)111.6 96.4 Q -.12(wo)-.3 G 1.352(rk w).12
F 1.352(as based on w)-.12 F 1.352(ork by Sak)-.12 F 1.353
(ellariou [41, 42].)-.12 F 1.353(The number of iterations of a)7.353 F
3.982(single loop, where the loop v)111.6 125.2 R 3.982
(ariable is incremented by one \(unit stride\), can be)-.3 F .548
(represented by a summation when the lo)111.6 154 R .548(wer bound \()
-.3 F/F1 12/Times-Italic@0 SF(a)A F0 3.548(\)i)C 3.548(sl)-3.548 G .549
(ess than or equal to the upper)-3.548 F .132(bound \()111.6 182.8 R F1
(b)A F0 .132(\), as sho)B .131(wn in Equation 2.)-.3 F .131
(Figure 12 sho)6.131 F .131(ws ho)-.3 F 3.131(wt)-.3 G .371 -.12(wo d)
-3.131 H(if).12 E .131(ferent loop nests can be)-.3 F .2
(formulated in terms of summations.)111.6 211.6 R .201
(The total number of iterations to be e)6.2 F -.18(xe)-.18 G .201
(cuted by the).18 F 1.066(innermost loop in each loop nest are calculat\
ed by solving the corresponding equation.)111.6 240.4 R .69
(The Bernoulli formula sho)111.6 269.2 R .69(wn in Equation 3, where)-.3
F F1(p)3.69 E/F2 12/Symbol SF3.69 E F0 3.69(1&)3.69 G F1(n)A F2
3.69 E F0 3.691(1a)3.691 G(nd)-3.691 E F1(B)3.691 E/F3 10/Times-Italic@0
SF(k)6 I F0 .691(is a Bernoulli)3.691 -6 N(number of order)111.6 298 Q
F1(k)3 E F0 3(,c)C(an be used to e)-3 E -.3(va)-.3 G
(luate terms in a summation.).3 E .575
(The constraint on the bounds in Equation 2 results from the f)126.6
326.8 R .575(act that the v)-.12 F .575(alue of the)-.3 F .142
(sum must equal 0 if the lo)111.6 355.6 R .142(wer bound)-.3 F F1(a)
3.142 E F0 .142(is greater than the upper bound)3.142 F F1(b)3.142 E F0
6.142(.T)C .142(his constraint)-6.142 F 1.101
(is in accordance with the usual semantics of summations in con)111.6
384.4 R -.18(ve)-.48 G 1.1(ntional mathematical).18 F .962(notation, in\
which the upper bound is implicitly assumed to be greater than or equa\
l to)111.6 413.2 R .998(the lo)111.6 442 R .998(wer bound.)-.3 F .998
(Therefore, the e)6.998 F .998
(xplicit constraint is necessary to accurately count the)-.18 F .181
(number of iterations of so-called)111.6 470.8 R F1(zer)3.181 E(o-trip)
-.54 E F0 3.181(loops. Zero-trip)3.181 F .181(loops do not e)3.181 F
-.18(xe)-.18 G .181(cute the loop).18 F(body when the lo)111.6 499.6 Q
(wer bound e)-.3 E(xceeds the upper bound, gi)-.18 E -.18(ve)-.3 G 3(nt)
.18 G(hat the stride is positi)-3 E -.18(ve)-.3 G(.).18 E 2.212(It is p\
ossible to represent summations with non-unit strides, where the stride)
126.6 528.4 R F1(s)5.211 E F0(is)5.211 E 1.578
(speci\214ed along with the lo)111.6 557.2 R 1.578(wer bound)-.3 F F1(a)
4.578 E F0 1.578(and upper bound)4.578 F F1(b)4.579 E F0 7.579(.E)C
1.579(quation 4 sho)-7.579 F 1.579(ws ho)-.3 F 4.579(wa)-.3 G 1.022
(non-unit stride can be used in a con)111.6 586 R -.18(ve)-.48 G 1.022
(ntional summation, where).18 F F1(e)4.022 E F0 1.021(is an e)4.021 F
1.021(xpression and)-.18 F F1(e)111.6 614.8 Q F0([)A F1(i)A F23.981
E F1 .981(si + a)3.981 F F0 3.981(]d)C .981
(enotes the substitution of all free occurrences of)-3.981 F F1(i)3.982
E F0(by)3.982 E F1 .982(si + a)3.982 F F0 6.982(.T)C .982(his w)-6.982 F
(ay)-.12 E(,)-.78 E
(summations with strides can be represented by uniform summations.)111.6
643.6 Q(35)319.8 725.04 Q EP
%%Page: 36 38
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF(\(2\))526.008 125.2 Q/F1 12/Times-Italic@0 SF(N)
245.432 125.32 Q/F2 12/Symbol SF(=)4.68 E/F3 8/Times-Italic@0 SF(b)7.068
-11.241 M(i)-7.7 21.113 M/F4 8/Symbol SF(=).288 E F3(a).264 E/F5 17
/Symbol SF(S)-10.516 -7.272 M F0(1)2.7 -2.6 M F2(=)3.36 E3.36 -10.02
M-5.928 12 M-5.928 12 M F1(b).324 -22.38 M F2(-)2.916 E F1(a)
3.036 E F2(+)2.952 E F0(1)2.64 E(0)-43.044 16.8 M(if)47.124 -16.8 M F1
(a)7.116 E F23.672 E F1(b)3.684 E(otherwise)-40.116 16.8 M F0(\(3\))
526.008 169.792 Q F3(n)236.738 158.671 Q(i)-7.496 21.289 M F4(=).288 E
/F6 8/Times-Roman@0 SF(1)A F5(S)-10.488 -7.448 M F1(i)2.476 -2.6 M F3(p)
1.432 -5.04 M F2(=)4.112 5.04 M F0(1)14.598 -8.4 M F1(p)-14.298 16.8 M
F2(+)2.868 E .48 LW 296.062 166.792 270.466 166.792 DL F0(1)290.062
178.312 Q F3(p)8.288 -20.201 M(k)-8.52 21.905 M F4(=).536 E F6(0)A F5(S)
-11.416 -7.504 M F23.392 -9.2 M-4.608 14.556 M F1(p)1.692
-16.356 M F2(+)2.868 E F0(1)2.64 E F1(k)-15.648 16.8 M F210.32 -15 M
-4.608 14.556 M F1(B).888 -7.956 M F3(k).612 2.4 M F0(\()1.136 -2.4
M F1(n).432 E F2(+)2.928 E F0(1\))2.64 E F3(p)1 -5.04 M F4(-).152 E F3
(k).288 E F4(+).536 E F6(1)A .44 LW 287.496 544.768 287.496 216.304 DL
485.64 544.624 MT 0 -328.32 RL -319.68 0 RL 0 328.32 RL CL ST/F7 10
/Courier-Bold@0 SF(for \(i=1; i<99;)180 230.584 Q(i++\))210 241.984 Q
(for \(j=i+1;)198 253.384 Q(j<100;)228 264.784 Q(j++\))228 276.184 Q/F8
13/Times-Italic@0 SF(N)178.139 304.955 Q/F9 13/Symbol SF(=)5.07 E/F10 9
/Times-Roman@0 SF(98)5.278 -12.037 M/F11 9/Times-Italic@0 SF(i)-10.629
23.008 M/F12 9/Symbol SF(=).324 E F10(1)A/F13 18/Symbol SF(S)-11.466
-8.294 M F10(99)9.378 -14.714 M F11(j)-13.792 23.008 M F12(=).432 E F11
(i).009 E F12(+).324 E F10(1)A F13(S)-16.187 -8.294 M/F14 13
/Times-Roman@0 SF(1)7.741 -2.677 M F9(=)191.88 342.11 Q F10(98)5.278
-12.037 M F11(i)-10.629 23.008 M F12(=).324 E F10(1)A F13(S)-11.466
-8.294 M F14(\().81 -2.677 M F10(99)2.47 -12.037 M F11(j)-9.904 23.008 M
F12(=).432 E F10(1)A F13(S)-12.299 -8.294 M F14(1)3.853 -2.677 M F9(-)
2.86 E F11(i)8.422 -12.037 M(j)-6.498 23.008 M F12(=).432 E F10(1)A F13
(S)-12.299 -8.294 M F14(1\))3.853 -2.677 M F9(=)191.88 379.265 Q F10(98)
5.278 -12.037 M F11(i)-10.629 23.008 M F12(=).324 E F10(1)A F13(S)
-11.466 -8.294 M F14(\(99).81 -2.677 M F9(-)2.86 E F8(i)2.873 E F14(\))
.468 E F9(=)191.88 414.656 Q F10(98)5.278 -12.037 M F11(i)-10.629 23.008
M F12(=).324 E F10(1)A F13(S)-11.466 -8.294 M F14(99)3.02 -2.677 M F9(-)
2.86 E F10(98)4.498 -12.037 M F11(i)-10.629 23.008 M F12(=).324 E F10(1)
A F13(S)-11.466 -8.294 M F8(i)3.033 -2.677 M F9(=)191.88 441.676 Q F14
-1.04(4, 851)3.64 F(\(a\) Loop Nest from)174.638 462.076 Q(Sort Program)
190.153 476.476 Q F7(for \(j=1; j<=100; j++\))297.6 230.584 Q
(for \(i=j; i<=100; i++\))315.6 241.984 Q(for \(k=1; k3.36 -10.761 M F6(\()-1.32 I F3(b)
.216 E F4(-).184 E F3(a).264 E F6(\)/).208 E F3(s).272 E F4.216 1.32
M F3(i)-20.728 20.809 M F4(=).288 E F6(0)A F5(S)-10.488 -7.448 M F1(e)
12.516 -2.6 M F0([)3.576 E F1(i).012 E F23.792 E F1(si)3.768 E F2(+)
3.072 E F1(a)3.036 E F0(]).312 E .616
(Summations with non-unit strides are more dif)126.6 649.994 R .616
(\214cult to e)-.3 F -.3(va)-.3 G .615(luate since one has to deal).3 F
2.93(with summations of \215oors.)111.6 678.794 R 2.93(Equation 5 sho)
8.93 F 2.931(ws ho)-.3 F 5.931(wa\215)-.3 G 2.931(oor can be con)-5.931
F -.18(ve)-.48 G 2.931(rted to an).18 F(36)319.8 725.04 Q EP
%%Page: 37 39
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF -.18(ex)111.6 96.4 S 4.032(pression in).18 F
-.24(vo)-.48 G 4.032(lving a modulo operation \().24 F/F1 12
/Times-Italic@0 SF(%)A F0 7.032(\). A)B 4.032
(modulo operation can often be)7.032 F 1.82
(simpli\214ed using Equation 6 [42].)111.6 125.2 R(Ho)7.82 E(we)-.3 E
-.18(ve)-.3 G 2.78 -.48(r, s).18 H 1.82(ummations in).48 F -.24(vo)-.48
G 1.82(lving modulo operations).24 F 2.092(are more dif)111.6 154 R
2.092(\214cult to simplify when tw)-.3 F 5.091(oo)-.12 G 5.091(rm)-5.091
G 2.091(ore loops ha)-5.091 F 2.451 -.18(ve n)-.24 H 2.091
(on-unit strides and the).18 F 2.067(bounds are symbolic.)111.6 182.8 R
-.18(Fo)8.067 G(rtunately).18 E 5.067(,t)-.78 G 2.067
(his situation rarely occurs.)-5.067 F 2.068(Equations 2-6 can be)8.067
F 2.185(used to correctly determine that the total iterations for the l\
oop nest in Figure 13 is)111.6 211.6 R 3.006(1,717. Unfortunately)111.6
240.4 R 3.006(,s)-.78 G .006(ometimes an e)-3.006 F .006
(xpression in a summation may contain a product of)-.18 F(tw)111.6 269.2
Q 3.762(oo)-.12 G 3.762(rm)-3.762 G .762
(ore terms containing modulo operations.)-3.762 F .761
(In this case, an approximation of the)6.762 F
(iteration count is used, which is sho)111.6 298 Q(wn in Equation 7.)-.3
E(\(5\))526.008 338.296 Q/F2 12/Symbol SF239.988 335.092 Q-4.608
12 M F1(n)3.264 -16.38 M .48 LW 255.54 335.992 246.036 335.992 DL(m)
246.492 347.512 Q F21.824 -12.42 M-4.608 12 M(=)3.36 -7.98 M F1
(n)5.232 -8.4 M F2(-)2.928 E F1(n)3.072 E F0(%).288 E F1(m).456 E
321.144 335.992 276.336 335.992 DL(m)294.444 347.512 Q F0 2.04(,i)21.516
-8.4 O(f)-2.04 E F1(m)3.816 E F0 3.36(>0&)3.744 G F1(n).432 E F0 3.36
(>0)3.648 G(\(6\))526.008 394.284 Q/F3 8/Times-Italic@0 SF(n)226.378
381.871 Q(i)-7.496 21.289 M/F4 8/Symbol SF(=).288 E/F5 8/Times-Roman@0
SF(0)A/F6 17/Symbol SF(S)-10.488 -7.448 M F0(\().424 -2.6 M F1(i).012 E
F0(%).432 E F1(d).42 E F0(\)).924 E F3(p)1 -5.04 M F2(=)4.112 5.04 M
3.36 -22.02 M-5.928 12 M-5.928 12 M-5.928 12 M-5.928 12
M F3(n)38.52 -53.781 M(i)-7.496 21.289 M F4(=).288 E F5(0)A F6(S)-10.488
-7.448 M F1(i)2.476 -2.6 M F3(p)1.432 -5.04 M F4-56.748 27.4 M F3(n)
.288 -1.32 M F5(/).192 E F3(d).28 E F4.616 1.32 M(-)-1.32 I F5(1)A
F3(j)-17.872 22.129 M F4(=).384 E F5(0)A F6(S)-11.228 -7.448 M F3(d)
10.356 -13.841 M F4(-).616 E F5(1)A F3(i)-12.092 21.289 M F4(=).288 E F5
(0)A F6(S)-10.488 -7.448 M F1(i)3.664 -2.6 M F3(p)1.432 -5.04 M F2(+)
3.392 5.04 M F3(n)2.928 -11.241 M F5(%).192 E F3(d).28 E(i)-12.852
21.289 M F4(=).288 E F5(0)A F6(S)-10.488 -7.448 M F1(i)5.04 -2.6 M F3(p)
1.432 -5.04 M F0(if)10.832 -28.321 M F1(n)3.792 E F0(<)3.648 E F1(d)3.78
E F0(if)-37.32 33.6 M F1(n)3.792 E F23.648 E F1(d)3.78 E F0(\(7\))
526.008 452.837 Q F3(b)293.998 442.649 Q F5(,).184 E F3(s).272 E(i)
-10.468 21.161 M F4(=).288 E F3(a).264 E F6(S)-10.516 -7.272 M F1(e)
2.928 -2.6 M F23.576 E F43.36 -10.761 M F3(b).216 -1.32 M F5(/)
.184 E F3(s).272 E F4.216 1.32 M F3(i)-13.868 20.633 M F4(=).288 E
F3(a).264 E F6(S)-10.516 -7.272 M F1(e)5.42 -2.6 M F0(/).216 E F1(s).408
E F0 .288(As suggested by Sak)126.6 491.378 R .288
(ellariou [41, 42], a computer algebra system can be e)-.12 F .288
(xploited of)-.18 F(f)-.3 E .491(line to solv)111.6 520.178 R 3.491(et)
-.18 G .491(he equations of summations.)-3.491 F(Ho)6.491 E(we)-.3 E
-.18(ve)-.3 G 1.451 -.48(r, c).18 H .491
(omputer algebra systems, such as).48 F F1(Maple)111.6 548.978 Q F0
3.355(,g)C -2.58 -.3(iv e)-3.355 H .355(inaccurate results when the bou\
nds restriction on the summation is violated.)3.655 F 415.8 621.92 MT 0
-36 RL -180 0 RL 0 36 RL CL .44 LW ST/F7 11/Courier-Bold@0 SF
(for \(i=0; i<100; i++\))243.3 600.2 Q(for \(j=i; j<100; j+=3\))263.1
611.6 Q F0(Figure 13: A Loop Nest Containing a Non-unit Stride)197.136
640.4 Q(37)319.8 725.04 Q EP
%%Page: 38 40
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 3.2(In general, e)111.6 96.4 R -.18(ve)-.3 G
3.199
(ry loop iteration count problem that is cast as a summation should).18
F -.3(eva)111.6 125.2 S 1.019(luate to zero if the lo).3 F 1.019
(wer bound is greater than the upper bound.)-.3 F(Ho)7.02 E(we)-.3 E
-.18(ve)-.3 G 1.98 -.48(r, i).18 H 4.02(ti).48 G 4.02(sn)-4.02 G(ot)
-4.02 E(al)111.6 154 Q -.12(wa)-.12 G 3.582(ys possible to e).12 F -.3
(va)-.3 G 3.582(luate the test when the bounds are symbolic. F).3 F
3.582(or e)-.18 F(xample,)-.18 E 1.436
(consider the loop nest in Figure 14.)111.6 182.8 R 1.437
(The inner loop is a zero-trip loop for v)7.436 F 1.437(alues of)-.3 F
/F1 12/Times-Italic@0 SF(i)4.437 E F0 .187(greater than 2.)111.6 211.6 R
(A)6.187 E F1 .187(partially zer)3.187 F(o-trip)-.54 E F0 .187
(is de\214ned to be a loop that is zero-trip depending on)3.187 F -.3
(va)111.6 240.4 S .373(lues of inde).3 F 3.373(xv)-.18 G .374(ariables \
of outer loop\(s\). By applying Equation 8, the iteration count of)
-3.673 F .513(the partially zero-trip loop can be de\214ned as sho)111.6
269.2 R .512(wn in Figure 14. Clearly)-.3 F 3.512(,t)-.78 G .512
(he result is)-3.512 F F1(N)3.512 E F0 3.624(=3)111.6 298 S 3.624(.H)
-3.624 G -.3(ow)-3.624 G -2.58 -.3(ev e).3 H 1.584 -.48(r, a n).3 H(ai)
.48 E .984 -.18(ve e)-.3 H -.3(va)-.12 G .624
(luation without the bounds test results in).3 F F1(N)3.624 E F0(=)3.624
E/F2 12/Symbol SF(-)3.624 E F0 3.624(7. This)B(means)3.624 E 1.25
(that when a computer algebra system is to be used of)111.6 326.8 R
4.249(fl)-.3 G 1.249(ine, the summations should be)-4.249 F .966
(guarded with bounds tests.)111.6 355.6 R(Unfortunately)6.967 E 3.967
(,c)-.78 G .967(omputer algebra systems cannot ef)-3.967 F(fecti)-.3 E
-.18(ve)-.3 G(ly).18 E .518(deal with the simpli\214cation of nested su\
mmations with additional tests on the bounds of)111.6 384.4 R .981
(inner summations. The reason is that the test may be symbolic, as sho)
111.6 413.2 R .982(wn in Figure 14.)-.3 F .115
(The solution is to isolate possible conditions on the iteration v)111.6
442 R .114(ariable from the test and to)-.3 F .628
(simplify summations as sho)111.6 470.8 R .628(wn in Equation 8 for an)
-.3 F 3.628(ye)-.18 G(xpression)-3.808 E F1(e)3.628 E F0 6.628(.N)C .628
(ote that)-6.628 F F1(c)3.628 E F0 .628(may not)3.628 F
(necessarily lie within the range [)111.6 499.6 Q F1(a)A F0(..)A F1(b)A
F0 3(]a)C(nd relations besides)-3 E F1(<)3 E F0(may be used.)3 E 415.8
621.76 MT 0 -85.68 RL -180 0 RL 0 85.68 RL CL .44 LW ST/F3 11
/Courier-Bold@0 SF(for \(i=1; i<8; i++\))246.6 546.6 Q
(for \(j=i; j<3; j++\))279.6 560 Q/F4 14/Times-Italic@0 SF(N)255.602
600.34 Q/F5 14/Symbol SF(=)5.46 E/F6 10/Times-Roman@0 SF(7)8.24 -12.834
M/F7 10/Times-Italic@0 SF(i)-9.31 24.727 M/F8 10/Symbol SF(=).36 E F6(1)
A/F9 19/Symbol SF(S)-12.444 -9.14 M F53.576 -14.443 M-6.916 14 M
-6.916 14 M/F10 14/Times-Roman@0 SF(3)-26.11 I F5(-)3.08 E F4(i)
3.094 E F10(0)-24.752 19.6 M(if)30.016 -19.6 M F4(i)7.854 E F10 3.92(<3)
4.424 G F4(otherwise)-47.138 19.6 M F0(Figure 14: A P)234.276 640.4 Q
(artially Zero-T)-.18 E(rip Loop)-.42 E(38)319.8 725.04 Q EP
%%Page: 39 41
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF(\(8\))526.008 120.16 Q/F1 8/Times-Italic@0 SF(b)
221.896 110 Q(i)-7.7 21.113 M/F2 8/Symbol SF(=).288 E F1(a).264 E/F3 17
/Symbol SF(S)-10.516 -7.272 M/F4 12/Symbol SF2.7 -24.62 M-5.928
12 M-5.928 12 M-5.928 12 M-5.928 12 M/F5 12/Times-Italic@0
SF(e).228 -42.78 M F0(0)-5.556 33.6 M(if)10.08 -33.6 M F5(i)6.732 E F0
(<)3.792 E F5(c)3.6 E(otherwise)-36.612 33.6 M F4(=)13.656 -16.8 M
13.44 -22.02 M-5.928 12 M-5.928 12 M-5.928 12 M-5.928 12
M F1(min).304 -54.357 M/F6 8/Times-Roman@0 SF(\().192 E F1(b).216 E F6
(,).184 E F1(c).16 E F6(\)).248 E F1(i)-19.776 21.449 M F2(=).288 E F1
(a).264 E F3(S)-10.516 -7.272 M F5(e)11.328 -2.6 M F0(0)-20.782 33.6 M
(if)25.078 -33.6 M F5(a)7.116 E F0(<)3.672 E F5(c)3.6 E(otherwise)-39.54
33.6 M .48 LW 217.596 177.401 111.6 177.401 DL F0 3
(4.3.2 Implementation)111.6 174.401 R .164(The implementation for e)
111.6 210.401 R -.3(va)-.3 G .164
(luating the summations described in the pre).3 F .163(vious section w)
-.3 F(as)-.12 E .689
(accomplished by using the General-Purpose Algebraic Simpli\214er \(GP)
111.6 239.201 R .689(AS\) portion of the)-1.104 F 2.233
(Ctadel system [43, 44].)111.6 268.001 R 2.233(The author')8.233 F 5.233
(st)-.66 G 2.233(iming analyzer [2] and Ctadel were compiled)-5.233 F
(separately)111.6 296.801 Q 3.331(,b)-.78 G .331
(ut Ctadel is directly inte)-3.571 F .332
(grated into the timing analyzer by linking the object)-.18 F 6.875
(\214les. This)111.6 325.601 R -.24(avo)6.875 G 3.875(ids unnecessary o)
.24 F -.18(ve)-.18 G 3.875(rhead that w).18 F 3.875
(ould result from passing messages)-.12 F 5.37
(between the timing analyzer and GP)111.6 354.401 R 5.371(AS if the)
-1.104 F 8.371(yw)-.18 G 5.371(ere dif)-8.371 F 5.371(ferent processes.)
-.3 F(The)11.371 E .647
(summations are formulated in the timing analyzer and GP)111.6 383.201 R
.646(AS is in)-1.104 F -.24(vo)-.48 G -.12(ke).24 G 3.646(da).12 G 3.646
(saCf)-3.646 G(unction)-3.646 E(with the summation parameters as ar)
111.6 412.001 Q(guments.)-.216 E .343(Another complication when dealing\
with zero-trip loops in the timing analyzer is due)126.6 440.801 R
2.684(to the w)111.6 469.601 R 2.684
(ay the timing analyzer counts iterations.)-.12 F 2.683
(As mentioned in Section 3.2, the)8.683 F .277
(number of loop iterations is the number of times the loop header is e)
111.6 498.401 R -.18(xe)-.18 G .277(cuted, as opposed).18 F .438
(to the number of times the loop body is encountered.)111.6 527.201 R
.437(Thus, when a loop is entered, it is)6.438 F .855
(guaranteed to iterate at least once.)111.6 556.001 R .855
(The zero-trip case in Equation 8 can be modi\214ed to)6.855 F .104
(indicate a single iteration, as sho)111.6 584.801 R .104
(wn in Equation 9.)-.3 F .103(Figure 15 sho)6.103 F .103(ws ho)-.3 F
3.103(wt)-.3 G .103(he loop nest in)-3.103 F(\(9\))526.008 640.961 Q F1
(b)146.998 630.801 Q(i)-7.7 21.113 M F2(=).288 E F1(a).264 E F3(S)
-10.516 -7.272 M F42.7 -24.62 M-5.928 12 M-5.928 12 M
-5.928 12 M-5.928 12 M F5(e).228 -42.78 M F0(1)-5.556 33.6 M(if)
10.08 -33.6 M F5(i)6.732 E F0(<)3.792 E F5(c)3.6 E(otherwise)-36.612
33.6 M F4(=)13.656 -16.8 M13.44 -22.02 M-5.928 12 M-5.928 12
M-5.928 12 M-5.928 12 M F1(min).304 -54.357 M F6(\().192 E F1(b)
.216 E F6(,).184 E F1(c).16 E F2(-).248 E F6(1\))A F1(i)-23.972 21.449 M
F2(=).288 E F1(a).264 E F3(S)-10.516 -7.272 M F5(e)15.524 -2.6 M F0(0)
-24.978 33.6 M(if)29.274 -33.6 M F5(a)7.116 E F0(<)3.672 E F5(c)3.6 E
(otherwise)-39.54 33.6 M F4(+)13.656 -16.8 M13.44 -22.02 M-5.928
12 M-5.928 12 M-5.928 12 M-5.928 12 M F1(b)16.38 -54.021 M
(i)-20.372 21.289 M F2(=).288 E F1(max).304 E F6(\().424 E F1(a).264 E
F6(,).208 E F1(c).16 E F6(\)).248 E F3(S)-23.396 -7.448 M F0(1)15.372
-2.6 M(0)-25.384 33.6 M(if)29.464 -33.6 M F5(c)6.96 E F43.732 E F5
(b)3.684 E(otherwise)-39.348 33.6 M F0(39)319.8 725.04 Q EP
%%Page: 40 42
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF .667
(Figure 14 can be formulated as a summation and solv)111.6 96.4 R .667
(ed to produce an accurate number)-.18 F .377(of iterations.)111.6 125.2
R .377(Note that the test in Figure 15 has iteration v)6.377 F(ariable)
-.3 E/F1 12/Times-Italic@0 SF(i)3.377 E F0 .377(isolated to the left of)
3.377 F .249(the relation.)111.6 154 R .249(In practice, ho)6.249 F(we)
-.3 E -.18(ve)-.3 G 1.209 -.48(r, a).18 H 3.249(ni).48 G .25
(solation algorithm is used by GP)-3.249 F .25(AS to analyze the)-1.104
F(test and isolate the v)111.6 182.8 Q(ariable.)-.3 E 1.103(It is kno)
126.6 211.6 R 1.102(wn that the detection of zero-trip loops in the gen\
eral case is NP-complete,)-.3 F 1.442
(because it amounts to solving a linear programming problem.)111.6 240.4
R(Similarly)7.442 E 4.443(,a)-.78 G 1.443(djusting the)-4.443 F 1.78
(bounds of loops to a)111.6 269.2 R -.24(vo)-.24 G 1.779
(id partially zero-trip loops is NP-complete. This normalization).24 F
2.988(process can be performed with the F)111.6 298 R(ourier)-.18 E
2.988(-Motzkin \(FM\) elimination method [45].)-.24 F(Ho)111.6 326.8 Q
(we)-.3 E -.18(ve)-.3 G 3.222 -.48(r, o).18 H 2.262(ne can ar).48 F
2.262(gue that real-w)-.216 F 2.262(orld algorithms rarely e)-.12 F
2.262(xhibit \(partially\) zero-trip)-.18 F(loops, because algorithms w\
ith partially zero-trip loops are deemed to be inef)111.6 355.6 Q
(\214cient.)-.3 E 1.88(The timing analyzer v)126.6 384.4 R 1.881
(eri\214es that there are no zero-trip loops for an inner loop by)-.18 F
-.18(ex)111.6 413.2 S .608(panding its initial v).18 F .608
(alue and limit.)-.3 F(Lik)6.608 E -.3(ew)-.12 G .608
(ise, the timing analyzer is able to v).3 F .607(erify that)-.18 F 1.97
(there are no partially zero-trip loops in the loop nest.)111.6 442 R
(Ho)7.97 E(we)-.3 E -.18(ve)-.3 G 2.93 -.48(r, i).18 H 4.97(ft).48 G
1.97(he v)-4.97 F 1.97(eri\214cation is)-.18 F(inconclusi)111.6 470.8 Q
-.18(ve)-.3 G 6.62(,t).18 G 3.62
(he loop nest may or may not contain \(partial\) zero-trip loops.)-6.62
F -.18(Fo)9.62 G(r).18 E 406.8 619.742 MT 0 -116.64 RL -162 0 RL 0
116.64 RL CL .44 LW ST/F2 13/Times-Italic@0 SF(N)260.811 531.012 Q/F3 13
/Symbol SF(=)5.07 E/F4 9/Times-Roman@0 SF(7)7.528 -12.037 M/F5 9
/Times-Italic@0 SF(i)-8.379 23.008 M/F6 9/Symbol SF(=).324 E F4(1)A/F7
18/Symbol SF(S)-11.466 -8.294 M F33.02 -13.532 M-6.422 13 M
-6.422 13 M/F8 13/Times-Roman@0 SF(3)-24.245 I F3(-)2.86 E F2(i)2.873 E
F8(1)-22.984 18.2 M(if)27.872 -18.2 M F2(i)7.293 E F8 3.64(<3)4.108 G F2
(otherwise)-43.771 18.2 M F3(=)274.552 570.153 Q F4(2)7.528 -12.037 M F5
(i)-8.379 23.008 M F6(=).324 E F4(1)A F7(S)-11.466 -8.294 M F8(\(3).81
-2.677 M F3(-)2.86 E F2(i)2.873 E F8(\)).468 E F3(+)2.86 E F4(7)6.748
-12.037 M F5(i)-8.379 23.008 M F6(=).324 E F4(3)A F7(S)-11.466 -8.294 M
F8(1)3.02 -2.677 M F3(=)274.552 597.2 Q F8(3)3.64 E F3(+)2.86 E F8(5)
2.86 E F3(=)274.552 616.4 Q F8(8)3.64 E F0(Figure 15: Deri)142.806 640.4
Q(ving the Number of Iterations for the Loop Nest in Figure 14)-.3 E(40)
319.8 725.04 Q EP
%%Page: 41 43
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF .019
(instance, consider the loop nest in Figure 16.)111.6 96.4 R .02(The e)
6.02 F .02(xpansion of the innermost loop initial)-.18 F -.3(va)111.6
125.2 S .316(lue and limit is depicted in T).3 F .316(able 10.)-.96 F
.316(The timing analyzer is able to guarantee that the)6.316 F
(inner loop is not zero-trip since the initial v)111.6 154 Q(alue is ne)
-.3 E -.18(ve)-.3 G 3(rg).18 G(reater than the limit.)-3 E(No)126.6
182.8 Q 4.558(wc)-.3 G 1.558
(onsider the loop in Figure 17 and the corresponding e)-4.558 F 1.559
(xpansion of the initial)-.18 F -.3(va)111.6 211.6 S .153
(lue and limit in T).3 F .153(able 11.)-.96 F .153
(The test is inconclusi)6.153 F -.18(ve)-.3 G 6.153(.H).18 G -.3(ow)
-6.153 G -2.58 -.3(ev e).3 H 1.113 -.48(r, t).3 H .153
(he loop nest is not zero-).48 F .509(trip due to the)111.6 240.4 R/F1
12/Times-Italic@0 SF(jA F2(9)A(\(3\) 8)167.04
589.108 Q F3A F2(9)A F3A F2(2)A F3A F2(3)A F3A F2(7)A
(\(4\) 8)167.04 601.852 Q F3A F2(9)A F3A F2(2)A F3A F2(4)A
F3A F2(5)A F3A F2(7)A(\(5\) 8)167.04 614.524 Q F3A F2(9)A F3
A F2(2)A F3A F2(4)A F3A F2(6)A F3A F2(7)A/F4 11
/Times-Bold@0 SF(\(d\) P)177.056 631.444 Q(aths in Loop)-.11 E .44 LW
302.4 639.68 302.4 204.008 DL 150.12 407.048 302.4 407.048 DL 450.36
284.36 MT 0 -67.68 RL -105.84 0 RL 0 67.68 RL CL ST 403.92 402.8 403.92
385.88 DL 403.92 402.8 MT -1.8 -7.2 RL 3.6 0 RL CL BL 403.92 402.8 MT
-1.8 -7.2 RL 3.6 0 RL CL ST 450.36 318.2 MT 0 -16.56 RL -105.84 0 RL 0
16.56 RL CL ST 450.36 352.04 MT 0 -16.56 RL -105.84 0 RL 0 16.56 RL CL
ST 403.92 335.12 403.92 318.2 DL 403.92 335.12 MT -1.8 -7.2 RL 3.6 0 RL
CL BL 403.92 335.12 MT -1.8 -7.2 RL 3.6 0 RL CL ST 450.36 385.88 MT 0
-17.28 RL -105.84 0 RL 0 17.28 RL CL ST 450.36 432.68 MT 0 -29.52 RL
-105.84 0 RL 0 29.52 RL CL ST 450.36 478.76 MT 0 -29.52 RL -105.84 0 RL
0 29.52 RL CL ST 403.92 495.896 403.92 478.904 DL 403.92 495.896 MT -1.8
-7.2 RL 3.6 0 RL CL BL 403.92 495.896 MT -1.8 -7.2 RL 3.6 0 RL CL ST
450.36 512.6 MT 0 -16.56 RL -105.84 0 RL 0 16.56 RL CL ST 403.92 529.664
403.92 512.744 DL 403.92 529.664 MT -1.8 -7.2 RL 3.6 0 RL CL BL 403.92
529.664 MT -1.8 -7.2 RL 3.6 0 RL CL ST 450.36 580.28 MT 0 -17.28 RL
-105.84 0 RL 0 17.28 RL CL ST 403.92 563.504 403.92 546.656 DL 403.92
563.504 MT -1.8 -7.2 RL 3.6 0 RL CL BL 403.92 563.504 MT -1.8 -7.2 RL
3.6 0 RL CL ST 450.36 546.44 MT 0 -17.28 RL -105.84 0 RL 0 17.28 RL CL
ST 450.36 614.12 MT 0 -17.28 RL -105.84 0 RL 0 17.28 RL CL ST 403.92
597.344 403.92 580.424 DL 403.92 597.344 MT -1.8 -7.2 RL 3.6 0 RL CL BL
403.92 597.344 MT -1.8 -7.2 RL 3.6 0 RL CL ST 150.12 542.408 302.4
542.408 DL 501.48 639.32 MT 0 -435.6 RL -351.36 0 RL 0 435.6 RL CL ST
344.52 385.88 344.664 385.88 DL 344.16 385.952 344.52 385.88 DL 343.584
386.024 344.16 385.952 DL 342.648 386.24 343.584 386.024 DL 341.568
386.456 342.648 386.24 DL 340.344 386.744 341.568 386.456 DL 339.12
387.104 340.344 386.744 DL 337.824 387.536 339.12 387.104 DL 336.6
388.112 337.824 387.536 DL 335.52 388.688 336.6 388.112 DL 334.512
389.408 335.52 388.688 DL 333.576 390.128 334.512 389.408 DL 332.856
390.92 333.576 390.128 DL 332.208 392 332.856 390.92 DL 331.56 393.008
332.208 392 DL 331.056 394.376 331.56 393.008 DL 330.624 395.744 331.056
394.376 DL 330.336 396.824 330.624 395.744 DL 330.048 397.976 330.336
396.824 DL 329.832 399.272 330.048 397.976 DL 329.616 400.568 329.832
399.272 DL 329.328 402.008 329.616 400.568 DL 329.184 403.448 329.328
402.008 DL 329.04 405.032 329.184 403.448 DL 328.896 406.688 329.04
405.032 DL 328.824 408.416 328.896 406.688 DL 328.68 410.144 328.824
408.416 DL 328.608 411.944 328.68 410.144 DL 328.536 413.744 328.608
411.944 DL 328.536 415.616 328.536 413.744 DL 328.536 417.416 328.536
415.616 DL 328.608 419.288 328.536 417.416 DL 328.68 421.088 328.608
419.288 DL 328.824 422.816 328.68 421.088 DL 328.896 424.544 328.824
422.816 DL 329.04 426.272 328.896 424.544 DL 329.184 427.856 329.04
426.272 DL 329.328 429.368 329.184 427.856 DL 329.616 430.808 329.328
429.368 DL 329.832 432.248 329.616 430.808 DL 330.048 433.544 329.832
432.248 DL 330.336 434.768 330.048 433.544 DL 330.624 435.992 330.336
434.768 DL 330.984 437.288 330.624 435.992 DL 331.416 438.584 330.984
437.288 DL 331.92 439.736 331.416 438.584 DL 332.568 440.816 331.92
439.736 DL 333.216 441.752 332.568 440.816 DL 333.936 442.76 333.216
441.752 DL 334.8 443.552 333.936 442.76 DL 335.664 444.344 334.8 443.552
DL 336.672 445.136 335.664 444.344 DL 337.824 445.856 336.672 445.136 DL
338.976 446.648 337.824 445.856 DL 340.128 447.224 338.976 446.648 DL
341.28 447.8 340.128 447.224 DL 342.288 448.304 341.28 447.8 DL 343.152
448.736 342.288 448.304 DL 344.664 449.312 343.152 448.736 DL 344.664
449.312 MT -7.344 -.864 RL 1.296 -3.384 RL CL BL 344.664 449.312 MT
-7.344 -.864 RL 1.296 -3.384 RL CL ST 344.52 318.2 344.664 318.2 DL
344.16 318.272 344.52 318.2 DL 343.584 318.344 344.16 318.272 DL 342.648
318.488 343.584 318.344 DL 341.568 318.632 342.648 318.488 DL 340.344
318.848 341.568 318.632 DL 339.12 319.136 340.344 318.848 DL 337.824
319.568 339.12 319.136 DL 336.6 319.928 337.824 319.568 DL 335.52
320.432 336.6 319.928 DL 334.512 320.936 335.52 320.432 DL 333.576
321.512 334.512 320.936 DL 332.856 322.232 333.576 321.512 DL 332.208
323.024 332.856 322.232 DL 331.56 323.816 332.208 323.024 DL 331.056
324.824 331.56 323.816 DL 330.624 325.976 331.056 324.824 DL 330.264
326.912 330.624 325.976 DL 329.976 328.064 330.264 326.912 DL 329.688
329.288 329.976 328.064 DL 329.4 330.584 329.688 329.288 DL 329.184
331.88 329.4 330.584 DL 329.04 333.392 329.184 331.88 DL 328.824 334.904
329.04 333.392 DL 328.752 336.56 328.824 334.904 DL 328.608 338.144
328.752 336.56 DL 328.536 339.872 328.608 338.144 DL 328.536 341.528
328.536 339.872 DL 328.536 343.328 328.536 341.528 DL 328.608 344.984
328.536 343.328 DL 328.752 346.712 328.608 344.984 DL 328.824 348.296
328.752 346.712 DL 329.04 349.808 328.824 348.296 DL 329.184 351.392
329.04 349.808 DL 329.4 352.76 329.184 351.392 DL 329.688 354.128 329.4
352.76 DL 329.976 355.424 329.688 354.128 DL 330.264 356.576 329.976
355.424 DL 330.624 357.656 330.264 356.576 DL 331.128 359.024 330.624
357.656 DL 331.704 360.248 331.128 359.024 DL 332.424 361.4 331.704
360.248 DL 333.216 362.408 332.424 361.4 DL 334.152 363.344 333.216
362.408 DL 335.232 364.28 334.152 363.344 DL 336.456 365.144 335.232
364.28 DL 337.824 365.936 336.456 365.144 DL 339.264 366.656 337.824
365.936 DL 340.704 367.304 339.264 366.656 DL 342.072 367.952 340.704
367.304 DL 343.152 368.384 342.072 367.952 DL 344.664 368.96 343.152
368.384 DL 344.664 368.96 MT -7.344 -.864 RL 1.296 -3.384 RL CL BL
344.664 368.96 MT -7.344 -.864 RL 1.296 -3.384 RL CL ST 344.664 284.36
344.664 284.36 DL 344.52 284.432 344.664 284.36 DL 344.304 284.504
344.52 284.432 DL 343.944 284.576 344.304 284.504 DL 343.44 284.72
343.944 284.576 DL 342.792 285.008 343.44 284.72 DL 342 285.368 342.792
285.008 DL 341.064 285.8 342 285.368 DL 339.984 286.304 341.064 285.8 DL
338.904 286.88 339.984 286.304 DL 337.68 287.6 338.904 286.88 DL 336.456
288.392 337.68 287.6 DL 335.16 289.256 336.456 288.392 DL 333.864
290.192 335.16 289.256 DL 332.64 291.272 333.864 290.192 DL 331.416
292.424 332.64 291.272 DL 330.264 293.648 331.416 292.424 DL 329.112
295.016 330.264 293.648 DL 328.104 296.456 329.112 295.016 DL 327.168
298.04 328.104 296.456 DL 326.232 299.624 327.168 298.04 DL 325.368
301.424 326.232 299.624 DL 324.576 303.296 325.368 301.424 DL 323.856
305.312 324.576 303.296 DL 323.136 307.544 323.856 305.312 DL 322.56
309.92 323.136 307.544 DL 321.984 312.368 322.56 309.92 DL 321.408
315.176 321.984 312.368 DL 320.976 318.056 321.408 315.176 DL 320.472
321.224 320.976 318.056 DL 320.04 324.608 320.472 321.224 DL 319.752
326.696 320.04 324.608 DL 319.536 329 319.752 326.696 DL 319.248 331.304
319.536 329 DL 319.032 333.68 319.248 331.304 DL 318.816 336.2 319.032
333.68 DL 318.672 338.792 318.816 336.2 DL 318.384 341.456 318.672
338.792 DL 318.24 344.192 318.384 341.456 DL 318.024 347 318.24 344.192
DL 317.88 349.952 318.024 347 DL 317.664 352.976 317.88 349.952 DL
317.592 356 317.664 352.976 DL 317.376 359.168 317.592 356 DL 317.304
362.336 317.376 359.168 DL 317.088 365.648 317.304 362.336 DL 317.016
369.032 317.088 365.648 DL 316.872 372.416 317.016 369.032 DL 316.872
375.872 316.872 372.416 DL 316.728 379.4 316.872 375.872 DL 316.656 383
316.728 379.4 DL 316.584 386.6 316.656 383 DL 316.584 390.2 316.584
386.6 DL 316.512 393.872 316.584 390.2 DL 316.512 397.616 316.512
393.872 DL 316.44 401.288 316.512 397.616 DL 316.44 405.032 316.44
401.288 DL 316.44 408.704 316.44 405.032 DL 316.512 412.448 316.44
408.704 DL 316.512 416.12 316.512 412.448 DL 316.584 419.864 316.512
416.12 DL 316.584 423.464 316.584 419.864 DL 316.656 427.064 316.584
423.464 DL 316.728 430.664 316.656 427.064 DL 316.872 434.192 316.728
430.664 DL 316.872 437.648 316.872 434.192 DL 317.016 441.104 316.872
437.648 DL 317.088 444.488 317.016 441.104 DL 317.304 447.8 317.088
444.488 DL 317.376 451.04 317.304 447.8 DL 317.592 454.208 317.376
451.04 DL 317.664 457.304 317.592 454.208 DL 317.88 460.328 317.664
457.304 DL 318.024 463.28 317.88 460.328 DL 318.24 466.088 318.024
463.28 DL 318.384 468.824 318.24 466.088 DL 318.672 471.56 318.384
468.824 DL 318.816 474.224 318.672 471.56 DL 319.032 476.672 318.816
474.224 DL 319.248 479.192 319.032 476.672 DL 319.536 481.568 319.248
479.192 DL 319.752 483.8 319.536 481.568 DL 320.04 485.96 319.752 483.8
DL 320.472 489.632 320.04 485.96 DL 320.976 493.016 320.472 489.632 DL
321.552 496.184 320.976 493.016 DL 322.128 499.136 321.552 496.184 DL
322.776 501.872 322.128 499.136 DL 323.424 504.392 322.776 501.872 DL
324.144 506.768 323.424 504.392 DL 325.008 508.928 324.144 506.768 DL
325.872 511.016 325.008 508.928 DL 326.808 512.96 325.872 511.016 DL
327.816 514.832 326.808 512.96 DL 328.968 516.488 327.816 514.832 DL
330.12 518.144 328.968 516.488 DL 331.344 519.656 330.12 518.144 DL
332.64 521.096 331.344 519.656 DL 334.008 522.392 332.64 521.096 DL
335.304 523.616 334.008 522.392 DL 336.672 524.768 335.304 523.616 DL
338.04 525.776 336.672 524.768 DL 339.264 526.568 338.04 525.776 DL
340.488 527.36 339.264 526.568 DL 341.568 528.08 340.488 527.36 DL
342.432 528.584 341.568 528.08 DL 343.152 528.944 342.432 528.584 DL
343.8 529.232 343.152 528.944 DL 344.664 529.664 343.8 529.232 DL
344.664 529.664 MT -7.272 -1.584 RL 1.584 -3.24 RL CL BL 344.664 529.664
MT -7.272 -1.584 RL 1.584 -3.24 RL CL ST 450.504 352.04 450.432 352.04
DL 450.72 352.112 450.504 352.04 DL 451.08 352.184 450.72 352.112 DL
451.584 352.256 451.08 352.184 DL 452.232 352.4 451.584 352.256 DL
453.168 352.616 452.232 352.4 DL 454.248 352.904 453.168 352.616 DL
455.4 353.192 454.248 352.904 DL 456.768 353.696 455.4 353.192 DL
458.208 354.128 456.768 353.696 DL 459.648 354.704 458.208 354.128 DL
461.088 355.352 459.648 354.704 DL 462.528 356.072 461.088 355.352 DL
463.896 356.864 462.528 356.072 DL 465.192 357.656 463.896 356.864 DL
466.488 358.592 465.192 357.656 DL 467.568 359.528 466.488 358.592 DL
468.648 360.608 467.568 359.528 DL 469.656 361.76 468.648 360.608 DL
470.592 363.056 469.656 361.76 DL 471.384 364.424 470.592 363.056 DL
472.176 365.864 471.384 364.424 DL 472.824 367.448 472.176 365.864 DL
473.544 369.176 472.824 367.448 DL 474.048 371.048 473.544 369.176 DL
474.624 373.064 474.048 371.048 DL 475.128 375.296 474.624 373.064 DL
475.128 375.368 475.128 375.296 DL 475.416 376.952 475.128 375.368 DL
475.776 378.68 475.416 376.952 DL 476.064 380.48 475.776 378.68 DL
476.352 382.352 476.064 380.48 DL 476.64 384.296 476.352 382.352 DL
476.928 386.312 476.64 384.296 DL 477.144 388.472 476.928 386.312 DL
477.36 390.704 477.144 388.472 DL 477.576 393.008 477.36 390.704 DL
477.72 395.384 477.576 393.008 DL 477.936 397.76 477.72 395.384 DL
478.08 400.28 477.936 397.76 DL 478.224 402.872 478.08 400.28 DL 478.368
405.464 478.224 402.872 DL 478.44 408.128 478.368 405.464 DL 478.512
410.792 478.44 408.128 DL 478.584 413.6 478.512 410.792 DL 478.656
416.336 478.584 413.6 DL 478.728 419.144 478.656 416.336 DL 478.728
421.952 478.728 419.144 DL 478.728 424.76 478.728 421.952 DL 478.656
427.496 478.728 424.76 DL 478.584 430.304 478.656 427.496 DL 478.512
433.112 478.584 430.304 DL 478.44 435.776 478.512 433.112 DL 478.368
438.44 478.44 435.776 DL 478.224 441.104 478.368 438.44 DL 478.08
443.696 478.224 441.104 DL 477.936 446.216 478.08 443.696 DL 477.72
448.664 477.936 446.216 DL 477.576 451.112 477.72 448.664 DL 477.36
453.416 477.576 451.112 DL 477.144 455.576 477.36 453.416 DL 476.928
457.808 477.144 455.576 DL 476.64 459.896 476.928 457.808 DL 476.352
461.84 476.64 459.896 DL 476.064 463.784 476.352 461.84 DL 475.776
465.656 476.064 463.784 DL 475.416 467.384 475.776 465.656 DL 475.128
469.04 475.416 467.384 DL 474.624 471.488 475.128 469.04 DL 473.976
473.792 474.624 471.488 DL 473.328 475.88 473.976 473.792 DL 472.68
477.824 473.328 475.88 DL 471.888 479.552 472.68 477.824 DL 471.024
481.28 471.888 479.552 DL 470.088 482.792 471.024 481.28 DL 469.08
484.16 470.088 482.792 DL 467.928 485.528 469.08 484.16 DL 466.704
486.752 467.928 485.528 DL 465.408 487.976 466.704 486.752 DL 463.968
489.056 465.408 487.976 DL 462.528 490.136 463.968 489.056 DL 460.944
491.144 462.528 490.136 DL 459.432 492.008 460.944 491.144 DL 457.848
492.8 459.432 492.008 DL 456.336 493.52 457.848 492.8 DL 454.968 494.168
456.336 493.52 DL 453.744 494.672 454.968 494.168 DL 452.664 495.104
453.744 494.672 DL 451.8 495.392 452.664 495.104 DL 450.432 495.896
451.8 495.392 DL 450.432 495.896 MT 6.12 -4.176 RL 1.224 3.384 RL CL BL
450.432 495.896 MT 6.12 -4.176 RL 1.224 3.384 RL CL ST 450.504 580.424
450.432 580.424 DL 450.648 580.424 450.504 580.424 DL 450.936 580.28
450.648 580.424 DL 451.296 580.136 450.936 580.28 DL 451.8 579.92
451.296 580.136 DL 452.52 579.632 451.8 579.92 DL 453.456 579.2 452.52
579.632 DL 454.464 578.696 453.456 579.2 DL 455.616 578.12 454.464
578.696 DL 456.984 577.328 455.616 578.12 DL 458.424 576.536 456.984
577.328 DL 459.864 575.6 458.424 576.536 DL 461.448 574.592 459.864
575.6 DL 462.96 573.44 461.448 574.592 DL 464.544 572.288 462.96 573.44
DL 466.056 570.992 464.544 572.288 DL 467.568 569.552 466.056 570.992 DL
469.008 568.112 467.568 569.552 DL 470.376 566.6 469.008 568.112 DL
471.672 564.944 470.376 566.6 DL 472.896 563.216 471.672 564.944 DL
474.048 561.344 472.896 563.216 DL 475.128 559.4 474.048 561.344 DL
476.136 557.384 475.128 559.4 DL 477.144 555.224 476.136 557.384 DL
478.008 552.848 477.144 555.224 DL 478.8 550.4 478.008 552.848 DL
479.592 547.808 478.8 550.4 DL 480.312 545 479.592 547.808 DL 481.032
541.976 480.312 545 DL 481.68 538.808 481.032 541.976 DL 482.328 535.424
481.68 538.808 DL 482.904 531.824 482.328 535.424 DL 483.192 529.52
482.904 531.824 DL 483.552 527.144 483.192 529.52 DL 483.912 524.768
483.552 527.144 DL 484.2 522.176 483.912 524.768 DL 484.488 519.584
484.2 522.176 DL 484.776 516.92 484.488 519.584 DL 485.064 514.112
484.776 516.92 DL 485.352 511.304 485.064 514.112 DL 485.64 508.352
485.352 511.304 DL 485.856 505.4 485.64 508.352 DL 486.144 502.304
485.856 505.4 DL 486.36 499.136 486.144 502.304 DL 486.576 495.896
486.36 499.136 DL 486.792 492.584 486.576 495.896 DL 487.08 489.2
486.792 492.584 DL 487.296 485.744 487.08 489.2 DL 487.44 482.288
487.296 485.744 DL 487.584 478.688 487.44 482.288 DL 487.8 475.088
487.584 478.688 DL 487.944 471.416 487.8 475.088 DL 488.16 467.744
487.944 471.416 DL 488.232 463.928 488.16 467.744 DL 488.376 460.184
488.232 463.928 DL 488.448 456.296 488.376 460.184 DL 488.592 452.48
488.448 456.296 DL 488.664 448.664 488.592 452.48 DL 488.736 444.776
488.664 448.664 DL 488.808 440.888 488.736 444.776 DL 488.808 437
488.808 440.888 DL 488.88 433.112 488.808 437 DL 488.88 429.224 488.88
433.112 DL 488.88 425.408 488.88 429.224 DL 488.88 421.592 488.88
425.408 DL 488.88 417.776 488.88 421.592 DL 488.808 414.032 488.88
417.776 DL 488.736 410.288 488.808 414.032 DL 488.664 406.616 488.736
410.288 DL 488.592 403.016 488.664 406.616 DL 488.52 399.488 488.592
403.016 DL 488.376 395.96 488.52 399.488 DL 488.304 392.504 488.376
395.96 DL 488.16 389.12 488.304 392.504 DL 488.016 385.808 488.16 389.12
DL 487.872 382.64 488.016 385.808 DL 487.656 379.472 487.872 382.64 DL
487.512 376.376 487.656 379.472 DL 487.296 373.352 487.512 376.376 DL
487.08 370.4 487.296 373.352 DL 486.864 367.592 487.08 370.4 DL 486.648
364.856 486.864 367.592 DL 486.36 362.12 486.648 364.856 DL 486.144
359.528 486.36 362.12 DL 485.856 357.008 486.144 359.528 DL 485.568
354.56 485.856 357.008 DL 485.28 352.184 485.568 354.56 DL 484.992
349.952 485.28 352.184 DL 484.488 346.496 484.992 349.952 DL 483.984
343.328 484.488 346.496 DL 483.408 340.232 483.984 343.328 DL 482.76
337.352 483.408 340.232 DL 482.112 334.76 482.76 337.352 DL 481.392
332.168 482.112 334.76 DL 480.6 329.792 481.392 332.168 DL 479.808
327.56 480.6 329.792 DL 478.872 325.4 479.808 327.56 DL 477.936 323.456
478.872 325.4 DL 476.856 321.512 477.936 323.456 DL 475.704 319.784
476.856 321.512 DL 474.552 318.056 475.704 319.784 DL 473.328 316.472
474.552 318.056 DL 471.96 314.96 473.328 316.472 DL 470.52 313.448
471.96 314.96 DL 469.08 312.08 470.52 313.448 DL 467.568 310.784 469.08
312.08 DL 465.984 309.56 467.568 310.784 DL 464.4 308.408 465.984 309.56
DL 462.816 307.328 464.4 308.408 DL 461.16 306.392 462.816 307.328 DL
459.648 305.456 461.16 306.392 DL 458.136 304.664 459.648 305.456 DL
456.696 303.944 458.136 304.664 DL 455.4 303.296 456.696 303.944 DL
454.32 302.792 455.4 303.296 DL 453.24 302.36 454.32 302.792 DL 452.448
302 453.24 302.36 DL 451.728 301.712 452.448 302 DL 451.224 301.568
451.728 301.712 DL 450.432 301.28 451.224 301.568 DL 450.432 301.28 MT
7.416 .792 RL -1.224 3.384 RL CL BL 450.432 301.28 MT 7.416 .792 RL
-1.224 3.384 RL CL ST 450.648 432.392 450.432 432.392 DL 450.936 432.464
450.648 432.392 DL 451.584 432.608 450.936 432.464 DL 452.448 432.752
451.584 432.608 DL 453.528 432.968 452.448 432.752 DL 454.68 433.256
453.528 432.968 DL 455.976 433.616 454.68 433.256 DL 457.2 434.12
455.976 433.616 DL 458.424 434.624 457.2 434.12 DL 459.504 435.2 458.424
434.624 DL 460.44 435.92 459.504 435.2 DL 461.232 436.64 460.44 435.92
DL 461.952 437.504 461.232 436.64 DL 462.6 438.512 461.952 437.504 DL
463.104 439.592 462.6 438.512 DL 463.464 440.888 463.104 439.592 DL
463.896 442.256 463.464 440.888 DL 464.04 443.336 463.896 442.256 DL
464.184 444.56 464.04 443.336 DL 464.4 445.784 464.184 444.56 DL 464.544
447.152 464.4 445.784 DL 464.688 448.52 464.544 447.152 DL 464.688
450.032 464.688 448.52 DL 464.76 451.616 464.688 450.032 DL 464.76 453.2
464.76 451.616 DL 464.832 454.928 464.76 453.2 DL 464.76 456.656 464.832
454.928 DL 464.688 458.456 464.76 456.656 DL 464.688 460.256 464.688
458.456 DL 464.544 462.128 464.688 460.256 DL 464.472 463.928 464.544
462.128 DL 464.328 465.8 464.472 463.928 DL 464.184 467.6 464.328 465.8
DL 463.968 469.328 464.184 467.6 DL 463.752 471.128 463.968 469.328 DL
463.536 472.784 463.752 471.128 DL 463.32 474.368 463.536 472.784 DL
463.104 475.88 463.32 474.368 DL 462.888 477.392 463.104 475.88 DL 462.6
478.76 462.888 477.392 DL 462.312 480.056 462.6 478.76 DL 462.024 481.28
462.312 480.056 DL 461.736 482.504 462.024 481.28 DL 461.304 484.016
461.736 482.504 DL 460.8 485.384 461.304 484.016 DL 460.296 486.68 460.8
485.384 DL 459.72 487.76 460.296 486.68 DL 459.072 488.84 459.72 487.76
DL 458.352 489.848 459.072 488.84 DL 457.56 490.712 458.352 489.848 DL
456.696 491.648 457.56 490.712 DL 455.76 492.44 456.696 491.648 DL
454.752 493.232 455.76 492.44 DL 453.744 493.88 454.752 493.232 DL
452.808 494.528 453.744 493.88 DL 451.944 495.032 452.808 494.528 DL
450.432 495.896 451.944 495.032 DL 450.432 495.896 MT 5.328 -5.112 RL
1.8 3.096 RL CL BL 450.432 495.896 MT 5.328 -5.112 RL 1.8 3.096 RL CL ST
344.52 546.656 344.664 546.656 DL 344.16 546.656 344.52 546.656 DL
343.584 546.728 344.16 546.656 DL 342.648 546.872 343.584 546.728 DL
341.568 547.088 342.648 546.872 DL 340.344 547.304 341.568 547.088 DL
339.12 547.592 340.344 547.304 DL 337.824 547.952 339.12 547.592 DL
336.6 548.384 337.824 547.952 DL 335.52 548.816 336.6 548.384 DL 334.512
549.392 335.52 548.816 DL 333.576 549.968 334.512 549.392 DL 332.856
550.616 333.576 549.968 DL 332.208 551.408 332.856 550.616 DL 331.56
552.272 332.208 551.408 DL 331.056 553.28 331.56 552.272 DL 330.624
554.432 331.056 553.28 DL 330.264 555.368 330.624 554.432 DL 329.976
556.52 330.264 555.368 DL 329.688 557.672 329.976 556.52 DL 329.4
558.968 329.688 557.672 DL 329.184 560.336 329.4 558.968 DL 329.04
561.776 329.184 560.336 DL 328.824 563.288 329.04 561.776 DL 328.752
564.944 328.824 563.288 DL 328.608 566.6 328.752 564.944 DL 328.536
568.256 328.608 566.6 DL 328.536 569.984 328.536 568.256 DL 328.536
571.712 328.536 569.984 DL 328.608 573.44 328.536 571.712 DL 328.752
575.096 328.608 573.44 DL 328.824 576.68 328.752 575.096 DL 329.04
578.264 328.824 576.68 DL 329.184 579.776 329.04 578.264 DL 329.4
581.216 329.184 579.776 DL 329.688 582.512 329.4 581.216 DL 329.976
583.808 329.688 582.512 DL 330.264 585.032 329.976 583.808 DL 330.624
586.112 330.264 585.032 DL 331.128 587.48 330.624 586.112 DL 331.704
588.704 331.128 587.48 DL 332.424 589.856 331.704 588.704 DL 333.216
590.864 332.424 589.856 DL 334.152 591.8 333.216 590.864 DL 335.232
592.664 334.152 591.8 DL 336.456 593.528 335.232 592.664 DL 337.824
594.32 336.456 593.528 DL 339.264 595.04 337.824 594.32 DL 340.704
595.76 339.264 595.04 DL 342.072 596.336 340.704 595.76 DL 343.152
596.84 342.072 596.336 DL 344.664 597.344 343.152 596.84 DL 344.664
597.344 MT -7.416 -.576 RL 1.152 -3.384 RL CL BL 344.664 597.344 MT
-7.416 -.576 RL 1.152 -3.384 RL CL ST(\(a\) Sour)180.323 398.812 Q
(ce Code)-.198 E/F5 11/Courier@0 SF(for \(i = 0; !quit &&)154.368
242.284 Q(if \(a[i] == 0\))174.168 267.628 Q(quit = 1;)193.968 280.372 Q
(else if \(odd\) {)174.168 293.044 Q(sumodd += a[i];)193.968 305.716 Q
(odd = 0;)193.968 318.388 Q(})193.968 331.132 Q(else {)174.168 343.804 Q
(sumeven += a[i];)193.968 356.476 Q(odd = 1;)193.968 369.148 Q(})193.968
381.892 Q(sumodd = sumeven = 0;)154.368 216.868 Q(odd = quit = 0;)
154.368 229.612 Q 6.6(i<1)187.368 254.956 S(000; i++\))-6.6 E(sumodd=0;)
348.912 229.612 Q F4(1)439.258 229.612 Q F5(sumeven=0;)348.912 242.284 Q
(odd=0;)348.912 254.956 Q F4({4J})6.6 E F5(quit=0;)348.912 267.628 Q F4
({8F})6.6 E F5(i=0;)348.912 280.372 Q F4({2U)6.6 E(,9J})-.55 E({4F})
412.344 398.812 Q({4J})340.488 398.812 Q F5(sumodd+=a[i];)348.912
415.732 Q(odd==0)348.912 381.892 Q(a[i]!=0)348.912 314.212 Q F4(2)
439.258 314.212 Q F5(quit=1;)348.912 348.052 Q F4({8J})6.6 E(3)439.258
348.052 Q(4)439.258 381.892 Q(5)439.258 415.732 Q({2F})412.344 331.132 Q
({2J})340.488 331.132 Q F5(odd=0;)348.912 428.404 Q F4({4J})6.6 E F5
(sumeven+=a[i];)348.912 462.244 Q F4(6)439.258 462.244 Q F5(odd=1;)
348.912 474.916 Q F4({4F})6.6 E F5(i++;)348.912 508.756 Q F4({2U)6.6 E
(,9U})-.55 E(7)439.258 508.756 Q F5(quit!=0)348.912 542.596 Q F4(8)
439.258 542.596 Q F5(i<1000)348.912 576.436 Q F4(9)439.258 576.436 Q
(\(b\) Contr)368.909 631.444 Q(ol Flo)-.198 E(w)-.11 E(10)436.508
610.276 Q({8F})412.344 559.516 Q({8J})336.24 559.516 Q({9F})412.344
593.356 Q({9J})467.352 584.932 Q F2(\(2\) blk 1 mak)162.792 441.076 Q
(es blk 4 jump)-.11 E(\(3\) blk 1 mak)162.792 453.748 Q(es blk 8 f)-.11
E(all thru)-.11 E(\(4\) blk 1 mak)162.792 466.492 Q(es blk 9 jump)-.11 E
(\(5\) blk 3 mak)162.792 479.164 Q(es blk 8 jump)-.11 E(\(6\) blk 5 mak)
162.792 491.836 Q(es blk 4 jump)-.11 E(\(7\) blk 6 mak)162.792 504.508 Q
(es blk 4 f)-.11 E(all thru)-.11 E(\(8\) blk 7 nulli\214es blks 2,9)
162.792 517.252 Q F4(\(c\) Explicit Constraints)163.108 534.172 Q F2
(\(1\) blk 1 nulli\214es blk 2)162.792 428.404 Q F0(Figure 21: Ef)
212.298 662.72 Q(fects of Assignments on Branches)-.3 E(51)319.8 725.04
Q EP
%%Page: 52 54
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF .315(generated by the compiler is sho)111.6 95 R
.314(wn in Figure 21\(b\).)-.3 F .314(While the control \215o)6.314 F
3.314(wi)-.3 G 3.314(nt)-3.314 G .314(he \214gure)-3.314 F .864
(is represented at the source code le)111.6 121 R -.18(ve)-.3 G .865
(l, the analysis is performed by the compiler at the).18 F 3.312
(machine instruction le)111.6 147 R -.18(ve)-.3 G 6.312(la).18 G 3.312
(fter compiler optimizations are applied to pro)-6.312 F 3.312
(vide more)-.18 F 1.504(accurate timing predictions.)111.6 173 R 1.504
(Note that some branches in Figure 21\(b\) ha)7.504 F 1.865 -.18(ve c)
-.24 H(onditions).18 E 1.021(that are re)111.6 199 R -.18(ve)-.3 G 1.021
(rsed from the code in Figure 21\(a\) to depict the branch conditions t\
hat are).18 F -.3(eva)111.6 225 S 1.406
(luated at the machine instruction le).3 F -.18(ve)-.3 G 4.406(l. Only)
.18 F 1.406(when the condition associated with a)4.406 F .688
(branch in a block is e)111.6 251 R -.3(va)-.3 G .688
(luated to be true will the jump \().3 F/F1 12/Times-Bold@0 SF(J)A F0
3.688(\)o)C(ccur)-3.688 E 6.688(.I)-.66 G 3.688(ft)-6.688 G .688
(he condition is not)-3.688 F 2.288(true, then control will f)111.6 277
R 2.288(all \()-.12 F F1(F)A F0 5.288(\)i)C 2.289(nto the ne)-5.288 F
2.289(xt sequential block.)-.18 F 2.289(The control \215o)8.289 F 5.289
(wa)-.3 G(lso)-5.289 E(sho)111.6 303 Q 1.859(ws the ef)-.3 F 1.859(fect\
-based constraints, which are enclosed in curly braces and associated)
-.3 F .782(with basic blocks or control-\215o)111.6 329 R 3.782(wt)-.3 G
3.782(ransitions. Figure)-3.782 F .782(21\(c\) describes the e)3.782 F
.783(xplicit branch)-.18 F 3.149(constraints that are automatically det\
ected by the compiler and passed to a timing)111.6 355 R(analyzer)111.6
381 Q 9.984(.T)-.66 G 3.984(he initialization of)-9.984 F/F2 12
/Courier@0 SF(i)6.984 E F0 3.984(in block 1 \()6.984 F F2(i=0;)A F0
6.984(\)p)C 3.984(uts the branch in block 2)-6.984 F(\()111.6 407 Q F2
(a[i]!=0)A F0 4.324(\)i)C 4.324(na)-4.324 G(n)-4.324 E/F3 12
/Times-Italic@0 SF(unknown)4.324 E F0 1.324(state \()4.324 F F1(2U)A F0
4.324(\)a)C 1.324(nd the branch in block 9 \()-4.324 F F2(i<1000)A F0
4.324(\)i)C 4.324(na)-4.324 G F3(jump)A F0 .081(state \()111.6 433 R F1
(9J)A F0 3.081(\). In)B .081(addition, the assignments to)3.081 F F2
(odd)3.081 E F0 .081(in blocks 1 and 5 \()3.081 F F2(odd=0;)A F0 3.081
(\)a)C .081(nd in block)-3.081 F 3.707(6\()111.6 459 S F2(odd=1;)-3.707
E F0 3.707(\)c)C .707(ause the branch in block 4 \()-3.707 F F2(odd==0)A
F0 3.706(\)t)C(o)-3.706 E F3(jump)3.706 E F0(\()3.706 E F1(4J)A F0 3.706
(\)a)C(nd)-3.706 E F3 .706(fall thr)3.706 F(ough)-.54 E F0(\()3.706 E F1
(4F)A F0(\),)A(respecti)111.6 485 Q -.18(ve)-.3 G(ly).18 E 10.628(.L)
-.78 G(ik)-10.628 E -.3(ew)-.12 G 4.628(ise, the assignment to).3 F F2
(quit)7.629 E F0 4.629(in blocks 1 \()7.629 F F2(quit=0;)A F0 7.629(\)a)
C 4.629(nd 3)-7.629 F(\()111.6 511 Q F2(quit=1;)A F0 3.372(\)c)C .371
(ause the branch in block 8 \()-3.372 F F2(quit!=0)A F0 3.371(\)t)C(o)
-3.371 E F3 .371(fall thr)3.371 F(ough)-.54 E F0(\()3.371 E F1(8F)A F0
3.371(\)a)C(nd)-3.371 E F3(jump)3.371 E F0(\()3.371 E F1(8J)A F0(\),)A
(respecti)111.6 537 Q -.18(ve)-.3 G(ly).18 E 9.201(.F)-.78 G(inally)
-9.201 E 6.201(,t)-.78 G 3.201(he increment of)-6.201 F F2(i)6.201 E F0
3.201(in block 7 \()6.201 F F2(i++;)A F0 6.202(\)s)C 3.202
(ets the states of the)-6.202 F 2.67(branches in blocks 2 \()111.6 563 R
F2(a[i]!=0)A F0 5.67(\)a)C 2.67(nd 9 \()-5.67 F F2(i<1000)A F0 5.67(\)t)
C(o)-5.67 E F3(unknown)5.67 E F0(\()5.67 E F1(2U)A F0(,)A F1(9U)A F0
5.67(\)s)C 2.67(ince the)-5.67 F(y)-.18 E(depend on the v)111.6 589 Q
(alue of)-.3 E F2(i)3 E F0(.)A 2.409(Figure 21\(b\) also sho)126.6 615 R
2.409(ws implicit branch constraints.)-.3 F 2.409
(When a branch has a gi)8.409 F -.18(ve)-.3 G(n).18 E .174
(outcome, then it will ha)111.6 641 R .533 -.18(ve t)-.24 H .173
(he same outcome ag).18 F .173(ain unless the v)-.06 F .173
(ariables or re)-.3 F .173(gisters being)-.18 F .09(compared are af)
111.6 667 R 3.09(fected. Thus,)-.3 F 3.09(af)3.09 G .09(all-through \()
-3.21 F F1(F)A F0 3.09(\)o)C 3.09(rj)-3.09 G .09(ump \()-3.09 F F1(J)A
F0 3.09(\)t)C .09(ransition from a branch will)-3.09 F 2.25
(implicitly cause that same branch to be in a)111.6 693 R F3(fall-thr)
5.249 E(ough)-.54 E F0(or)5.249 E F3(jump)5.249 E F0 2.249
(state, respecti)5.249 F -.18(ve)-.3 G(ly).18 E(.)-.78 E(52)319.8 725.04
Q EP
%%Page: 53 55
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 1.252(These implicit constraints are not e)111.6
95 R 1.253(xplicitly passed to a timing analyzer since a timing)-.18 F
(analyzer can create them when it is performing analysis on paths.)111.6
121 Q 2.592
(The source code in Figure 22\(a\) and corresponding control \215o)126.6
147 R 5.592(wi)-.3 G 5.592(nF)-5.592 G 2.592(igure 22\(b\))-5.592 F .318
(depict a situation where one conditional branch may be logically corre\
lated with another)111.6 173 R 3.876(branch. In)111.6 199 R .876
(other w)3.876 F .876(ords, the direction tak)-.12 F .876
(en by one conditional branch may indicate the)-.12 F .484
(direction tak)111.6 225 R .484(en by another conditional branch.)-.12 F
.485(If block 2 \()6.485 F/F1 12/Courier@0 SF(a[i]>=0)A F0 3.485(\)f)C
.485(alls into block 3,)-3.605 F .704(then the v)111.6 251 R .704
(alue of)-.3 F F1(a[i])3.704 E F0 .704(is ne)3.704 F -.06(ga)-.18 G(ti)
.06 E 1.064 -.18(ve a)-.3 H .703(nd block 5 \().18 F F1(a[i]<=0)A F0
3.703(\)m)C .703(ust jump to block 7 \()-3.703 F/F2 12/Times-Bold@0 SF
(5J)A F0(\).)A .44 LW 325.8 627.32 325.8 281.72 DL 144.36 445.88 325.8
445.88 DL 472.68 346.52 MT 0 -56.16 RL -112.32 0 RL 0 56.16 RL CL ST
420.84 363.8 420.84 346.52 DL 420.84 363.8 MT -1.8 -7.2 RL 3.6 0 RL CL
BL 420.84 363.8 MT -1.8 -7.2 RL 3.6 0 RL CL ST 420.84 398.36 420.84
381.08 DL 420.84 398.36 MT -1.8 -7.2 RL 3.6 0 RL CL BL 420.84 398.36 MT
-1.8 -7.2 RL 3.6 0 RL CL ST 420.84 467.48 420.84 450.2 DL 420.84 467.48
MT -1.8 -7.2 RL 3.6 0 RL CL BL 420.84 467.48 MT -1.8 -7.2 RL 3.6 0 RL CL
ST 420.84 502.04 420.84 484.76 DL 420.84 502.04 MT -1.8 -7.2 RL 3.6 0 RL
CL BL 420.84 502.04 MT -1.8 -7.2 RL 3.6 0 RL CL ST 420.84 536.6 420.84
519.32 DL 420.84 536.6 MT -1.8 -7.2 RL 3.6 0 RL CL BL 420.84 536.6 MT
-1.8 -7.2 RL 3.6 0 RL CL ST 420.84 432.92 420.84 415.64 DL 420.84 432.92
MT -1.8 -7.2 RL 3.6 0 RL CL BL 420.84 432.92 MT -1.8 -7.2 RL 3.6 0 RL CL
ST 472.68 381.08 MT 0 -17.28 RL -112.32 0 RL 0 17.28 RL CL ST 472.68
415.64 MT 0 -17.28 RL -112.32 0 RL 0 17.28 RL CL ST 472.68 450.2 MT 0
-17.28 RL -112.32 0 RL 0 17.28 RL CL ST 472.68 484.76 MT 0 -17.28 RL
-112.32 0 RL 0 17.28 RL CL ST 472.68 519.32 MT 0 -17.28 RL -112.32 0 RL
0 17.28 RL CL ST 472.68 566.84 MT 0 -30.24 RL -112.32 0 RL 0 30.24 RL CL
ST 420.84 584.12 420.84 566.84 DL 420.84 584.12 MT -1.8 -7.2 RL 3.6 0 RL
CL BL 420.84 584.12 MT -1.8 -7.2 RL 3.6 0 RL CL ST 472.68 601.4 MT 0
-17.28 RL -112.32 0 RL 0 17.28 RL CL ST 507.24 627.32 MT 0 -345.6 RL
-362.88 0 RL 0 345.6 RL CL ST 144.36 540.92 325.8 540.92 DL 360.216
484.76 360.36 484.76 DL 359.856 484.832 360.216 484.76 DL 359.208
484.904 359.856 484.832 DL 358.272 485.048 359.208 484.904 DL 357.192
485.264 358.272 485.048 DL 355.896 485.48 357.192 485.264 DL 354.672
485.84 355.896 485.48 DL 353.304 486.272 354.672 485.84 DL 352.08
486.704 353.304 486.272 DL 351 487.208 352.08 486.704 DL 349.92 487.784
351 487.208 DL 348.984 488.432 349.92 487.784 DL 348.264 489.224 348.984
488.432 DL 347.544 490.088 348.264 489.224 DL 346.968 491.024 347.544
490.088 DL 346.392 492.104 346.968 491.024 DL 345.96 493.4 346.392
492.104 DL 345.6 494.408 345.96 493.4 DL 345.312 495.56 345.6 494.408 DL
345.096 496.712 345.312 495.56 DL 344.88 498.008 345.096 496.712 DL
344.664 499.376 344.88 498.008 DL 344.376 500.816 344.664 499.376 DL
344.304 502.328 344.376 500.816 DL 344.088 503.912 344.304 502.328 DL
344.016 505.568 344.088 503.912 DL 343.944 507.224 344.016 505.568 DL
343.872 508.952 343.944 507.224 DL 343.872 510.68 343.872 508.952 DL
343.872 512.408 343.872 510.68 DL 343.944 514.136 343.872 512.408 DL
344.016 515.792 343.944 514.136 DL 344.088 517.448 344.016 515.792 DL
344.304 519.032 344.088 517.448 DL 344.376 520.544 344.304 519.032 DL
344.664 521.984 344.376 520.544 DL 344.88 523.352 344.664 521.984 DL
345.096 524.648 344.88 523.352 DL 345.312 525.8 345.096 524.648 DL 345.6
526.952 345.312 525.8 DL 345.96 527.96 345.6 526.952 DL 346.392 529.256
345.96 527.96 DL 346.968 530.336 346.392 529.256 DL 347.544 531.272
346.968 530.336 DL 348.264 532.136 347.544 531.272 DL 348.984 532.928
348.264 532.136 DL 349.92 533.576 348.984 532.928 DL 351 534.152 349.92
533.576 DL 352.08 534.656 351 534.152 DL 353.304 535.088 352.08 534.656
DL 354.672 535.52 353.304 535.088 DL 355.896 535.88 354.672 535.52 DL
357.192 536.096 355.896 535.88 DL 358.272 536.312 357.192 536.096 DL
360.36 536.6 358.272 536.312 DL 360.36 536.6 MT -7.344 .792 RL .504 -3.6
RL CL BL 360.36 536.6 MT -7.344 .792 RL .504 -3.6 RL CL ST 360.216
381.08 360.36 381.08 DL 359.856 381.152 360.216 381.08 DL 359.208
381.224 359.856 381.152 DL 358.272 381.368 359.208 381.224 DL 357.192
381.584 358.272 381.368 DL 355.896 381.8 357.192 381.584 DL 354.672
382.16 355.896 381.8 DL 353.304 382.592 354.672 382.16 DL 352.08 383.024
353.304 382.592 DL 351 383.528 352.08 383.024 DL 349.92 384.104 351
383.528 DL 348.984 384.752 349.92 384.104 DL 348.264 385.544 348.984
384.752 DL 347.544 386.408 348.264 385.544 DL 346.968 387.344 347.544
386.408 DL 346.392 388.424 346.968 387.344 DL 345.96 389.72 346.392
388.424 DL 345.6 390.728 345.96 389.72 DL 345.312 391.88 345.6 390.728
DL 345.096 393.032 345.312 391.88 DL 344.88 394.328 345.096 393.032 DL
344.664 395.696 344.88 394.328 DL 344.376 397.136 344.664 395.696 DL
344.304 398.648 344.376 397.136 DL 344.088 400.232 344.304 398.648 DL
344.016 401.888 344.088 400.232 DL 343.944 403.544 344.016 401.888 DL
343.872 405.272 343.944 403.544 DL 343.872 407 343.872 405.272 DL
343.872 408.728 343.872 407 DL 343.944 410.456 343.872 408.728 DL
344.016 412.112 343.944 410.456 DL 344.088 413.768 344.016 412.112 DL
344.304 415.352 344.088 413.768 DL 344.376 416.864 344.304 415.352 DL
344.664 418.304 344.376 416.864 DL 344.88 419.672 344.664 418.304 DL
345.096 420.968 344.88 419.672 DL 345.312 422.12 345.096 420.968 DL
345.6 423.272 345.312 422.12 DL 345.96 424.28 345.6 423.272 DL 346.392
425.576 345.96 424.28 DL 346.968 426.656 346.392 425.576 DL 347.544
427.592 346.968 426.656 DL 348.264 428.456 347.544 427.592 DL 348.984
429.248 348.264 428.456 DL 349.92 429.896 348.984 429.248 DL 351 430.472
349.92 429.896 DL 352.08 430.976 351 430.472 DL 353.304 431.408 352.08
430.976 DL 354.672 431.84 353.304 431.408 DL 355.896 432.2 354.672
431.84 DL 357.192 432.416 355.896 432.2 DL 358.272 432.632 357.192
432.416 DL 360.36 432.92 358.272 432.632 DL 360.36 432.92 MT -7.344 .792
RL .504 -3.6 RL CL BL 360.36 432.92 MT -7.344 .792 RL .504 -3.6 RL CL ST
472.536 567.632 472.536 567.632 DL 472.68 567.632 472.536 567.632 DL
472.968 567.56 472.68 567.632 DL 473.328 567.488 472.968 567.56 DL
473.832 567.344 473.328 567.488 DL 474.48 567.2 473.832 567.344 DL
475.272 566.912 474.48 567.2 DL 476.136 566.624 475.272 566.912 DL
477.144 566.12 476.136 566.624 DL 478.152 565.616 477.144 566.12 DL
479.16 564.968 478.152 565.616 DL 480.312 564.32 479.16 564.968 DL
481.32 563.456 480.312 564.32 DL 482.328 562.52 481.32 563.456 DL
483.264 561.512 482.328 562.52 DL 484.2 560.288 483.264 561.512 DL
484.992 558.992 484.2 560.288 DL 485.784 557.552 484.992 558.992 DL
486.504 556.04 485.784 557.552 DL 487.224 554.312 486.504 556.04 DL
487.8 552.368 487.224 554.312 DL 488.376 550.28 487.8 552.368 DL 488.88
548.048 488.376 550.28 DL 489.312 545.6 488.88 548.048 DL 489.744
542.792 489.312 545.6 DL 490.104 539.912 489.744 542.792 DL 490.464
536.744 490.104 539.912 DL 490.536 536.744 490.464 536.744 DL 490.68
534.728 490.536 536.744 DL 490.896 532.64 490.68 534.728 DL 491.112
530.48 490.896 532.64 DL 491.256 528.248 491.112 530.48 DL 491.472
525.944 491.256 528.248 DL 491.616 523.496 491.472 525.944 DL 491.76
521.048 491.616 523.496 DL 491.904 518.456 491.76 521.048 DL 492.048
515.792 491.904 518.456 DL 492.192 513.056 492.048 515.792 DL 492.336
510.248 492.192 513.056 DL 492.408 507.368 492.336 510.248 DL 492.552
504.344 492.408 507.368 DL 492.624 501.32 492.552 504.344 DL 492.696
498.224 492.624 501.32 DL 492.768 494.984 492.696 498.224 DL 492.912
491.816 492.768 494.984 DL 492.984 488.576 492.912 491.816 DL 492.984
485.192 492.984 488.576 DL 492.984 481.88 492.984 485.192 DL 493.056
478.496 492.984 481.88 DL 493.056 475.04 493.056 478.496 DL 493.128
471.656 493.056 475.04 DL 493.128 468.2 493.128 471.656 DL 493.128
464.744 493.128 468.2 DL 493.056 461.288 493.128 464.744 DL 493.056
457.904 493.056 461.288 DL 492.984 454.52 493.056 457.904 DL 492.984
451.136 492.984 454.52 DL 492.984 447.752 492.984 451.136 DL 492.912
444.512 492.984 447.752 DL 492.768 441.272 492.912 444.512 DL 492.696
438.104 492.768 441.272 DL 492.624 434.936 492.696 438.104 DL 492.552
431.912 492.624 434.936 DL 492.408 428.888 492.552 431.912 DL 492.336
425.936 492.408 428.888 DL 492.192 423.128 492.336 425.936 DL 492.048
420.392 492.192 423.128 DL 491.904 417.656 492.048 420.392 DL 491.76
415.064 491.904 417.656 DL 491.616 412.544 491.76 415.064 DL 491.472
410.096 491.616 412.544 DL 491.256 407.72 491.472 410.096 DL 491.112
405.488 491.256 407.72 DL 490.896 403.328 491.112 405.488 DL 490.68
401.168 490.896 403.328 DL 490.536 399.152 490.68 401.168 DL 490.176
396.128 490.536 399.152 DL 489.816 393.248 490.176 396.128 DL 489.384
390.584 489.816 393.248 DL 488.952 388.136 489.384 390.584 DL 488.52
385.832 488.952 388.136 DL 488.016 383.816 488.52 385.832 DL 487.512
381.8 488.016 383.816 DL 486.936 380.072 487.512 381.8 DL 486.216
378.344 486.936 380.072 DL 485.496 376.832 486.216 378.344 DL 484.776
375.392 485.496 376.832 DL 484.056 374.024 484.776 375.392 DL 483.192
372.8 484.056 374.024 DL 482.256 371.648 483.192 372.8 DL 481.32 370.568
482.256 371.648 DL 480.312 369.56 481.32 370.568 DL 479.376 368.696
480.312 369.56 DL 478.296 367.904 479.376 368.696 DL 477.432 367.184
478.296 367.904 DL 476.424 366.536 477.432 367.184 DL 475.632 366.032
476.424 366.536 DL 474.84 365.672 475.632 366.032 DL 474.192 365.312
474.84 365.672 DL 473.616 365.096 474.192 365.312 DL 473.184 364.808
473.616 365.096 DL 472.536 364.592 473.184 364.808 DL 472.536 364.592 MT
7.416 .576 RL -1.152 3.384 RL CL BL 472.536 364.592 MT 7.416 .576 RL
-1.152 3.384 RL CL ST/F3 11/Times-Bold@0 SF(1)461.29 303.508 Q/F4 11
/Courier@0 SF(sumneg=0;)364.68 303.508 Q F3(\(a\) Sour)197.603 433.108 Q
(ce Code)-.198 E F4(sumall=0;)364.68 316.468 Q(sumpos=0;)364.68 329.428
Q(i=0;)364.68 342.388 Q F3({2U)6.6 E(,7J})-.55 E F4(if \(a[i] < 0\))
181.44 351.028 Q(sumneg += a[i];)201.24 363.988 Q(sumall += a[i];)181.44
376.948 Q(if \(a[i] > 0\))181.44 389.908 Q(sumpos += a[i];)201.24
402.868 Q(})181.44 415.828 Q(i++\) {)194.64 338.068 Q
(for \(i = 0; i < 1000;)161.64 325.108 Q(sumpos = 0;)161.64 312.148 Q
(sumneg = sumall = 0;)161.64 299.188 Q F3(2)461.29 376.948 Q(3)461.29
411.508 Q(4)461.29 446.068 Q(5)461.29 480.628 Q(6)461.29 515.188 Q(7)
461.29 549.748 Q({2F)429.48 394.228 Q(,5J})-1.012 E({5F)429.48 497.908 Q
(,2J})-1.012 E({2J})356.04 394.228 Q({5J})356.04 497.908 Q F4(a[i]>=0)
364.68 376.948 Q(sumneg+=a[i];)364.68 411.508 Q(sumall+=a[i];)364.68
446.068 Q(a[i]<=0)364.68 480.628 Q(sumpos+=a[i];)364.68 515.188 Q(i++;)
364.68 549.748 Q F3({2U)6.6 E(,5U)-.55 E(,7U})-.55 E F4(i<1000)364.68
562.708 Q F3(8)461.29 597.268 Q({7F})429.48 579.988 Q(\(b\) Contr)
381.581 618.868 Q(ol Flo)-.198 E(w)-.11 E/F5 11/Times-Roman@0 SF
(\(1\) 2)178.92 562.708 Q/F6 11/Symbol SFA F5(4)A F6A F5(5)A F6
A F5(7)A(\(2\) 2)178.92 575.668 Q F6A F5(3)A F6A F5(4)A F6
A F5(5)A F6A F5(7)A(\(3\) 2)178.92 588.628 Q F6A F5(4)A F6
A F5(5)A F6A F5(6)A F6A F5(7)A(\(4\) 2)178.92 601.588 Q F6
A F5(3)A F6A F5(4)A F6A F5(5)A F6A F5(6)A F6A F5(7)A
F3(\(d\) P)194.336 618.868 Q(aths in Loop)-.11 E({7J})481.32 575.668 Q
F5(\(3\) blk 2 f)153 489.268 Q(all thru mak)-.11 E(es blk 5 jump)-.11 E
(\(4\) blk 5 f)153 502.228 Q(all thru mak)-.11 E(es blk 2 jump)-.11 E
(\(5\) block 7 nulli\214es blocks 2,5,7)153 515.188 Q F3
(\(c\) Explicit Constraints)180.388 532.468 Q F5(\(2\) blk 1 mak)153
476.308 Q(es blk 7 jump)-.11 E(\(1\) blk 1 nulli\214es blk 2)153 463.348
Q F0(Figure 22: Logical Correlation between Branches)206.988 650.36 Q
(53)319.8 725.04 Q EP
%%Page: 54 56
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 4.27
(This is described by branch constraint 3 in Figure 22\(c\).)111.6 95 R
4.271(Note that if block 2)10.27 F(\()111.6 121 Q/F1 12/Courier@0 SF
(a[i]>=0)A F0 4.388(\)j)C 1.388
(umps to block 4, there is no guarantee that block 5 \()-4.388 F F1
(a[i]<=0)A F0 4.387(\)w)C 1.387(ill f)-4.387 F(all)-.12 E 3.123
(through to block 6 since the v)111.6 147 R 3.123(alue of)-.3 F F1(a[i])
6.123 E F0 3.124(could ha)6.124 F 3.484 -.18(ve b)-.24 H 3.124
(een zero.).18 F 3.124(The compiler)9.124 F -.3(eva)111.6 173 S .318(lu\
ates each pair of branches in a function to determine if there is a log\
ical correlation).3 F .919(between one branch and another)111.6 199 R
6.919(.T)-.66 G .919(hus, this analysis requires)-6.919 F/F2 12
/Times-Italic@0 SF(O)3.919 E F0(\()A F2(C)A/F3 10/Times-Roman@0 SF(2)-6
I F0 3.919(\)c)6 K(omple)-3.919 E(xity)-.18 E 3.919(,w)-.78 G(here)
-3.919 E F2(C)111.6 225 Q F0 3.618
(is the number of conditional branches.)6.618 F 3.617
(Note that a branch is al)9.618 F -.12(wa)-.12 G 3.617(ys logically).12
F 2.939(correlated with itself and these self correlations are implicit\
constraints.)111.6 251 R 2.939(The e)8.939 F(xact)-.18 E .909
(conditions when one branch is logically correlated with another ha)
111.6 277 R 1.269 -.18(ve b)-.24 H .909(een described in).18 F(pre)111.6
303 Q(vious w)-.3 E(ork [46].)-.12 E 3(5.1.2 Detecting)111.6 331.6 R .48
LW 322.908 334.6 111.6 334.6 DL(Iteration-Based Constraints)191.256
331.6 Q 3.234(Ab)111.6 364.1 S .234(asic induction v)-3.234 F .234
(ariable is a v)-.3 F .234(ariable or re)-.3 F .234
(gister that is incremented or decremented by)-.18 F 5.676(ac)111.6
390.1 S 2.676(onstant v)-5.676 F 2.676
(alue on each iteration of a loop [39].)-.3 F 2.676
(Some branches compare a basic)8.676 F 2.313(induction v)111.6 416.1 R
2.313(ariable to a constant.)-.3 F 2.313
(In these situations, the compiler can determine the)8.313 F 1.994
(ranges of iterations in which such a branch will f)111.6 442.1 R 1.993
(all through or jump.)-.12 F 1.993(The compiler)7.993 F .213
(produces directi)111.6 468.1 R -.18(ve)-.3 G 3.213(sf).18 G .213(or a \
timing analyzer that indicate ranges of iterations for each of the)
-3.213 F(tw)111.6 494.1 Q 5.736(oo)-.12 G 2.736
(utgoing edges of the block containing the branch.)-5.736 F 2.736
(The manner in which this)8.736 F(information is deri)111.6 520.1 Q -.18
(ve)-.3 G 3(dw).18 G(as described in Section 4.1.3.)-3.12 E .45
(Consider the source code and corresponding control \215o)126.6 546.1 R
3.45(ws)-.3 G(ho)-3.45 E .45(wn in Figures 23\(a\) and)-.3 F 3.39
(23\(b\). While)111.6 572.1 R F1(i)3.39 E F0 .39(can range from 0..999 \
as each path in the loop is entered, the number of)3.39 F 3.797
(corresponding iterations in the loop will range from 1..1000.)111.6
598.1 R 3.798(Thus, the compiler)9.798 F .556(associates ranges of iter\
ations with transitions from blocks that compare basic induction)111.6
624.1 R -.3(va)111.6 650.1 S .392(riables to constants.).3 F -.18(Fo)
6.392 G 3.392(ri).18 G .392(nstance, block 3 \()-3.392 F F1(i<=249)A F0
3.393(\)w)C .393(ill only f)-3.393 F .393(all through to block 4)-.12 F
2.036(when the loop is performing the last 750 iterations \()111.6 676.1
R/F4 12/Times-Bold@0 SF([251..1000])A F0 5.036(\). Constraints)B 2.036
(5-8 in)5.036 F(54)319.8 725.04 Q EP
%%Page: 55 57
%%BeginPageSetup
BP
%%EndPageSetup
.44 LW 310.968 481.936 310.968 127.12 DL 413.568 208.336 413.568 191.272
DL 413.568 208.336 MT -1.8 -7.2 RL 3.6 0 RL CL BL 413.568 208.336 MT
-1.8 -7.2 RL 3.6 0 RL CL ST 413.568 242.536 413.568 225.472 DL 413.568
242.536 MT -1.8 -7.2 RL 3.6 0 RL CL BL 413.568 242.536 MT -1.8 -7.2 RL
3.6 0 RL CL ST 413.568 310.936 413.568 293.872 DL 413.568 310.936 MT
-1.8 -7.2 RL 3.6 0 RL CL BL 413.568 310.936 MT -1.8 -7.2 RL 3.6 0 RL CL
ST 413.568 345.136 413.568 328.072 DL 413.568 345.136 MT -1.8 -7.2 RL
3.6 0 RL CL BL 413.568 345.136 MT -1.8 -7.2 RL 3.6 0 RL CL ST 413.568
379.336 413.568 362.272 DL 413.568 379.336 MT -1.8 -7.2 RL 3.6 0 RL CL
BL 413.568 379.336 MT -1.8 -7.2 RL 3.6 0 RL CL ST 413.568 276.736
413.568 259.672 DL 413.568 276.736 MT -1.8 -7.2 RL 3.6 0 RL CL BL
413.568 276.736 MT -1.8 -7.2 RL 3.6 0 RL CL ST 464.4 191.344 MT 0 -51.12
RL -106.56 0 RL 0 51.12 RL CL ST 464.4 225.184 MT 0 -17.28 RL -106.56 0
RL 0 17.28 RL CL ST 464.4 259.744 MT 0 -17.28 RL -106.56 0 RL 0 17.28 RL
CL ST 464.4 293.584 MT 0 -17.28 RL -106.56 0 RL 0 17.28 RL CL ST 464.4
328.144 MT 0 -17.28 RL -106.56 0 RL 0 17.28 RL CL ST 464.4 361.984 MT 0
-17.28 RL -106.56 0 RL 0 17.28 RL CL ST 464.4 413.824 MT 0 -33.84 RL
-106.56 0 RL 0 33.84 RL CL ST 413.568 430.672 413.568 413.536 DL 413.568
430.672 MT -1.8 -7.2 RL 3.6 0 RL CL BL 413.568 430.672 MT -1.8 -7.2 RL
3.6 0 RL CL ST 464.4 447.664 MT 0 -17.28 RL -106.56 0 RL 0 17.28 RL CL
ST 357.984 293.872 358.056 293.872 DL 357.768 293.872 357.984 293.872 DL
357.192 293.872 357.768 293.872 DL 356.328 293.872 357.192 293.872 DL
355.104 293.872 356.328 293.872 DL 353.736 293.872 355.104 293.872 DL
352.296 293.872 353.736 293.872 DL 350.928 293.872 352.296 293.872 DL
349.704 293.872 350.928 293.872 DL 348.48 293.872 349.704 293.872 DL
347.4 293.872 348.48 293.872 DL 346.464 293.872 347.4 293.872 DL 345.456
293.872 346.464 293.872 DL 344.52 293.872 345.456 293.872 DL 343.8
293.872 344.52 293.872 DL 343.08 293.872 343.8 293.872 DL 342.36 293.944
343.08 293.872 DL 341.568 293.944 342.36 293.944 DL 340.848 294.016
341.568 293.944 DL 340.056 294.088 340.848 294.016 DL 339.336 294.232
340.056 294.088 DL 338.544 294.448 339.336 294.232 DL 337.752 294.736
338.544 294.448 DL 336.96 295.024 337.752 294.736 DL 336.168 295.456
336.96 295.024 DL 335.448 295.888 336.168 295.456 DL 334.728 296.392
335.448 295.888 DL 334.08 297.04 334.728 296.392 DL 333.432 297.76
334.08 297.04 DL 332.856 298.48 333.432 297.76 DL 332.28 299.344 332.856
298.48 DL 331.776 300.208 332.28 299.344 DL 331.344 301.288 331.776
300.208 DL 330.912 302.44 331.344 301.288 DL 330.624 303.448 330.912
302.44 DL 330.336 304.528 330.624 303.448 DL 330.12 305.68 330.336
304.528 DL 329.832 306.976 330.12 305.68 DL 329.616 308.344 329.832
306.976 DL 329.4 309.784 329.616 308.344 DL 329.328 311.224 329.4
309.784 DL 329.112 312.808 329.328 311.224 DL 329.04 314.464 329.112
312.808 DL 328.968 316.12 329.04 314.464 DL 328.896 317.776 328.968
316.12 DL 328.896 319.504 328.896 317.776 DL 328.896 321.232 328.896
319.504 DL 328.968 322.888 328.896 321.232 DL 329.04 324.544 328.968
322.888 DL 329.112 326.2 329.04 324.544 DL 329.328 327.784 329.112 326.2
DL 329.4 329.224 329.328 327.784 DL 329.616 330.664 329.4 329.224 DL
329.832 332.032 329.616 330.664 DL 330.12 333.328 329.832 332.032 DL
330.336 334.48 330.12 333.328 DL 330.624 335.56 330.336 334.48 DL
330.912 336.64 330.624 335.56 DL 331.344 337.72 330.912 336.64 DL
331.776 338.8 331.344 337.72 DL 332.28 339.664 331.776 338.8 DL 332.856
340.528 332.28 339.664 DL 333.432 341.248 332.856 340.528 DL 334.08
341.968 333.432 341.248 DL 334.728 342.616 334.08 341.968 DL 335.448
343.12 334.728 342.616 DL 336.168 343.552 335.448 343.12 DL 336.96
343.984 336.168 343.552 DL 337.752 344.272 336.96 343.984 DL 338.544
344.56 337.752 344.272 DL 339.336 344.776 338.544 344.56 DL 340.056
344.92 339.336 344.776 DL 340.848 344.992 340.056 344.92 DL 341.568
345.064 340.848 344.992 DL 342.36 345.064 341.568 345.064 DL 343.08
345.136 342.36 345.064 DL 343.8 345.136 343.08 345.136 DL 344.52 345.136
343.8 345.136 DL 345.456 345.136 344.52 345.136 DL 346.464 345.136
345.456 345.136 DL 347.4 345.136 346.464 345.136 DL 348.48 345.136 347.4
345.136 DL 349.704 345.136 348.48 345.136 DL 350.928 345.136 349.704
345.136 DL 352.296 345.136 350.928 345.136 DL 353.736 345.136 352.296
345.136 DL 355.104 345.136 353.736 345.136 DL 356.328 345.136 355.104
345.136 DL 358.056 345.136 356.328 345.136 DL 358.056 345.136 MT -7.2
1.8 RL 0 -3.6 RL CL BL 358.056 345.136 MT -7.2 1.8 RL 0 -3.6 RL CL ST
357.984 225.472 358.056 225.472 DL 357.768 225.472 357.984 225.472 DL
357.336 225.472 357.768 225.472 DL 356.472 225.472 357.336 225.472 DL
355.248 225.472 356.472 225.472 DL 353.664 225.472 355.248 225.472 DL
351.792 225.472 353.664 225.472 DL 349.776 225.472 351.792 225.472 DL
347.616 225.472 349.776 225.472 DL 345.456 225.472 347.616 225.472 DL
343.44 225.472 345.456 225.472 DL 341.496 225.472 343.44 225.472 DL
339.768 225.472 341.496 225.472 DL 338.112 225.472 339.768 225.472 DL
336.672 225.472 338.112 225.472 DL 335.304 225.472 336.672 225.472 DL
334.152 225.472 335.304 225.472 DL 333 225.472 334.152 225.472 DL
331.992 225.472 333 225.472 DL 330.912 225.472 331.992 225.472 DL
330.264 225.472 330.912 225.472 DL 329.544 225.472 330.264 225.472 DL
328.896 225.472 329.544 225.472 DL 328.248 225.544 328.896 225.472 DL
327.672 225.544 328.248 225.544 DL 327.024 225.688 327.672 225.544 DL
326.376 225.832 327.024 225.688 DL 325.728 225.976 326.376 225.832 DL
325.152 226.192 325.728 225.976 DL 324.576 226.408 325.152 226.192 DL
324 226.768 324.576 226.408 DL 323.424 227.2 324 226.768 DL 322.92
227.704 323.424 227.2 DL 322.416 228.28 322.92 227.704 DL 321.912
228.856 322.416 228.28 DL 321.336 229.576 321.912 228.856 DL 320.904
230.368 321.336 229.576 DL 320.544 231.232 320.904 230.368 DL 320.04
232.24 320.544 231.232 DL 319.752 233.32 320.04 232.24 DL 319.32 234.472
319.752 233.32 DL 318.96 235.696 319.32 234.472 DL 318.672 237.064
318.96 235.696 DL 318.384 238.504 318.672 237.064 DL 318.096 240.088
318.384 238.504 DL 317.808 241.744 318.096 240.088 DL 317.592 243.544
317.808 241.744 DL 317.448 245.416 317.592 243.544 DL 317.232 246.928
317.448 245.416 DL 317.088 248.584 317.232 246.928 DL 317.016 250.384
317.088 248.584 DL 316.8 252.184 317.016 250.384 DL 316.728 254.056
316.8 252.184 DL 316.584 256.072 316.728 254.056 DL 316.44 258.16
316.584 256.072 DL 316.368 260.32 316.44 258.16 DL 316.296 262.552
316.368 260.32 DL 316.152 264.928 316.296 262.552 DL 316.152 267.304
316.152 264.928 DL 316.08 269.752 316.152 267.304 DL 316.008 272.272
316.08 269.752 DL 315.936 274.792 316.008 272.272 DL 315.864 277.384
315.936 274.792 DL 315.864 279.976 315.864 277.384 DL 315.864 282.64
315.864 279.976 DL 315.864 285.304 315.864 282.64 DL 315.864 287.968
315.864 285.304 DL 315.864 290.632 315.864 287.968 DL 315.864 293.224
315.864 290.632 DL 315.936 295.816 315.864 293.224 DL 316.008 298.336
315.936 295.816 DL 316.08 300.856 316.008 298.336 DL 316.152 303.304
316.08 300.856 DL 316.152 305.68 316.152 303.304 DL 316.296 308.056
316.152 305.68 DL 316.368 310.288 316.296 308.056 DL 316.44 312.448
316.368 310.288 DL 316.584 314.536 316.44 312.448 DL 316.728 316.552
316.584 314.536 DL 316.8 318.424 316.728 316.552 DL 317.016 320.224
316.8 318.424 DL 317.088 322.024 317.016 320.224 DL 317.232 323.68
317.088 322.024 DL 317.448 325.192 317.232 323.68 DL 317.592 327.064
317.448 325.192 DL 317.808 328.864 317.592 327.064 DL 318.096 330.52
317.808 328.864 DL 318.384 332.104 318.096 330.52 DL 318.672 333.544
318.384 332.104 DL 318.96 334.912 318.672 333.544 DL 319.32 336.136
318.96 334.912 DL 319.752 337.288 319.32 336.136 DL 320.04 338.368
319.752 337.288 DL 320.544 339.376 320.04 338.368 DL 320.904 340.24
320.544 339.376 DL 321.336 341.032 320.904 340.24 DL 321.912 341.752
321.336 341.032 DL 322.416 342.328 321.912 341.752 DL 322.92 342.904
322.416 342.328 DL 323.424 343.48 322.92 342.904 DL 324 343.84 323.424
343.48 DL 324.576 344.2 324 343.84 DL 325.152 344.416 324.576 344.2 DL
325.728 344.632 325.152 344.416 DL 326.376 344.848 325.728 344.632 DL
327.024 344.92 326.376 344.848 DL 327.672 345.064 327.024 344.92 DL
328.248 345.064 327.672 345.064 DL 328.896 345.136 328.248 345.064 DL
329.544 345.136 328.896 345.136 DL 330.264 345.136 329.544 345.136 DL
330.912 345.136 330.264 345.136 DL 331.992 345.136 330.912 345.136 DL
333 345.136 331.992 345.136 DL 334.152 345.136 333 345.136 DL 335.304
345.136 334.152 345.136 DL 336.672 345.136 335.304 345.136 DL 338.112
345.136 336.672 345.136 DL 339.768 345.136 338.112 345.136 DL 341.496
345.136 339.768 345.136 DL 343.44 345.136 341.496 345.136 DL 345.456
345.136 343.44 345.136 DL 347.616 345.136 345.456 345.136 DL 349.776
345.136 347.616 345.136 DL 351.792 345.136 349.776 345.136 DL 353.664
345.136 351.792 345.136 DL 355.248 345.136 353.664 345.136 DL 356.472
345.136 355.248 345.136 DL 358.056 345.136 356.472 345.136 DL 358.056
345.136 MT -7.2 1.8 RL 0 -3.6 RL CL BL 358.056 345.136 MT -7.2 1.8 RL 0
-3.6 RL CL ST 464.976 259.672 464.904 259.672 DL 465.12 259.672 464.976
259.672 DL 465.624 259.672 465.12 259.672 DL 466.56 259.672 465.624
259.672 DL 467.712 259.672 466.56 259.672 DL 469.152 259.672 467.712
259.672 DL 470.736 259.672 469.152 259.672 DL 472.392 259.672 470.736
259.672 DL 473.904 259.672 472.392 259.672 DL 475.344 259.672 473.904
259.672 DL 476.64 259.672 475.344 259.672 DL 477.864 259.672 476.64
259.672 DL 478.944 259.672 477.864 259.672 DL 480.024 259.672 478.944
259.672 DL 481.032 259.672 480.024 259.672 DL 481.968 259.672 481.032
259.672 DL 482.616 259.672 481.968 259.672 DL 483.336 259.672 482.616
259.672 DL 483.984 259.744 483.336 259.672 DL 484.632 259.744 483.984
259.744 DL 485.28 259.744 484.632 259.744 DL 486 259.888 485.28 259.744
DL 486.72 260.032 486 259.888 DL 487.44 260.248 486.72 260.032 DL
488.088 260.464 487.44 260.248 DL 488.808 260.824 488.088 260.464 DL
489.456 261.184 488.808 260.824 DL 490.176 261.616 489.456 261.184 DL
490.824 262.192 490.176 261.616 DL 491.472 262.768 490.824 262.192 DL
492.12 263.488 491.472 262.768 DL 492.624 264.28 492.12 263.488 DL 493.2
265.144 492.624 264.28 DL 493.704 266.08 493.2 265.144 DL 494.28 267.16
493.704 266.08 DL 494.712 268.312 494.28 267.16 DL 495.144 269.536
494.712 268.312 DL 495.576 270.904 495.144 269.536 DL 495.936 272.272
495.576 270.904 DL 496.224 273.928 495.936 272.272 DL 496.44 275.296
496.224 273.928 DL 496.728 276.664 496.44 275.296 DL 496.944 278.248
496.728 276.664 DL 497.16 279.832 496.944 278.248 DL 497.304 281.56
497.16 279.832 DL 497.52 283.288 497.304 281.56 DL 497.664 285.16 497.52
283.288 DL 497.808 287.104 497.664 285.16 DL 497.952 289.192 497.808
287.104 DL 498.096 291.28 497.952 289.192 DL 498.096 293.44 498.096
291.28 DL 498.24 295.6 498.096 293.44 DL 498.24 297.832 498.24 295.6 DL
498.312 300.136 498.24 297.832 DL 498.312 302.44 498.312 300.136 DL
498.312 304.672 498.312 302.44 DL 498.24 306.976 498.312 304.672 DL
498.24 309.208 498.24 306.976 DL 498.096 311.368 498.24 309.208 DL
498.096 313.528 498.096 311.368 DL 497.952 315.616 498.096 313.528 DL
497.808 317.704 497.952 315.616 DL 497.664 319.648 497.808 317.704 DL
497.52 321.52 497.664 319.648 DL 497.304 323.248 497.52 321.52 DL 497.16
324.976 497.304 323.248 DL 496.944 326.56 497.16 324.976 DL 496.728
328.144 496.944 326.56 DL 496.44 329.512 496.728 328.144 DL 496.224
330.88 496.44 329.512 DL 495.936 332.464 496.224 330.88 DL 495.576
333.904 495.936 332.464 DL 495.144 335.272 495.576 333.904 DL 494.712
336.496 495.144 335.272 DL 494.28 337.648 494.712 336.496 DL 493.704
338.728 494.28 337.648 DL 493.2 339.664 493.704 338.728 DL 492.624
340.528 493.2 339.664 DL 492.12 341.32 492.624 340.528 DL 491.472 342.04
492.12 341.32 DL 490.824 342.616 491.472 342.04 DL 490.176 343.192
490.824 342.616 DL 489.456 343.624 490.176 343.192 DL 488.808 343.984
489.456 343.624 DL 488.088 344.344 488.808 343.984 DL 487.44 344.56
488.088 344.344 DL 486.72 344.776 487.44 344.56 DL 486 344.92 486.72
344.776 DL 485.28 345.064 486 344.92 DL 484.632 345.064 485.28 345.064
DL 483.984 345.064 484.632 345.064 DL 483.336 345.136 483.984 345.064 DL
482.616 345.136 483.336 345.136 DL 481.968 345.136 482.616 345.136 DL
481.032 345.136 481.968 345.136 DL 480.024 345.136 481.032 345.136 DL
478.944 345.136 480.024 345.136 DL 477.864 345.136 478.944 345.136 DL
476.64 345.136 477.864 345.136 DL 475.344 345.136 476.64 345.136 DL
473.904 345.136 475.344 345.136 DL 472.392 345.136 473.904 345.136 DL
470.736 345.136 472.392 345.136 DL 469.152 345.136 470.736 345.136 DL
467.712 345.136 469.152 345.136 DL 466.56 345.136 467.712 345.136 DL
464.904 345.136 466.56 345.136 DL 464.904 345.136 MT 7.2 -1.8 RL 0 3.6
RL CL BL 464.904 345.136 MT 7.2 -1.8 RL 0 3.6 RL CL ST 464.976 413.536
464.904 413.536 DL 465.12 413.536 464.976 413.536 DL 465.552 413.536
465.12 413.536 DL 466.416 413.536 465.552 413.536 DL 467.64 413.536
466.416 413.536 DL 469.224 413.536 467.64 413.536 DL 471.096 413.536
469.224 413.536 DL 473.112 413.536 471.096 413.536 DL 475.2 413.536
473.112 413.536 DL 477.288 413.536 475.2 413.536 DL 479.304 413.536
477.288 413.536 DL 481.176 413.536 479.304 413.536 DL 482.904 413.536
481.176 413.536 DL 484.488 413.536 482.904 413.536 DL 485.928 413.536
484.488 413.536 DL 487.152 413.536 485.928 413.536 DL 488.304 413.536
487.152 413.536 DL 489.384 413.536 488.304 413.536 DL 490.392 413.536
489.384 413.536 DL 491.256 413.536 490.392 413.536 DL 491.832 413.536
491.256 413.536 DL 492.336 413.536 491.832 413.536 DL 492.912 413.464
492.336 413.536 DL 493.488 413.464 492.912 413.464 DL 493.992 413.392
493.488 413.464 DL 494.496 413.248 493.992 413.392 DL 495 413.104
494.496 413.248 DL 495.432 412.888 495 413.104 DL 495.936 412.528
495.432 412.888 DL 496.368 412.168 495.936 412.528 DL 496.8 411.736
496.368 412.168 DL 497.232 411.16 496.8 411.736 DL 497.592 410.512
497.232 411.16 DL 498.024 409.648 497.592 410.512 DL 498.384 408.856
498.024 409.648 DL 498.744 407.776 498.384 408.856 DL 499.104 406.624
498.744 407.776 DL 499.464 405.4 499.104 406.624 DL 499.752 404.032
499.464 405.4 DL 500.04 402.52 499.752 404.032 DL 500.328 400.864 500.04
402.52 DL 500.544 398.992 500.328 400.864 DL 500.76 397.048 500.544
398.992 DL 500.976 395.032 500.76 397.048 DL 501.12 392.8 500.976
395.032 DL 501.336 390.496 501.12 392.8 DL 501.48 387.904 501.336
390.496 DL 501.696 385.24 501.48 387.904 DL 501.84 382.36 501.696 385.24
DL 501.912 379.336 501.84 382.36 DL 501.984 377.392 501.912 379.336 DL
502.128 375.232 501.984 377.392 DL 502.2 373.072 502.128 375.232 DL
502.2 370.84 502.2 373.072 DL 502.272 368.536 502.2 370.84 DL 502.416
366.16 502.272 368.536 DL 502.488 363.64 502.416 366.16 DL 502.488
361.048 502.488 363.64 DL 502.56 358.384 502.488 361.048 DL 502.632
355.648 502.56 358.384 DL 502.632 352.84 502.632 355.648 DL 502.704
349.96 502.632 352.84 DL 502.776 347.008 502.704 349.96 DL 502.776
343.912 502.776 347.008 DL 502.776 340.816 502.776 343.912 DL 502.848
337.72 502.776 340.816 DL 502.848 334.408 502.848 337.72 DL 502.92
331.168 502.848 334.408 DL 502.92 327.856 502.92 331.168 DL 502.992
324.544 502.92 327.856 DL 502.992 321.16 502.992 324.544 DL 502.992
317.776 502.992 321.16 DL 502.992 314.392 502.992 317.776 DL 502.992
310.936 502.992 314.392 DL 502.992 307.552 502.992 310.936 DL 502.992
304.096 502.992 307.552 DL 502.992 300.784 502.992 304.096 DL 502.992
297.4 502.992 300.784 DL 502.92 294.016 502.992 297.4 DL 502.92 290.704
502.92 294.016 DL 502.848 287.464 502.92 290.704 DL 502.848 284.224
502.848 287.464 DL 502.776 281.056 502.848 284.224 DL 502.776 278.032
502.776 281.056 DL 502.776 274.936 502.776 278.032 DL 502.704 271.984
502.776 274.936 DL 502.632 269.032 502.704 271.984 DL 502.632 266.296
502.632 269.032 DL 502.56 263.56 502.632 266.296 DL 502.488 260.824
502.56 263.56 DL 502.488 258.304 502.488 260.824 DL 502.416 255.784
502.488 258.304 DL 502.272 253.408 502.416 255.784 DL 502.2 251.032
502.272 253.408 DL 502.2 248.8 502.2 251.032 DL 502.128 246.64 502.2
248.8 DL 501.984 244.552 502.128 246.64 DL 501.912 242.536 501.984
244.552 DL 501.84 239.512 501.912 242.536 DL 501.696 236.704 501.84
239.512 DL 501.48 233.968 501.696 236.704 DL 501.336 231.448 501.48
233.968 DL 501.12 229.072 501.336 231.448 DL 500.976 226.912 501.12
229.072 DL 500.76 224.824 500.976 226.912 DL 500.544 222.88 500.76
224.824 DL 500.328 221.08 500.544 222.88 DL 500.04 219.424 500.328
221.08 DL 499.752 217.84 500.04 219.424 DL 499.464 216.472 499.752
217.84 DL 499.104 215.248 499.464 216.472 DL 498.744 214.096 499.104
215.248 DL 498.384 213.088 498.744 214.096 DL 498.024 212.224 498.384
213.088 DL 497.592 211.432 498.024 212.224 DL 497.232 210.784 497.592
211.432 DL 496.8 210.208 497.232 210.784 DL 496.368 209.704 496.8
210.208 DL 495.936 209.344 496.368 209.704 DL 495.432 209.056 495.936
209.344 DL 495 208.84 495.432 209.056 DL 494.496 208.624 495 208.84 DL
493.992 208.552 494.496 208.624 DL 493.488 208.408 493.992 208.552 DL
492.912 208.408 493.488 208.408 DL 492.336 208.336 492.912 208.408 DL
491.832 208.336 492.336 208.336 DL 491.256 208.336 491.832 208.336 DL
490.392 208.336 491.256 208.336 DL 489.384 208.336 490.392 208.336 DL
488.304 208.336 489.384 208.336 DL 487.152 208.336 488.304 208.336 DL
485.928 208.336 487.152 208.336 DL 484.488 208.336 485.928 208.336 DL
482.904 208.336 484.488 208.336 DL 481.176 208.336 482.904 208.336 DL
479.304 208.336 481.176 208.336 DL 477.288 208.336 479.304 208.336 DL
475.2 208.336 477.288 208.336 DL 473.112 208.336 475.2 208.336 DL
471.096 208.336 473.112 208.336 DL 469.224 208.336 471.096 208.336 DL
467.64 208.336 469.224 208.336 DL 466.416 208.336 467.64 208.336 DL
464.904 208.336 466.416 208.336 DL 464.904 208.336 MT 7.2 -1.8 RL 0 3.6
RL CL BL 464.904 208.336 MT 7.2 -1.8 RL 0 3.6 RL CL ST/F0 11
/Times-Bold@0 SF(1)453.586 153.012 Q(2)453.586 221.412 Q(3)453.586
255.612 Q(4)453.586 289.812 Q(5)453.586 324.012 Q(6)453.586 358.212 Q(7)
453.586 392.412 Q(8)453.586 443.676 Q(\(b\) Contr)374.309 469.38 Q
(ol Flo)-.198 E(w)-.11 E({2F})422.136 238.476 Q({4F} [1..750])422.136
306.876 Q({7F})422.136 426.612 Q/F1 11/Courier@0 SF(summid=0;)362.304
153.012 Q(i==m)362.304 221.412 Q(i<=249)362.304 255.612 Q(i>=750)362.304
289.812 Q(summid+=a[i];)362.304 324.012 Q(sumall+=a[i];)362.304 358.212
Q(i++;)362.304 392.412 Q F0({3U)6.6 E(,4U)-.55 E(,7U})-.55 E({7J})
486.288 426.612 Q({3F)320.109 289.812 Q(,4J})-1.012 E({3F} [251..1000])
334.355 272.676 Q({2J once})336.672 238.476 Q([751..1000])345.168
306.876 Q F1(i=0;)362.304 187.212 Q F0({3J,4F)6.6 E(,7J})-1.012 E F1
(sumall=0;)362.304 170.076 Q(i<1000)362.304 409.476 Q F0
({3J,4F}[1..250])421.071 272.676 Q 144.288 404.968 310.968 404.968 DL
507.6 482.224 MT 0 -354.96 RL -363.6 0 RL 0 354.96 RL CL ST 144.288
251.104 310.968 251.104 DL(\(c\) Explicit Constraints)157.996 400.98 Q
/F2 11/Times-Roman@0 SF(\(1\) 2\255>6)169.92 422.292 Q/F3 11/Symbol SF
A F2(7)A(\(2\) 2\255>3)169.92 435.18 Q F3A F2(6)A F3A F2(7)A
(\(3\) 2\255>3)169.92 447.996 Q F3A F2(4)A F3A F2(6)A F3A F2
(7)A(\(4\) 2\255>3)169.92 460.812 Q F3A F2(4)A F3A F2(5)A F3
A F2(6)A F3A F2(7)A F0(\(d\) P)176.192 477.876 Q(aths in Loop)-.11 E
F2(\(10\) blk 7 nulli\214es blks 2,3,4,7)148.536 383.844 Q F1
(summid = sumall = 0;)148.536 140.196 Q(i++\) {)181.536 165.828 Q
(for \(i = 0; i < 1000;)148.536 153.012 Q(if \(i != m &&)168.336 178.644
Q(summid += a[i];)188.136 204.276 Q(sumall += a[i];)168.336 217.092 Q(})
168.336 229.98 Q F0(\(a\) Sour)175.211 242.796 Q(ce Code)-.198 E F2
(\(2\) blk 1 mak)148.536 281.244 Q(es blk 4 f)-.11 E(all thru)-.11 E
(\(3\) blk 2 will jump at most once)148.536 294.06 Q(\(1\) blk 1 mak)
148.536 268.428 Q(es blks 3,7 jump)-.11 E(\(4\) blk 3 jump mak)148.536
306.876 Q(es blk 4 f)-.11 E(all thru)-.11 E
(\(6\) blk 3 jump in iters [1..250])148.536 332.58 Q(\(5\) blk 3 f)
148.536 319.692 Q(allthru in iters [251..1000])-.11 E(\(7\) blk 4 f)
148.536 345.396 Q(allthru in iters [1..750])-.11 E
(\(8\) blk 4 jump in iters [751..1000])148.536 358.212 Q
(\(9\) blk 4 jump mak)148.536 371.028 Q(es blk 3 f)-.11 E(all thru)-.11
E F1(24945.573
E F1 39.43(01)59.328 G 76.807(in 2)138.712 177.12 R -.33(ex)27.709 G
16.616(it [1001..1001]).33 F F245.573 E F1 39.43(01)59.328 G 65.499
(Figure 3)127.404 189.52 R 14.614(cont [1000..1000])25.707 F F2
45.573 E F1 39.43(01)59.328 G 74.97(21 4)136.875 201.92 R 23.788
(cont [2..1000])25.707 F F254.747 E F1 27.198(05)59.328 G(00)-27.198
E 25.707(5c)227.135 214.32 S 23.788(ont [1..1000])-25.707 F F254.747
E F1 27.198(05)59.328 G(00)-27.198 E(1,001)175.078 189.52 Q 529.696
220.31 121.904 220.31 DL 68.854(Loop 1)130.759 231.2 R 23.48
(both [1..1000])25.399 F F254.747 E F1 18.024(01)59.328 G(,000)
-18.024 E 76.807(in 2)138.712 243.6 R 23.48(both [1..1000])25.399 F F2
54.747 E F1 18.024(01)59.328 G(,000)-18.024 E 65.499(Figure 3)
127.404 256 R 23.48(both [1..1000])25.399 F F254.747 E F1 18.024(01)
59.328 G(,000)-18.024 E 74.97(22 4)136.875 268.4 R 37.251(N/A N/A)26.934
F 39.402(N/A N/A)62.343 F(N/A)22.621 E(1,000)175.078 249.8 Q 529.696
274.39 121.904 274.39 DL 68.854(Loop 1)130.759 285.28 R 23.48
(both [1..1000])25.399 F F254.747 E F1 39.43(01)59.328 G 76.807
(in 2)138.712 297.68 R 26.846(cont [1..250])25.707 F([1..250])37.906 E
F2(-)A F1 27.197(12)C 24.14(49 250)-27.197 F 65.499(Figure 3)127.404
310.08 R 17.364(both [751..1000])25.399 F([751..1000])19.558 E F2(-)A F1
18.023(12)C 24.14(49 250)-18.023 F 74.97(23 4)136.875 322.48 R 20.73
(cont [251..750])25.707 F([251..750])25.674 E F2(-)A F1 21.081(14)C
24.14(99 500)-21.081 F(1,000)175.078 303.88 Q 529.696 327.23 121.904
327.23 DL 488.424 124.55 488.424 327.23 DL 450.529 124.55 450.529 327.23
DL 366.83 124.55 366.83 327.23 DL 289.17 124.55 289.17 327.23 DL 249.537
124.55 249.537 327.23 DL 210.85 124.55 210.85 327.23 DL 166.828 124.55
166.828 327.23 DL 529.696 124.55 529.696 327.23 DL 121.904 124.55
121.904 327.23 DL F0 1.217(for best case.)111.6 358.88 R 1.217
(The second and third e)7.217 F 1.218(xample loops are not sho)-.18 F
1.218(wn in T)-.3 F 1.218(able 14 because)-.96 F 2.159
(their best case iteration information is identical to their w)111.6
384.88 R 2.159(orst case information from)-.12 F -.96(Ta)111.6 410.88 S
2.785(ble 13.).96 F 2.785(The \214rst loop e)8.785 F 2.786
(xample from Figure 21 does ha)-.18 F 3.146 -.18(ve a d)-.24 H(if).18 E
2.786(ferent number of)-.3 F 2.193(iterations for w)111.6 436.88 R 2.193
(orst case and best case, and this results in a dif)-.12 F 2.192
(ferent set of possible)-.3 F 1.291
(iterations and number of maximum iterations for each path.)111.6 462.88
R 1.292(The total number of loop)7.292 F .942(iterations is automatical\
ly calculated using techniques described in the pre)111.6 488.88 R .942
(vious section)-.3 F 4.697([31]. A)111.6 514.88 R 1.697
(path is a sequence of blocks in a loop connected by control-\215o)4.697
F 4.698(wt)-.3 G(ransitions.)-4.698 E -.96(Ta)195.222 549.92 S
(ble 14: Best-Case P).96 E(ath Information for Figure 21\(d\))-.18 E
500.249 558.87 151.351 558.87 DL F1 -1.32(To)204.525 569.76 S 13.915
(tal P)1.32 F 13.915(ath P)-.44 F 15.609(ath P)-.44 F(ossib)-.55 E
15.609(le Unique)-.22 F 15.587(Min Max)18.337 F 14.311(Iters T)205.394
582.16 R 19.035(ype ID Iter)-1.32 F 20.168(ations Iters Iters)-.11 F
(Iters)16.5 E(Loop)160.206 575.96 Q 500.249 588.15 151.351 588.15 DL
59.603(Loop e)160.206 599.04 R 24.651(xit 1)-.33 F([2..2])34.87 E F2
39.732 E F1 31.779(01)37.037 G 67.556(in e)168.159 611.44 R 24.651
(xit 2)-.33 F([2..2])34.87 E F239.732 E F1 31.779(01)37.037 G 54.246
(Figure cont)156.851 623.84 R 34.87(3[)25.707 G(1..1])-34.87 E F2
39.732 E F1 31.779(01)37.037 G 63.717(21 cont)166.322 636.24 R 34.87(4[)
25.707 G(2..2])-34.87 E F239.732 E F1 31.779(01)37.037 G 22.649
(cont 5)245.329 648.64 R([1..1])34.87 E F239.732 E F1 31.779(01)
37.037 G(2)213.033 623.84 Q 500.249 654.63 151.351 654.63 DL 465.104
558.87 465.104 654.63 DL 427.209 558.87 427.209 654.63 DL 375.861 558.87
375.861 654.63 DL 314.228 558.87 314.228 654.63 DL 275.541 558.87
275.541 654.63 DL 235.908 558.87 235.908 654.63 DL 196.275 558.87
196.275 654.63 DL 500.249 558.87 500.249 654.63 DL 151.351 558.87
151.351 654.63 DL F0(58)319.8 725.04 Q EP
%%Page: 59 61
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 2.498(Each path starts with the loop header)
111.6 95 R(.)-.66 E/F1 12/Times-Italic@0 SF(Exit)8.498 E F0 2.497
(paths are terminated by a block with a)5.498 F .672
(transition out of the loop.)111.6 121 R F1(Continue)6.673 E F0 .673
(paths are terminated by a block with a transition to)3.673 F .366
(the loop header)111.6 147 R 6.366(.T)-.66 G .366(he ")-6.366 F/F2 12
/Helvetica@0 SF -.48(Pa)C .365(th T).48 F(ype)-1.44 E F0 3.365("c)C .365
(olumn sho)-3.365 F .365(ws that a path may be classi\214ed in one of)
-.3 F .424(four w)111.6 173 R(ays.)-.12 E F1(Exit)6.424 E F0(and)3.424 E
F1(cont)3.425 E F0 .425(represent that the path is an e)3.425 F .425
(xit or continue path, respecti)-.18 F -.18(ve)-.3 G(ly).18 E(.)-.78 E
.946(The w)111.6 199 R(ord)-.12 E F1(both)3.946 E F0 .946
(means the path is both an e)3.946 F .946(xit and a continue path, and)
-.18 F F1(N/A)3.946 E F0 .945(means that)3.945 F .381
(the path is infeasible.)111.6 225 R .381(The ")6.381 F F2 -.6(Po)C
(ssib).6 E .381(le Iter)-.24 F(ations)-.12 E F0 3.381("c)C .381
(olumn indicates the range of possible)-3.381 F 1.938
(iterations for each path.)111.6 251 R 1.938(The ")7.938 F F2 1.937
(Unique Iters)B F0 4.937("c)C 1.937
(olumn represents the unique iterations)-4.937 F 1.848
(associated with each path.)111.6 277 R 1.848(The \214nal tw)7.848 F
4.848(oc)-.12 G 1.848(olumns sho)-4.848 F 4.848(wt)-.3 G 1.848
(he minimum and maximum)-4.848 F(number of times the path could be e)
111.6 303 Q -.18(xe)-.18 G(cuted in the loop.).18 E 3.534(Figure 24 gi)
126.6 329 R -.18(ve)-.3 G 6.534(sah).18 G(igh-le)-6.534 E -.18(ve)-.3 G
6.534(ld).18 G 3.534(escription of the algorithm used to calculate the)
-6.534 F 1.327(information gi)111.6 355 R -.18(ve)-.3 G 4.327(ni).18 G
4.327(nt)-4.327 G 1.327(he last \214v)-4.327 F 4.327(ec)-.18 G 1.327
(olumns of T)-4.327 F 1.327(able 13 and 14.)-.96 F 1.328(The ne)7.327 F
1.328(xt four sections)-.18 F 2.099(5.2.2 through 5.2.5 pro)111.6 381 R
2.099(vide e)-.18 F 2.099(xamples to illustrate ho)-.18 F 5.099(wt)-.3 G
2.099(his information is calculated.)-5.099 F .508
(Except for the construction of the REA)111.6 407 R .508
(CH_SELF table, the comple)-.48 F .508(xity of the algorithm)-.18 F(is)
111.6 433 Q F1(O)3.361 E F0(\()A F1(P)A/F3 10/Times-Roman@0 SF(2)-6 I F0
.361(\), where)6 J F1(P)3.361 E F0 .361
(is the number of paths in the loop.)3.361 F .361
(The author found that, in practice,)6.361 F .205
(the construction of the REA)111.6 459 R .206(CH_SELF table w)-.48 F
.206(as not time consuming since most paths in)-.12 F 3(al)111.6 485 S
(oop could either immediately follo)-3 E 3(wt)-.3 G(hemselv)-3 E
(es or could only e)-.18 E(xit the loop.)-.18 E 3(5.2.2 Using)111.6
520.1 R(Ef)3 E .48 LW 293.28 523.1 111.6 523.1 DL
(fect-Based Constraints)184.296 520.1 Q(Ef)111.6 552.6 Q .692(fect-base\
d constraints are associated with a block or a transition between block\
s.)-.3 F -.18(Fo)6.692 G(r).18 E .064
(each path in a loop the timing analyzer tra)111.6 578.6 R -.18(ve)-.24
G .065(rses the basic blocks and transitions between).18 F 3.611
(blocks in the order in which the path w)111.6 604.6 R 3.611(ould be e)
-.12 F -.18(xe)-.18 G 6.611(cuted. When).18 F 3.611(an ef)6.611 F
(fect-based)-.3 E 1.942(constraint is encountered, it is added to a lis\
t of constraints for that path.)111.6 630.6 R 1.942(If another)7.942 F
(ef)111.6 656.6 Q 3.65(fect-based constraint is later encountered for t\
hat same branch, then the current)-.3 F(constraint is nulli\214ed.)111.6
682.6 Q(59)319.8 725.04 Q EP
%%Page: 60 62
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Courier@0 SF(/*)183.545 104.4 Q/F1 10/Times-Roman@0 SF(remo)6 E
.3 -.15(ve i)-.15 H(nfeasible paths).15 E F0(*/)6 E/F2 10/Courier-Bold@0
SF(FOR)183.545 114.8 Q F0(each path P in the loop)6 E F2(DO)6 E F0
(Propagate effect-based constraints in P.)201.545 125.2 Q F2(IF)201.545
135.6 Q F0(any transition in P is not feasible)6 E F2(THEN)6 E F0
(Remove P from the loop.)219.545 146 Q(/*)183.545 161.6 Q F1
(calculate CAN_FOLLO)6 E 2.5(Wt)-.35 G(able using ef)-2.5 E
(fect-based constraints)-.25 E F0(*/)6 E F2(FOR)183.545 172 Q F0
(each path P in the loop)6 E F2(DO)6 E(IF)201.545 182.4 Q F0 6(Pi)6 G 6
(sac)-6 G(ontinue path)-6 E F2(THEN)6 E(FOR)219.545 192.8 Q F0
(each path Q in the loop)6 E F2(DO)6 E F0
(Propagate effect-based constraints)237.545 203.2 Q
(at end of P through Q.)255.545 213.6 Q F2(IF)237.545 224 Q F0
(any infeasible transition in Q)6 E F2(THEN)6 E F0
(CAN_FOLLOW[P][Q] = FALSE.)255.545 234.4 Q F2(ELSE)237.545 244.8 Q F0
(CAN_FOLLOW[P][Q] = TRUE.)255.545 255.2 Q F2(ELSE)201.545 265.6 Q(FOR)
219.545 276 Q F0(each path Q in the loop)6 E F2(DO)6 E F0
(CAN_FOLLOW[P][Q] = FALSE.)237.545 286.4 Q(/*)183.545 302 Q F1
(calculate REA)6 E(CH_SELF table using CAN_FOLLO)-.4 E 2.5(Wt)-.35 G
(able)-2.5 E F0(*/)6 E F2(FOR)183.545 312.4 Q F0
(each path P in the loop)6 E F2(DO)6 E(IF)201.545 322.8 Q F0
(CANFOLLOW[P][P])6 E F2(THEN)6 E F0(REACH_SELF[P] = 1.)219.545 333.2 Q
F2(ELSIF)201.545 343.6 Q F0 6(Pi)6 G 6(sn)-6 G(ot a continue path)-6 E
F2(THEN)6 E F0(REACH_SELF[P] = 0.)219.545 354 Q F2(ELSE)201.545 364.4 Q
F0(Recursively inspect the CAN_FOLLOW table)219.545 374.8 Q
(to determine the shortest number of paths)219.545 385.2 Q
(to be traversed before P can be reached.)219.545 395.6 Q
(Zero represents P cannot reach itself.)219.545 406 Q(/*)183.545 421.6 Q
F1(process)6 E/F3 10/Times-Italic@0 SF(once)2.5 E F1(constraints)2.5 E
F0(*/)6 E F2(FOR)183.545 432 Q F0(each path P in the loop)6 E F2(DO)6 E
(IF)201.545 442.4 Q F0(a)6 E/F4 10/Times-BoldItalic@0 SF(once)6 E F0
(constraint was found on)6 E 6(at)219.545 452.8 S(ransition in P)-6 E F2
(THEN)6 E F0(P->once = TRUE.)219.545 463.2 Q F2(ELSE)201.545 473.6 Q F0
(P->once = FALSE.)219.545 484 Q(P->nonuniqiters = 0.)201.545 494.4 Q F2
(FOR)201.545 504.8 Q F0(each block B in P)6 E F2(DO)6 E F0
(IF B's other outgoing transition has a)219.545 515.2 Q F4(once)237.545
525.6 Q F0(constraint)6 E F2(THEN)6 E F0(P->nonuniqiters += 1.)237.545
536 Q(/*)183.545 551.6 Q F1
(initialize possible iteration path information, where)6 E F3(N)2.5 E F1
(represents the total loop iterations)201.545 562 Q F0(*/)6 E F2(FOR)
183.545 572.4 Q F0(each path P in the loop)6 E F2(DO)6 E F0(P->range =)
201.545 582.8 Q/F5 10/Symbol SF6 E F0(.)A F2(IF)201.545 593.2 Q F0 6
(Pi)6 G 6(sac)-6 G(ontinue path)-6 E F2(THEN)6 E F0(P->range = P->range)
219.545 603.6 Q F56 E F0([1..max\()6 E F3(N)A F0(-1,1\)].)A F2(IF)
201.545 614 Q F0 6(Pi)6 G 6(sa)-6 G 6(ne)-6 G(xit path)-6 E F2(THEN)6 E
F0(P->range = P->range)219.545 624.4 Q F56 E F0([)6 E F3(N)A F0(..)A
F3(N)A F0(].)A/F6 12/Times-Roman@0 SF
(Figure 24: Algorithm for Calculating P)134.55 657.6 Q
(ath Iteration Information in T)-.18 E(ables 13,14)-.96 E
(\(continued on ne)266.07 670 Q(xt page\))-.18 E(60)319.8 725.04 Q EP
%%Page: 61 63
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Courier@0 SF(/*)184.8 92.4 Q/F1 10/Times-Roman@0 SF
(constrain possible iterations using iteration-based constraints)6 E F0
(*/)6 E/F2 10/Courier-Bold@0 SF(FOR)184.8 102.8 Q F0
(each path P in the loop)6 E F2(DO)6 E F0
(Propagate iteration-based constraints in P.)202.8 113.2 Q
(P->range = P->range)202.8 123.6 Q/F3 10/Symbol SF6 E F0
(iteration range at end of P.)268.8 134 Q F2(IF)202.8 144.4 Q F0
(P->range)6 E F3 6<3dc6>6 G F2(THEN)A F0(Remove P from the loop.)220.8
154.8 Q(/*)184.8 170.4 Q F1
(constrain iterations of each path that cannot reach itself)6 E F0(*/)6
E(Construct a DAG D representing the execution)184.8 180.8 Q
(order of paths P where REACH_SELF[P] == 0.)202.8 191.2 Q F2(FOR)184.8
201.6 Q F0(each non-leaf path P in D, where P is not)6 E
(processed until all paths it can reach)208.8 212 Q(are processed)208.8
222.4 Q F2(DO)6 E F0 6(S=f)202.8 232.8 S(irst immediate successor of P.)
-6 E(P->range.low = S->range.low - 1.)202.8 243.2 Q
(P->range.high = S->range.high - 1.)202.8 253.6 Q F2(FOR)202.8 264 Q F0
(each remaining path S that is an)6 E(immediate successor of P in D)
226.8 274.4 Q F2(DO)6 E(IF)220.8 284.8 Q F0
(S->range.low - 1 < P->range.low)6 E F2(THEN)6 E F0
(P->range.low = S->range.low - 1.)238.8 295.2 Q F2(IF)220.8 305.6 Q F0
(S->range.high - 1 > P->range.high)6 E F2(THEN)6 E F0
(P->range.high = S->range.high - 1.)238.8 316 Q(/*)184.8 331.6 Q F1
(calculate unique iterations for each path)6 E F0(*/)6 E F2(FOR)184.8
342 Q F0(each path P in the loop)6 E F2(DO)6 E F0
(P->uniqrange = P->range)202.8 352.4 Q F2(FOR)202.8 362.8 Q F0
(each path Q, where Q)6 E F36 E F0(P)6 E F2(DO)6 E F0
(P->uniqrange = P->uniqrange)220.8 373.2 Q F3(-)6 E F0(Q->range.)6 E(/*)
184.8 388.8 Q F1(assign minimum number of iterations for each path)6 E
F0(*/)6 E F2(FOR)184.8 399.2 Q F0(each path P in the loop)6 E F2(DO)6 E
F0(P->miniter =)202.8 409.6 Q(number of iterations in P->uniqrange.)
220.8 420 Q(P->miniter -= P->nonuniqiters.)202.8 430.4 Q(/*)184.8 446 Q
F1(assign maximum number of iterations for each path)6 E F0(*/)6 E F2
(FOR)184.8 456.4 Q F0(each path P in the loop)6 E F2(DO)6 E(IF)202.8
466.8 Q F0(REACH_SELF[P])6 E F3(=)6 E F0 6(0O)6 G 6(RP)-6 G(->once)-6 E
F2(THEN)6 E F0(P->maxiter = 1.)220.8 477.2 Q F2(ELSE)202.8 487.6 Q F0
(P->maxiter =)220.8 498 Q(number of iterations in P->range.)238.8 508.4
Q F2(IF)220.8 518.8 Q F0(REACH_SELF[P] > 1)6 E F2(THEN)6 E F0
(P->maxiter =)238.8 529.2 Q(ceil\(P->maxiter/REACH_SELF[P]\).)256.8
539.6 Q(/*)184.8 555.2 Q F1(assign each path to a set of paths)6 E F0
(*/)6 E 6(s=0)184.8 565.6 S(.)-6 E F2(FOR)184.8 576 Q F0
(each path P in the loop)6 E F2(DO)6 E(IF)202.8 586.4 Q F0(P->range)6 E
F36 E F0(with existing set i)6 E F2(THEN)6 E F0(P->set = i;)220.8
596.8 Q F2(ELSE)202.8 607.2 Q F0(P->set = ++s;)220.8 617.6 Q/F4 12
/Times-Roman@0 SF(Figure 24: Algorithm for Calculating P)112.524 642.4 Q
(ath Iteration Information in T)-.18 E(ables 13,14 \(cont')-.96 E(d.\))
-.6 E(61)319.8 725.04 Q EP
%%Page: 62 64
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF(Ef)126.6 95 Q .593
(fect-based constraints can be used to detect infeasible paths.)-.3 F
.593(Figure 25 depicts the)6.593 F .065(constraints being propag)111.6
121 R .065(ated through path 4 in Figure 22\(d\).)-.06 F .064
(The transition from block 2)6.064 F .499
(to block 3 causes the branch in block 5 to be placed in a)111.6 147 R
/F1 12/Times-Italic@0 SF(jump)3.499 E F0 .499(state \()3.499 F/F2 12
/Times-Bold@0 SF(5J)A F0 3.499(\). The)B .499(branch in)3.499 F 1.863
(block 5 is encountered with this constraint \()111.6 173 R F2(5J)A F0
4.863(\)s)C 1.862(till in ef)-4.863 F 1.862
(fect and the transition from)-.3 F 3.209
(block 5 to block 6 in path 4 is deemed ille)111.6 199 R -.06(ga)-.18 G
6.209(l. When).06 F 3.21(such an infeasible path is)6.209 F 2.075
(encountered, the timing analyzer remo)111.6 225 R -.18(ve)-.18 G 5.075
(st).18 G 2.075(he path to pre)-5.075 F -.18(ve)-.3 G 2.075(nt an).18 F
5.075(ya)-.18 G 2.074(dditional analysis)-5.075 F
(time to be spent on it.)111.6 251 Q 2.677(The maximum number of iterat\
ions for a path can sometimes be constrained by)126.6 277 R(ef)111.6 303
Q 1.464(fect-based constraints.)-.3 F 1.463
(Consider paths 1 and 2 in Figure 21\(d\), which are)7.463 F F1 -.24(ex)
4.463 G(it).24 E F0(paths)4.463 E 1.037(because the)111.6 329 R 4.037
(ye)-.18 G 1.037
(nd with a transition to block 10 that is outside the loop.)-4.037 F
1.038(Constraint 5 in)7.038 F .648
(Figure 21\(c\) indicates that when block 3 \()111.6 355 R/F3 12
/Courier@0 SF(quit=1;)A F0 3.648(\)i)C 3.648(nF)-3.648 G .648
(igure 21\(b\) is e)-3.648 F -.18(xe)-.18 G .648(cuted, block).18 F
4.121(8\()111.6 381 S F3(quit!=0)-4.121 E F0 4.121(\)w)C 1.121
(ill jump to block 10.)-4.121 F 1.121
(When the timing analyzer detects that an ef)7.121 F(fect-)-.3 E .805(b\
ased constraint can reach the end of the path without nulli\214cation, \
the timing analyzer)111.6 407 R(propag)111.6 433 Q 2.2(ates the constra\
int through all the paths of the loop to see if it can reach the)-.06 F
1.314(branch identi\214ed in the constraint.)111.6 459 R 1.314
(Figure 26 illustrates that the constraint causing the)7.314 F 1.24
(branch in block 8 to)111.6 485 R F1(jump)4.24 E F0(\()4.24 E F2(8J)A F0
4.24(\)r)C 1.24(eaches the end of path 3 and that paths 2, 3, 4, and 5)
-4.24 F .161(cannot follo)111.6 511 R 3.161(wp)-.3 G .161
(ath 3 since the)-3.161 F 3.16(yr)-.18 G .16(equire a f)-3.16 F .16
(all through from block 8 to block 9.)-.12 F .16(Figure 27)6.16 F(sho)
111.6 537 Q .614(ws that the constraint for branch 4 reaching the end o\
f paths 4 and 5 from Figure 21)-.3 F .178
(contains the opposite outcome of branch 4 in the same path.)111.6 563 R
.177(These constraints can reach)6.177 F 172.08 620 MT 0 -15.84 RL
-16.56 0 RL 0 15.84 RL CL .44 LW ST 220.32 611.864 171.72 611.864 DL
220.32 611.864 MT -7.2 1.8 RL 0 -3.6 RL CL BL 220.32 611.864 MT -7.2 1.8
RL 0 -3.6 RL CL ST 236.88 620 MT 0 -15.84 RL -16.56 0 RL 0 15.84 RL CL
ST 301.68 620 MT 0 -15.84 RL -16.56 0 RL 0 15.84 RL CL ST 285.12 611.864
236.52 611.864 DL 285.12 611.864 MT -7.2 1.8 RL 0 -3.6 RL CL BL 285.12
611.864 MT -7.2 1.8 RL 0 -3.6 RL CL ST 349.92 611.864 301.32 611.864 DL
349.92 611.864 MT -7.2 1.8 RL 0 -3.6 RL CL BL 349.92 611.864 MT -7.2 1.8
RL 0 -3.6 RL CL ST 366.48 620 MT 0 -15.84 RL -16.56 0 RL 0 15.84 RL CL
ST 431.28 620 MT 0 -15.84 RL -16.56 0 RL 0 15.84 RL CL ST 496.08 620 MT
0 -15.84 RL -16.56 0 RL 0 15.84 RL CL ST 414.72 611.864 366.12 611.864
DL 414.72 611.864 MT -7.2 1.8 RL 0 -3.6 RL CL BL 414.72 611.864 MT -7.2
1.8 RL 0 -3.6 RL CL ST 479.52 611.864 430.92 611.864 DL 479.52 611.864
MT -7.2 1.8 RL 0 -3.6 RL CL BL 479.52 611.864 MT -7.2 1.8 RL 0 -3.6 RL
CL ST/F4 10/Times-Bold@0 SF(2)161.084 616.372 Q(3)225.956 616.152 Q(4)
290.684 616.152 Q(5)355.556 616.152 Q(6)420.284 616.152 Q(7)485.156
616.152 Q({2F)213.171 595.92 Q(,5J})-.92 E({2F)277.899 595.92 Q(,5J})
-.92 E({2F)180.771 603.984 Q(,5J})-.92 E({2F)245.571 603.984 Q(,5J})-.92
E({2F)310.371 603.984 Q(,5J})-.92 E({2F)342.771 595.92 Q(,5J})-.92 E(in)
375.976 603.984 Q -.1(va)-.4 G(lid).1 E F0(Figure 25: P)208.728 643.04 Q
(ath 4 in Figure 22\(d\) Is Not Feasible)-.18 E(62)319.8 725.04 Q EP
%%Page: 63 65
%%BeginPageSetup
BP
%%EndPageSetup
.44 LW 181.656 175.504 173.52 167.44 DL 177.624 171.472 161.424 171.472
DL 173.52 183.64 181.656 175.504 DL 177.624 179.536 161.424 179.536 DL
214.416 143.104 MT 0 -15.84 RL -16.56 0 RL 0 15.84 RL CL ST 263.376
143.104 MT 0 -15.84 RL -16.56 0 RL 0 15.84 RL CL ST 246.456 134.968
214.056 134.968 DL 246.456 134.968 MT -7.2 1.8 RL 0 -3.6 RL CL BL
246.456 134.968 MT -7.2 1.8 RL 0 -3.6 RL CL ST 328.176 143.104 MT 0
-15.84 RL -16.56 0 RL 0 15.84 RL CL ST 311.256 134.968 262.656 134.968
DL 311.256 134.968 MT -7.2 1.8 RL 0 -3.6 RL CL BL 311.256 134.968 MT
-7.2 1.8 RL 0 -3.6 RL CL ST 408.816 143.104 MT 0 -15.84 RL -16.56 0 RL 0
15.84 RL CL ST 392.256 134.968 327.456 134.968 DL 392.256 134.968 MT
-7.2 1.8 RL 0 -3.6 RL CL BL 392.256 134.968 MT -7.2 1.8 RL 0 -3.6 RL CL
ST 490.176 143.104 MT 0 -15.84 RL -16.56 0 RL 0 15.84 RL CL ST 473.256
134.968 408.456 134.968 DL 473.256 134.968 MT -7.2 1.8 RL 0 -3.6 RL CL
BL 473.256 134.968 MT -7.2 1.8 RL 0 -3.6 RL CL ST 279.216 183.424 MT 0
-15.84 RL -16.56 0 RL 0 15.84 RL CL ST 344.016 183.424 MT 0 -15.84 RL
-16.56 0 RL 0 15.84 RL CL ST 327.456 175.504 278.856 175.504 DL 327.456
175.504 MT -7.2 1.8 RL 0 -3.6 RL CL BL 327.456 175.504 MT -7.2 1.8 RL 0
-3.6 RL CL ST/F0 10/Times-Bold@0 SF(9)252.092 139.476 Q(2)316.892
139.256 Q(3)397.892 139.256 Q(7)478.892 139.256 Q({8F})220.761 127.088 Q
({8F)271.707 127.088 Q(,9J})-.92 E({2F)338.226 127.088 Q(,8F)-.92 E
(,9J})-.92 E({8F})245.097 114.92 Q({8F)304.107 114.92 Q(,9J})-.92 E({2F)
419.321 127.088 Q(,8J,9J})-.92 E({8J})472.452 114.92 Q({2F)378.857
114.92 Q(,8J,9J})-.92 E(path 3:)159.512 139.256 Q(8)203.42 139.256 Q
(paths 2,3,4,5:)193.818 179.72 Q(8)268.292 179.72 Q(9)333.02 179.72 Q
(in)288.712 171.656 Q -.1(va)-.4 G(lid).1 E<838383>351.792 179.72 Q
({8J})261.852 163.52 Q/F1 12/Times-Roman@0 SF(Figure 26: P)185.55 206.68
Q(aths 2-5 Cannot F)-.18 E(ollo)-.18 E 3(wP)-.3 G
(ath 3 in Figure 21\(d\))-3.18 E F0({8F})194.841 259.98 Q({8F})178.641
271.928 Q({8F)213.315 271.928 Q(,9J})-.92 E({8F)237.651 259.76 Q(,9J})
-.92 E({2J,8F)263.801 271.928 Q(,9J})-.92 E({2J,8F)296.201 259.76 Q
(,9J})-.92 E({2J,4F)330.32 271.928 Q(,8F)-.92 E(,9J})-.92 E({2J,4J,8F)
370.879 259.76 Q(,9J})-.92 E({2J,4J,8F)411.415 271.928 Q(,9J})-.92 E
({4J,8F})463.991 259.76 Q(path 4:)153.752 259.76 Q .4 LW 196.2 336.544
180 336.544 DL 196.2 336.544 MT -7.2 1.8 RL 0 -3.6 RL CL BL 196.2
336.544 MT -7.2 1.8 RL 0 -3.6 RL CL ST 180.36 344.536 MT 0 -15.84 RL
-16.56 0 RL 0 15.84 RL CL ST 212.76 344.536 MT 0 -15.84 RL -16.56 0 RL 0
15.84 RL CL ST 244.8 336.544 212.4 336.544 DL 244.8 336.544 MT -7.2 1.8
RL 0 -3.6 RL CL BL 244.8 336.544 MT -7.2 1.8 RL 0 -3.6 RL CL ST 261.72
344.536 MT 0 -15.84 RL -16.56 0 RL 0 15.84 RL CL ST 309.6 336.544 261
336.544 DL 309.6 336.544 MT -7.2 1.8 RL 0 -3.6 RL CL BL 309.6 336.544 MT
-7.2 1.8 RL 0 -3.6 RL CL ST 390.6 336.544 325.8 336.544 DL 390.6 336.544
MT -7.2 1.8 RL 0 -3.6 RL CL BL 390.6 336.544 MT -7.2 1.8 RL 0 -3.6 RL CL
ST 326.52 344.536 MT 0 -15.84 RL -16.56 0 RL 0 15.84 RL CL ST 407.16
344.536 MT 0 -15.84 RL -16.56 0 RL 0 15.84 RL CL ST 471.6 336.544 406.8
336.544 DL 471.6 336.544 MT -7.2 1.8 RL 0 -3.6 RL CL BL 471.6 336.544 MT
-7.2 1.8 RL 0 -3.6 RL CL ST 487.8 344.536 MT 0 -15.84 RL -16.56 0 RL 0
15.84 RL CL ST(8)169.436 340.76 Q(9)201.836 340.76 Q(2)250.436 340.76 Q
(4)315.236 340.76 Q(6)396.164 340.76 Q(7)477.236 340.76 Q({8F})178.641
324.56 Q({8F})194.841 312.392 Q({8F)213.315 324.56 Q(,9J})-.92 E({8F)
237.651 312.392 Q(,9J})-.92 E({2J,8F)263.801 324.56 Q(,9J})-.92 E
({2J,8F)296.201 312.392 Q(,9J})-.92 E({2J,4J,8F)330.415 324.56 Q(,9J})
-.92 E({2J,4F)370.784 312.392 Q(,8F)-.92 E(,9J})-.92 E({2J,4F)411.32
324.56 Q(,8F)-.92 E(,9J})-.92 E({4F)463.896 312.392 Q(,8F})-.92 E
(path 5:)153.752 312.392 Q 196.2 283.84 180 283.84 DL 196.2 283.84 MT
-7.2 1.8 RL 0 -3.6 RL CL BL 196.2 283.84 MT -7.2 1.8 RL 0 -3.6 RL CL ST
180.36 291.976 MT 0 -15.84 RL -16.56 0 RL 0 15.84 RL CL ST 212.76
291.976 MT 0 -15.84 RL -16.56 0 RL 0 15.84 RL CL ST 244.8 283.84 212.4
283.84 DL 244.8 283.84 MT -7.2 1.8 RL 0 -3.6 RL CL BL 244.8 283.84 MT
-7.2 1.8 RL 0 -3.6 RL CL ST 261.72 291.976 MT 0 -15.84 RL -16.56 0 RL 0
15.84 RL CL ST 309.6 283.84 261 283.84 DL 309.6 283.84 MT -7.2 1.8 RL 0
-3.6 RL CL BL 309.6 283.84 MT -7.2 1.8 RL 0 -3.6 RL CL ST 390.6 283.84
325.8 283.84 DL 390.6 283.84 MT -7.2 1.8 RL 0 -3.6 RL CL BL 390.6 283.84
MT -7.2 1.8 RL 0 -3.6 RL CL ST 326.52 291.976 MT 0 -15.84 RL -16.56 0 RL
0 15.84 RL CL ST 407.16 291.976 MT 0 -15.84 RL -16.56 0 RL 0 15.84 RL CL
ST 471.6 283.84 406.8 283.84 DL 471.6 283.84 MT -7.2 1.8 RL 0 -3.6 RL CL
BL 471.6 283.84 MT -7.2 1.8 RL 0 -3.6 RL CL ST 487.8 291.976 MT 0 -15.84
RL -16.56 0 RL 0 15.84 RL CL ST(8)169.436 288.128 Q(9)201.836 288.128 Q
(2)250.436 288.128 Q(4)315.236 288.128 Q(5)396.164 288.128 Q(7)477.236
288.128 Q F1(Figure 27: P)124.89 367.576 Q
(aths 4 and 5 Cannot Immediately F)-.18 E(ollo)-.18 E 3(wt)-.3 G
(he Same P)-3 E(ath in Figure 21\(d\))-.18 E 2.256(block 4 on the ne)
111.6 402.656 R 2.257(xt iteration without being af)-.18 F 5.257
(fected. This)-.3 F 2.257(causes these paths not to)5.257 F(follo)111.6
428.656 Q 3(wt)-.3 G(hemselv)-3 E(es on the ne)-.18 E
(xt loop iteration.)-.18 E(A)126.6 454.656 Q/F2 12/Times-Italic@0 SF
1.773(Can F)4.773 F(ollow)-1.26 E F1 1.772
(matrix is constructed by the timing analyzer that indicates for each)
4.773 F .677(path the set of paths that can le)111.6 480.656 R -.06(ga)
-.18 G .677(lly follo).06 F 3.677(wi)-.3 G 3.677(to)-3.677 G 3.677(nt)
-3.677 G .677(he ne)-3.677 F .677(xt iteration.)-.18 F .677
(If a constraint from)6.677 F .295(one path can reach its associated br\
anch in other paths without being nulli\214ed, then such)111.6 506.656 R
.992(paths that ha)111.6 532.656 R 1.352 -.18(ve t)-.24 H .993
(ransitions that do not satisfy the constraint are mark).18 F .993
(ed as ille)-.12 F -.06(ga)-.18 G 3.993(li).06 G 3.993(nt)-3.993 G(he)
-3.993 E 5.168(matrix. No)111.6 558.656 R 2.168(paths are allo)5.168 F
2.168(wed to follo)-.3 F 5.168(wap)-.3 G 2.168(ath that only e)-5.168 F
5.168(xits. T)-.18 F 2.168(able 15 depicts the)-.96 F
(matrix of paths that can le)111.6 584.656 Q -.06(ga)-.18 G(lly follo)
.06 E 3(we)-.3 G(ach path in Figure 21\(d\).)-3 E .672(After the Can F)
126.6 610.656 R(ollo)-.18 E 3.673(wm)-.3 G .673
(atrix is completed, it is e)-3.673 F .673
(xamined to see if restrictions on the)-.18 F 1.627
(number of iterations associated with each path can be applied.)111.6
636.656 R 1.626(In general, the timing)7.626 F 2.05(analyzer e)111.6
662.656 R 2.05(xamines the matrix for each path to determine the fe)-.18
F 2.051(west number of other)-.3 F(63)319.8 725.04 Q EP
%%Page: 64 66
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF -.96(Ta)223.026 115.6 S(ble 15: Can F).96 E
(ollo)-.18 E 3(wM)-.3 G(atrix for Figure 21)-3 E .56 LW 476.523 129.62
175.077 129.62 DL/F1 14/Helvetica@0 SF 17.107(Current P)182.077 144.84 R
(aths That Can Immediately F)-.56 E(ollo)-.42 E(w)-.21 E -.56(Pa)183.904
159.24 S 476.523 155.74 240.253 155.74 DL(th in)200.466 159.24 Q 34.563
(Loop 1)189.847 173.64 R 40.37(2345)40.37 G 476.523 180.58 175.077
180.58 DL 48.969(1N)201.523 192.92 S 38.046(NNNN)-10.923 G 48.969(2N)
201.523 207.32 S 38.046(NNNN)-10.923 G 49.354(3Y)201.523 221.72 S 38.046
(NNNN)-10.923 G 48.969(4N)201.523 236.12 S 38.816(YY)-10.538 G 38.431
(NY)-.385 G 48.969(5N)201.523 250.52 S 38.816(YYY)-10.538 G(N)-.385 E
476.523 256.02 175.077 256.02 DL 431.869 155.74 431.869 256.02 DL
383.715 155.74 383.715 256.02 DL 335.561 155.74 335.561 256.02 DL
287.407 155.74 287.407 256.02 DL 238.253 129.62 238.253 256.02 DL
240.253 129.62 240.253 256.02 DL 476.523 129.62 476.523 256.02 DL
175.077 129.62 175.077 256.02 DL F0 2.289(paths required to be tra)111.6
279.72 R -.18(ve)-.24 G 2.289(rsed before the current path can be e).18
F -.18(xe)-.18 G 2.288(cuted ag).18 F 5.288(ain. If)-.06 F(the)5.288 E
2.533(algorithm indicates that a path cannot reach itself, then the pat\
h will be assigned a)111.6 305.72 R .123(maximum of one iteration.)111.6
331.72 R -.18(Pa)6.123 G .122
(ths 1, 2, and 3 of Figure 21\(d\) are all assigned a maximum).18 F .582
(number of one iteration because the)111.6 357.72 R 3.582(yc)-.18 G .582
(annot reach themselv)-3.582 F .583(es after e)-.18 F -.18(xe)-.18 G
3.583(cuting. If).18 F 3.583(ap)3.583 G(ath)-3.583 E .636
(cannot directly follo)111.6 383.72 R 3.636(wi)-.3 G .636(tself, b)
-3.636 F .636(ut can e)-.24 F -.18(ve)-.3 G .636(ntually be reached ag)
.18 F .636(ain, then it cannot e)-.06 F -.18(xe)-.18 G(cute).18 E .44
(on e)111.6 409.72 R -.18(ve)-.3 G .44(ry iteration of the loop.).18 F
.44(If the algorithm indicates that the)6.44 F/F2 12/Times-Italic@0 SF
(K)3.44 E F0 .44(iterations required to)3.44 F .201(be e)111.6 435.72 R
-.18(xe)-.18 G .201(cuted before a).18 F F2(continue)3.201 E F0 .2
(path can reach itself is greater than one, then it is assigned)3.2 F
5.188(am)111.6 461.72 S 2.188(aximum number of iterations from)-5.188 F
F2(ceil)5.189 E F0(\()A F2(R)A F0(/)A F2(K)A F0 2.189(\), where)B F2(R)
5.189 E F0 2.189(is the possible number of)5.189 F 1.942
(iterations for the path.)111.6 487.72 R -.18(Pa)7.942 G 1.942
(ths 4 and 5 of Figure 21\(d\) can only e).18 F -.18(xe)-.18 G 1.941
(cute ag).18 F 1.941(ain on the)-.06 F .846
(second iteration after it last e)111.6 513.72 R -.18(xe)-.18 G 3.846
(cuted. Thus,).18 F .846(paths 4 and 5 are assigned)3.846 F F2(ceil)
3.846 E F0 .846(\(999/2\) and)B F2(ceil)111.6 539.72 Q F0
(\(1,000/2\), respecti)A -.18(ve)-.3 G(ly).18 E 3(,o)-.78 G 3(r5)-3 G
(00 maximum iterations.)-3 E 3(5.2.3 Using)111.6 574.82 R(Ef)3 E .48 LW
391.932 577.82 111.6 577.82 DL
(fect-Based Constraints On Entering a Loop)184.296 574.82 Q .035
(The pre)111.6 607.32 R .035(vious section discussed ho)-.3 F 3.035(wb)
-.3 G .035(ranch constraints are used to create path constraints)-3.035
F 1.031(within a loop.)111.6 633.32 R 1.031(But there are further const\
raints that arise when the loop is entered that)7.031 F(af)111.6 659.32
Q .893(fect which paths can initially e)-.3 F -.18(xe)-.18 G 3.893
(cute. The).18 F .893(steps tak)3.893 F .892
(en by the timing analyzer related)-.12 F
(to preheader constraints are as follo)111.6 685.32 Q(ws.)-.3 E(64)319.8
725.04 Q EP
%%Page: 65 67
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 13(1. use)111.6 96.4 R(data-\215o)3 E 3(wa)-.3 G
(nalysis to determine the initial constraints)-3 E 13(2. determine)111.6
115 R(the \214rst iteration on which each path in the loop can e)3 E
-.18(xe)-.18 G(cute).18 E 13(3. update)111.6 133.6 R
(the range of possible iterations for the paths)3 E 13(4. update)111.6
152.2 R(the minimum and maximum number of iterations of the loop)3 E
(These steps are described in this section.)111.6 185.2 Q 1.547
(The timing analyzer uses data-\215o)126.6 214 R 4.547(wa)-.3 G 1.547
(nalysis [39] to calculate)-4.547 F/F1 12/Times-Italic@0 SF(ins)4.547 E
F0(and)4.547 E F1(outs)4.547 E F0 1.548(for each)4.547 F 1.494
(block in a function.)111.6 242.8 R 1.493
(The algorithm for accomplishing this is gi)7.493 F -.18(ve)-.3 G 4.493
(ni).18 G 4.493(nF)-4.493 G 1.493(igure 28.)-4.493 F(The)7.493 E
(data-\215o)111.6 271.6 Q 4.815(we)-.3 G 1.815(quations 10 through 15 t\
hat determine the ins and outs are based on truth)-4.815 F 3.057
(tables gi)111.6 300.4 R -.18(ve)-.3 G 6.057(ni).18 G 6.057(nT)-6.057 G
3.057(able 16.)-7.017 F 3.056(The implementation uses six bit v)9.056 F
3.056(ectors for each block:)-.18 F 2.779(in.jump, in.f)111.6 329.2 R
2.779(allthru, in.unkno)-.12 F 2.779(wn, out.jump, out.f)-.3 F 2.78
(allthru and out.unkno)-.12 F 5.78(wn. The)-.3 F(jump,)5.78 E/F2 10
/Courier-Bold@0 SF(FOR)130.8 366.32 Q/F3 10/Courier@0 SF
(each function in the program)6 E F2(DO)6 E(DO)148.8 376.72 Q F3
(change = FALSE)166.8 387.12 Q F2(FOR)166.8 397.52 Q F3
(each block in the function)6 E F2(DO)6 E F3(in.j = NULL)184.8 407.92 Q
(in.f = NULL)184.8 418.32 Q(in.u = NULL)184.8 428.72 Q F2(IF)184.8
439.12 Q F3(the block has at least one predecessor \(pred\))6 E F2(THEN)
6 E F3(in.j = pred.out.j)202.8 449.52 Q(in.f = pred.out.f)202.8 459.92 Q
(in.u = pred.out.u)202.8 470.32 Q F2(FOR)202.8 480.72 Q F3
(each other predecessor block \(pred\))6 E F2(DO)6 E F3(in.j)220.8
491.12 Q/F4 10/Symbol SF6 E F3 6(=p)C(red.out.j)-6 E(in.f)220.8
501.52 Q F46 E F3 6(=p)C(red.out.f)-6 E(in.u)220.8 511.92 Q F46
E F3 6(=p)C(red.out.u)-6 E F46 E F3(\(in.j)6 E F46 E F3
(pred.out.f\))6 E F46 E F3(\(in.f)238.8 522.32 Q F46 E F3
(pred.out.j\))6 E
(Initialize this.e, this.u and this.j based on the branch)184.8 543.12 Q
(constraints contained in this block.)202.8 553.52 Q(out.j = this.j)
184.8 563.92 Q F46 E F3(\(in.j - this.f - this.u\))6 E
(out.f = this.f)184.8 574.32 Q F46 E F3(\(in.f - this.j - this.u\))6
E(out.u = this.u)184.8 584.72 Q F46 E F3(\(in.u - this.j - this.f\))
6 E F2(IF)184.8 595.12 Q F3(any in or out bit vector changed)6 E F2
(THEN)6 E F3(change = TRUE)202.8 605.52 Q F2(WHILE)148.8 615.92 Q F3
(change)6 E F0(Figure 28: Calculating Ins and Outs)239.97 640.4 Q(65)
319.8 725.04 Q EP
%%Page: 66 68
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF(\(10\))520.008 120.754 Q/F1 12/Times-Italic@0 SF
(B)248.772 112.048 Q F0(.).324 E F1(in)2.052 E F0(.).288 E F1(j)4.128 E
/F2 12/Symbol SF(=)3.936 E/F3 17/Symbol SF30.75 1.206 M F1(p)-38.946
15.594 M F24.548 E F1(preds)3.9 E F0(\().324 E F1(B).696 E F0(\))
.324 E F1(p)1.5 -16.8 M F0(.).228 E F1(out)2.316 E F0(.).816 E F1(j)
4.128 E F0(\(11\))520.008 172.966 Q F1(B)246.72 164.404 Q F0(.).324 E F1
(in)2.052 E F0(.).288 E F1(f)4.404 E F2(=)5.712 E F330.75 1.206 M F1
(p)-38.946 15.594 M F24.548 E F1(preds)3.9 E F0(\().324 E F1(B).696
E F0(\)).324 E F1(p)1.5 -16.8 M F0(.).228 E F1(out)2.316 E F0(.).816 E
F1(f)4.404 E F0(\(12\))520.008 218.824 Q F1(B)250.47 218.824 Q F0(.).324
E F1(in)2.052 E F0(.).288 E F1(u)2.136 E F2(=)3.66 E F0(\()3.36 E F1(B)
.696 E F0(.).324 E F1(in)2.052 E F0(.).288 E F1(j)4.128 E F33.936
.917 M F1(B)4.056 -.917 M F0(.).324 E F1(in)2.052 E F0(.).288 E F1(f)
4.404 E F0(\))2.352 E F23.36 E F0(\(13\))520.008 258.184 Q F1(B)
226.314 258.184 Q F0(.).324 E F1(out)2.316 E F0(.).816 E F1(j)4.128 E F2
(=)3.936 E F1(B)4.056 E F0(.).324 E F1(j)4.128 E F33.936 .917 M F0
(\()3.36 -.917 M F1(B).696 E F0(.).324 E F1(in)2.052 E F0(.).288 E F1(j)
4.128 E F2(-)3.216 E F1(B)3.336 E F0(.).324 E F1(f)4.404 E F2(-)4.992 E
F1(B)3.336 E F0(.).324 E F1(u)2.136 E F0(\)).3 E(\(14\))520.008 297.544
Q F1(B)224.262 297.544 Q F0(.).324 E F1(out)2.316 E F0(.).816 E F1(f)
4.404 E F2(=)5.712 E F1(B)4.056 E F0(.).324 E F1(f)4.404 E F35.712
.917 M F0(\()3.36 -.917 M F1(B).696 E F0(.).324 E F1(in)2.052 E F0(.)
.288 E F1(f)4.404 E F2(-)4.992 E F1(B)3.336 E F0(.).324 E F1(j)4.128 E
F2(-)3.216 E F1(B)3.336 E F0(.).324 E F1(u)2.136 E F0(\)).3 E(\(15\))
520.008 336.904 Q F1(B)225.918 336.904 Q F0(.).324 E F1(out)2.316 E F0
(.).816 E F1(u)2.136 E F2(=)3.66 E F1(B)4.056 E F0(.).324 E F1(u)2.136 E
F33.66 .917 M F0(\()3.36 -.917 M F1(B).696 E F0(.).324 E F1(in)2.052
E F0(.).288 E F1(u)2.136 E F2(-)2.94 E F1(B)3.336 E F0(.).324 E F1(j)
4.128 E F2(-)3.216 E F1(B)3.336 E F0(.).324 E F1(f)4.404 E F0(\))2.352 E
-.12(fa)111.6 382.264 S .348(llthru and unkno).12 F .348(wn bit v)-.3 F
.348(ectors indicate which branches are made to jump, f)-.18 F .348
(all through)-.12 F .398(or become unkno)111.6 411.064 R .398
(wn, respecti)-.3 F -.18(ve)-.3 G(ly).18 E 3.399(,b)-.78 G .399
(ased on this block.)-3.399 F -.18(Fo)6.399 G 3.399(rd).18 G .399
(etermining the ins and outs)-3.399 F .345(of a block, e)111.6 439.864 R
.345(xactly one of the three corresponding bit v)-.18 F .345
(ectors must be set, since a branch)-.18 F 1.39
(must be in either a jump, f)111.6 468.664 R 1.39(all through or unkno)
-.12 F 1.391(wn state.)-.3 F 1.391(Each block also contains bit)7.391 F
-.18(ve)111.6 497.464 S 2.979
(ctors indicating if it causes a branch to jump, f).18 F 2.978
(all through or become unkno)-.12 F(wn.)-.3 E(Ho)111.6 526.264 Q(we)-.3
E -.18(ve)-.3 G .988 -.48(r, t).18 H .028(he current block may ha).48 F
.388 -.18(ve n)-.24 H 3.028(oe).18 G -.3(ff)-3.028 G .029
(ect on the branch in question, so it is possible).3 F(that the bit v)
111.6 555.064 Q(ectors representing the ef)-.18 E
(fect from the current block may all be zero.)-.3 E .549
(The \214rst part of T)126.6 583.864 R .548
(able 16 enumerates the cases to calculate the ins, based on the outs)
-.96 F 2.289(of the predecessor blocks.)111.6 612.664 R 2.289
(As an illustration, consider line 7.)8.289 F 2.289
(Predecessor block p1)8.289 F(mak)111.6 641.464 Q 1.1(es a branch unkno)
-.12 F 1.1(wn, and predecessor block p2 mak)-.3 F 1.1
(es the same respecti)-.12 F 1.46 -.18(ve b)-.3 H(ranch).18 E 5.167
(jump. The)111.6 670.264 R 2.167(combination of these ef)5.167 F 2.167
(fects is to mak)-.3 F 5.168(et)-.12 G 2.168(hat branch unkno)-5.168 F
5.168(wn. Since)-.3 F(the)5.168 E(66)319.8 725.04 Q EP
%%Page: 67 69
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF -.96(Ta)231.486 115.6 S(ble 16: T).96 E(ruth T)
-.42 E(ables for Ins and Outs)-.96 E .48 LW 528.93 132 122.67 132 DL/F1
12/Helvetica@0 SF(INPUT 1)199.416 146.28 Q(INPUT 2)78.426 E(RESUL)75.702
E(T)-1.32 E 528.93 151.28 157.342 151.28 DL 19.812(p1.j p1.f p1.u)
167.916 162.68 R 14.664(p2.j p2.f p2.u)20.574 F 22.008(in.j in.f in.u)
21.672 F(line)128.67 154.48 Q 528.93 169.12 122.67 169.12 DL -26.328
29.574(11 0)138.006 181.96 T 35.25(01)8.586 G -35.016 33.012(00 1 0)
-4.242 H(0)3.336 E -26.328 29.574(21 0)138.006 196.36 T 35.25(00)8.586 G
-35.016 33.012(10 0 0)-4.242 H(1)3.336 E -26.328 29.574(31 0)138.006
210.76 T 35.25(00)8.586 G -35.016 33.012(01 0 0)-4.242 H(1)3.336 E
528.93 217.2 122.67 217.2 DL -26.328 29.574(40 1)138.006 230.04 T 35.25
(01)8.586 G -35.016 33.012(00 0 0)-4.242 H(1)3.336 E -26.328 29.574
(50 1)138.006 244.44 T 35.25(00)8.586 G -35.016 33.012(10 0 1)-4.242 H
(0)3.336 E -26.328 29.574(60 1)138.006 258.84 T 35.25(00)8.586 G -35.016
33.012(01 0 0)-4.242 H(1)3.336 E 528.93 265.28 122.67 265.28 DL -26.328
29.574(70 0)138.006 278.12 T 35.25(11)8.586 G -35.016 33.012(00 0 0)
-4.242 H(1)3.336 E -26.328 29.574(80 0)138.006 292.52 T 35.25(10)8.586 G
-35.016 33.012(10 0 0)-4.242 H(1)3.336 E -26.328 29.574(90 0)138.006
306.92 T 35.25(10)8.586 G -35.016 33.012(01 0 0)-4.242 H(1)3.336 E
528.93 313.36 122.67 313.36 DL 528.93 315.36 122.67 315.36 DL(this)
165.342 328.2 Q 14.664(.j this)-.18 F 14.664(.f this)-.18 F 16.668
(.u in.j)-.18 F 18.672(in.f in.u)22.008 F 14.664(out.j out.f out.u)
20.004 F 528.93 334.64 122.67 334.64 DL 26.238(10 0)131.334 347.48 R
38.16(00)36.156 G -32.34 31.008(00 0)-2.91 H -35.676 34.344(00 0)3.336 H
26.238(11 0)131.334 361.88 R 38.16(00)36.156 G -32.34 31.008(10 0)-2.91
H -35.676 34.344(10 0)3.336 H 26.238(12 0)131.334 376.28 R 38.16(00)
36.156 G -32.34 31.008(01 0)-2.91 H -35.676 34.344(01 0)3.336 H 26.238
(13 0)131.334 390.68 R 38.16(00)36.156 G -32.34 31.008(00 1)-2.91 H
-35.676 34.344(00 1)3.336 H 528.93 397.12 122.67 397.12 DL 26.238(14 1)
131.334 409.96 R 38.16(00)36.156 G -32.34 31.008(00 0)-2.91 H -35.676
34.344(10 0)3.336 H 26.238(15 1)131.334 424.36 R 38.16(00)36.156 G
-32.34 31.008(10 0)-2.91 H -35.676 34.344(10 0)3.336 H 26.238(16 1)
131.334 438.76 R 38.16(00)36.156 G -32.34 31.008(01 0)-2.91 H -35.676
34.344(10 0)3.336 H 26.238(17 1)131.334 453.16 R 38.16(00)36.156 G
-32.34 31.008(00 1)-2.91 H -35.676 34.344(10 0)3.336 H 528.93 459.6
122.67 459.6 DL 26.238(18 0)131.334 472.44 R 38.16(10)36.156 G -32.34
31.008(00 0)-2.91 H -35.676 34.344(01 0)3.336 H 26.238(19 0)131.334
486.84 R 38.16(10)36.156 G -32.34 31.008(10 0)-2.91 H -35.676 34.344
(01 0)3.336 H 26.238(20 0)131.334 501.24 R 38.16(10)36.156 G -32.34
31.008(01 0)-2.91 H -35.676 34.344(01 0)3.336 H 26.238(21 0)131.334
515.64 R 38.16(10)36.156 G -32.34 31.008(00 1)-2.91 H -35.676 34.344
(01 0)3.336 H 528.93 522.08 122.67 522.08 DL 26.238(22 0)131.334 534.92
R 38.16(01)36.156 G -32.34 31.008(00 0)-2.91 H -35.676 34.344(00 1)3.336
H 26.238(23 0)131.334 549.32 R 38.16(01)36.156 G -32.34 31.008(10 0)
-2.91 H -35.676 34.344(00 1)3.336 H 26.238(24 0)131.334 563.72 R 38.16
(01)36.156 G -32.34 31.008(01 0)-2.91 H -35.676 34.344(00 1)3.336 H
26.238(25 0)131.334 578.12 R 38.16(01)36.156 G -32.34 31.008(00 1)-2.91
H -35.676 34.344(00 1)3.336 H 528.93 583.12 122.67 583.12 DL 487.242
151.28 487.242 583.12 DL 445.89 151.28 445.89 583.12 DL 404.21 132
404.21 583.12 DL 406.21 132 406.21 583.12 DL 363.858 151.28 363.858
583.12 DL 325.842 151.28 325.842 583.12 DL 287.498 132 287.498 583.12 DL
289.498 132 289.498 583.12 DL 241.998 151.28 241.998 583.12 DL 198.834
151.28 198.834 583.12 DL 155.342 132 155.342 583.12 DL 157.342 132
157.342 583.12 DL 528.93 132 528.93 583.12 DL 122.67 132 122.67 583.12
DL F0 .061
(timing analyzer cannot assume which predecessor block will al)111.6
618.8 R -.12(wa)-.12 G .061(ys precede the block in).12 F 1.06(question\
, it has to intersect the information from all the predecessors.)111.6
647.6 R 1.061(The inner FOR-)7.061 F 2.556
(loop in Figure 28 combines the ef)111.6 676.4 R 2.556
(fects from each predecessor block one at a time.)-.3 F(67)319.8 725.04
Q EP
%%Page: 68 70
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 3.013(Equations 10 and 11 sho)111.6 96.4 R 6.014
(wt)-.3 G 3.014(hat the current block')-6.014 F 6.014(si)-.66 G 3.014
(ns for the jump \(f)-6.014 F 3.014(all through\))-.12 F 3.572
(branches are simply the intersection of the jump \(f)111.6 125.2 R
3.571(all through\) bit v)-.12 F 3.571(ectors of the)-.18 F 1.88
(predecessors' outs.)111.6 154 R 1.88
(Equation 12 states that the ins for the unkno)7.88 F 1.881
(wn branches are the)-.3 F .063
(complement of the union of the ins for the jump and f)111.6 182.8 R
.062(all through branches.)-.12 F -.18(Fo)6.062 G 3.062(re).18 G
(xample,)-3.242 E 4.423
(if one predecessor out says that a certain branch will f)111.6 211.6 R
4.424(all through, b)-.12 F 4.424(ut another)-.24 F 1.586(predecessor o\
ut says the same branch will jump, then the in of the current block wil\
l)111.6 240.4 R(sho)111.6 269.2 Q 3(wt)-.3 G(hat that branch is unkno)-3
E(wn due to the con\215ict between the predecessors.)-.3 E 1.471
(The second part of T)126.6 298 R 1.471(able 16 sho)-.96 F 1.471
(ws the cases that determine the outs, based on the)-.3 F(ef)111.6 326.8
Q .567(fects of the block in question combined with its ins.)-.3 F .567
(If the current block has no ef)6.567 F(fect)-.3 E .192
(on a branch, then the out bit v)111.6 355.6 R .193
(ectors will be assigned the v)-.18 F .193(alue of the ins.)-.3 F .193
(Otherwise, the)6.193 F(ef)111.6 384.4 Q .03(fect of this block will o)
-.3 F -.18(ve)-.18 G .029
(rride the ins to determine the outs of this block.).18 F -.18(Fo)6.029
G 3.029(re).18 G(xample,)-3.209 E .72(consider line 16 in T)111.6 413.2
R .721(able 16.)-.96 F .721
(It depicts a situation where the block in question mak)6.721 F .721
(es a)-.12 F .75(particular branch jump, while the ef)111.6 442 R .75
(fect of the ins is to mak)-.3 F 3.75(et)-.12 G .75(hat jump f)-3.75 F
.75(all through.)-.12 F(In)6.75 E 1.171
(this case, since this block has an ef)111.6 470.8 R 1.171(fect, it o)
-.3 F -.18(ve)-.18 G 1.171(rrides the ins, so the v).18 F 1.172
(alue of the out bit)-.3 F -.18(ve)111.6 499.6 S 3.253
(ctors will represent that the branch will jump.).18 F 3.253
(The equations 13 through 15 to)9.253 F .658
(compute the outs are straightforw)111.6 528.4 R .658(ard and follo)-.12
F 3.658(wd)-.3 G .658(irectly from the truth table.)-3.658 F .659
(In Figure)6.659 F 1.337(28, the outs are calculated after the ins.)
111.6 557.2 R(Ho)7.336 E(we)-.3 E -.18(ve)-.3 G 2.296 -.48(r, t).18 H
1.336(he algorithm is a typical data-\215o).48 F(w)-.3 E 1.09
(calculation in which the ins and outs depend on each other)111.6 586 R
4.091(,s)-.48 G 4.091(ot)-4.091 G 1.091(he algorithm continues)-4.091 F
(until there is no change to the bit v)111.6 614.8 Q(ectors.)-.18 E .398
(After the ins and outs of e)126.6 643.6 R -.18(ve)-.3 G .397
(ry block are calculated, the timing analyzer uses the outs).18 F .878
(of the preheader to see which paths can e)111.6 672.4 R -.18(xe)-.18 G
.879(cute on the \214rst iteration.).18 F .879(The algorithm in)6.879 F
(68)319.8 725.04 Q EP
%%Page: 69 71
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF .507(Figure 29 sets)111.6 96.4 R/F1 12/Courier@0
SF(p.on_first)3.507 E F0 .507(to true \(f)3.507 F .507
(alse\) if it determines path)-.12 F F1(p)3.506 E F0 .506
(can \(cannot\) e)3.506 F -.18(xe)-.18 G(cute).18 E .325
(on the \214rst iteration.)111.6 125.2 R .325(The cases in which)6.325 F
F1(p.on_first)3.325 E F0 .325(is f)3.325 F .325
(alse correspond to situations)-.12 F .145(where a branch in the path c\
ontradicts the information from the preheader outs.)111.6 154 R .144
(If a path)6.144 F 1.536(is found not able to e)111.6 182.8 R -.18(xe)
-.18 G 1.537
(cute on the \214rst iteration as a result of this algorithm, then in)
.18 F 1.291(some cases it may be assigned fe)111.6 211.6 R 1.29
(wer maximum iterations, and a more accurate timing)-.3 F 1.96
(bound can be obtained.)111.6 240.4 R 1.96(The preheader')7.96 F(s)-.66
E/F2 12/Times-Italic@0 SF(out)4.96 E F0 1.961(constraints are propag)
4.96 F 1.961(ated through each)-.06 F 3.895(path. An)111.6 269.2 R 3.895
(yp)-.18 G .895(ath that does not obe)-3.895 F 3.895(yt)-.18 G .895
(he preheader constraints cannot e)-3.895 F -.18(xe)-.18 G .894
(cute on the \214rst).18 F 3.369(iteration. F)111.6 298 R .369(or e)-.18
F .369(xample, consider the loop in Figure 21.)-.18 F .37
(The application of the algorithm)6.369 F 1.512
(in Figure 29 to the paths of this loop is depicted in Figure 30.)111.6
326.8 R 1.512(This \214gure sho)7.512 F 1.512(ws the)-.3 F(propag)111.6
355.6 Q 1.632
(ation of the preheader constraints to determine which paths can e)-.06
F -.18(xe)-.18 G 1.632(cute on the).18 F .507(\214rst iteration.)111.6
384.4 R .507(The solid arro)6.507 F .507
(ws indicate transitions that occur between blocks inside the)-.3 F .124
(loop, while dashed arro)111.6 413.2 R .124
(ws indicate transitions to or from a block outside the loop.)-.3 F
(Block)6.125 E 4.239(1i)111.6 442 S 4.239(st)-4.239 G 1.239(he preheade\
r of the loop, and block 10 is the block to which the loop e)-4.239 F
4.238(xits. The)-.18 F -.3(va)111.6 470.8 S 1.042(lue of).3 F F1(odd)
4.042 E F0 1.043(is initialized to 0 in block 1, which is in the outs o\
f the preheader of the)4.042 F .51
(loop, so the associated branch constraint is)111.6 499.6 R/F3 12
/Times-Bold@0 SF({4J})3.51 E F0 6.51(.T)C .509
(hus, on the \214rst iteration of the loop,)-6.51 F .69
(the branch in block 4 must be tak)111.6 528.4 R 3.69(en. P)-.12 F .691
(ath 4 contains a transition from block 4 to block)-.18 F 1.214
(5, which is a f)111.6 557.2 R 1.214
(all through situation, contradicting the preheader constraint.)-.12 F
1.214(The timing)7.214 F(analyzer detects that path 4 cannot e)111.6 586
Q -.18(xe)-.18 G(cute on the \214rst iteration.).18 E .702
(The algorithm in Figure 29 also detects if a loop e)126.6 614.8 R .703
(xit transition in a path causes it to)-.18 F .728(be ineligible to e)
111.6 643.6 R -.18(xe)-.18 G .728(cute on the \214rst iteration.).18 F
.727(Consider e)6.728 F .727(xit paths 1 and 2 from the loop)-.18 F .088
(in Figure 21.)111.6 672.4 R -.18(Pa)6.088 G .088(th 1 consists only of\
block 8, so this block is considered the last block in).18 F(69)319.8
725.04 Q EP
%%Page: 70 72
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Courier@0 SF
(Initialize pre.j, pre.f and pre.u to be the union of the)118.8 111.6 Q
(respective bit vectors of all the header's immediate predecessors.)
136.8 122 Q/F1 10/Courier-Bold@0 SF(FOR)118.8 132.4 Q F0
(each path \(p\) in the loop)6 E F1(DO)6 E(IF)136.8 142.8 Q F0
(we already know the path cannot execute on)6 E(first iteration)154.8
153.2 Q F1(THEN)6 E F0(CONTINUE)154.8 163.6 Q F1(FOR)136.8 174 Q F0
(each block \(b\) in path p)6 E F1(DO)6 E F0(p.on_first = TRUE)154.8
184.4 Q F1(IF)154.8 194.8 Q F0(there is no branch in this block)6 E F1
(THEN)6 E F0(CONTINUE)172.8 205.2 Q F1(IF)154.8 215.6 Q F0
(all three bit vectors at bit b are zero)6 E F1(THEN)6 E F0(CONTINUE)
172.8 226 Q
(succ = number of immediate successor block that lies outside)154.8
236.4 Q(the loop)172.8 246.8 Q(/*)154.8 262.4 Q/F2 10/Times-Roman@0 SF
(if the preheader says this branch must jump)6 E F0(*/)6 E(pre.j[b])
154.8 272.8 Q F1(THEN)6 E(IF)172.8 283.2 Q F0
(this is not the last block in path)6 E F1(THEN)6 E(IF)190.8 293.6 Q F0
(number of next block in path == b + 1)6 E(p.on_first = FALSE)208.8 304
Q F1(ELSE)172.8 314.4 Q(IF)190.8 324.8 Q F0(succ == b + 1)6 E F1(THEN)6
E F0(p.on_first = FALSE)208.8 335.2 Q(/*)154.8 350.8 Q F2
(if the preheader says this branch must f)6 E(all through)-.1 E F0(*/)6
E F1(ELSIF)154.8 361.2 Q F0(pre.f[b])6 E F1(THEN)6 E(IF)172.8 371.6 Q F0
(this is not last block in path)6 E F1(THEN)6 E(IF)190.8 382 Q F0
(number of next block in path != b + 1)6 E(p.on_first = FALSE)208.8
392.4 Q F1(ELSE)172.8 402.8 Q(IF)190.8 413.2 Q F0(succ != b + 1)6 E F1
(THEN)6 E F0(p.on_first = FALSE)208.8 423.6 Q/F3 12/Times-Roman@0 SF
(Figure 29: Which P)195.324 448.08 Q(aths Can Ex)-.18 E
(ecute on First Iteration)-.18 E .843(the path.)111.6 484.56 R .843(The\
timing analyzer determines the successor block to block 8 that is loca\
ted)6.843 F 1.329(outside the loop, which is block 10.)111.6 513.36 R
1.329(The e)7.329 F 1.329(xit transition from block 8 to block 10 is a)
-.18 F .848(jump, ho)111.6 542.16 R(we)-.3 E -.18(ve)-.3 G 3.848(rt).18
G .848(he preheader constraint is for the branch in block 8 to f)-3.848
F .848(all through \(see)-.12 F/F4 12/Times-Bold@0 SF(8F)111.6 570.96 Q
F3 2.243(constraint sho)5.243 F 2.243(wn for path 1 in Figure 30\).)-.3
F 2.243(This contradiction means that path 1)8.243 F .102(cannot e)111.6
599.76 R -.18(xe)-.18 G .102(cute on the \214rst iteration.).18 F -.18
(Pa)6.102 G .102(th 2 has a similar situation.).18 F .102
(Its last block is block)6.102 F 1.856
(9, and its successor that is located outside the loop is block 10.)
111.6 628.56 R 3.777 -.96(To e)7.857 H 1.857(xit the loop by).78 F 1.831
(taking path 2 implies that the branch in block 9 must f)111.6 657.36 R
1.831(all through, b)-.12 F 1.831(ut the preheader)-.24 F .878
(constraint says that it must jump \(see)111.6 686.16 R F4(9J)3.878 E F3
.878(constraint sho)3.878 F .878(wn for path 2 in Figure 30\).)-.3 F(So)
6.879 E(70)319.8 725.04 Q EP
%%Page: 71 73
%%BeginPageSetup
BP
%%EndPageSetup
136.08 430.96 MT 0 -15.12 RL -15.12 0 RL 0 15.12 RL CL .44 LW ST/F0 10
/Times-Bold@0 SF(1)126.452 427.404 Q 136.08 365.44 MT 0 -15.12 RL -15.12
0 RL 0 15.12 RL CL .4 LW ST(1)126.452 362.168 Q 136.08 300.64 MT 0
-15.12 RL -15.12 0 RL 0 15.12 RL CL ST(1)126.452 297.152 Q 136.08 235.84
MT 0 -15.12 RL -15.12 0 RL 0 15.12 RL CL ST(1)126.452 232.136 Q 136.08
171.04 MT 0 -15.12 RL -15.12 0 RL 0 15.12 RL CL ST(1)126.452 167.12 Q
140.184 423.184 136.584 423.184 DL 147.888 423.184 144.288 423.184 DL
155.592 423.184 151.992 423.184 DL 163.296 423.184 159.696 423.184 DL
171 423.184 167.4 423.184 DL 178.704 423.184 175.104 423.184 DL 178.704
423.184 MT -7.2 1.8 RL 0 -3.6 RL CL BL 178.704 423.184 MT -7.2 1.8 RL 0
-3.6 RL CL ST 193.68 430.96 MT 0 -15.12 RL -15.12 0 RL 0 15.12 RL CL ST
251.28 430.96 MT 0 -15.12 RL -15.12 0 RL 0 15.12 RL CL ST 236.088
423.184 193.968 423.184 DL 236.088 423.184 MT -7.2 1.8 RL 0 -3.6 RL CL
BL 236.088 423.184 MT -7.2 1.8 RL 0 -3.6 RL CL ST 293.472 423.184
251.352 423.184 DL 293.472 423.184 MT -7.2 1.8 RL 0 -3.6 RL CL BL
293.472 423.184 MT -7.2 1.8 RL 0 -3.6 RL CL ST 308.88 430.96 MT 0 -15.12
RL -15.12 0 RL 0 15.12 RL CL ST 366.12 423.184 308.736 423.184 DL 366.12
423.184 MT -7.2 1.8 RL 0 -3.6 RL CL BL 366.12 423.184 MT -7.2 1.8 RL 0
-3.6 RL CL ST 381.6 430.96 MT 0 -15.12 RL -15.12 0 RL 0 15.12 RL CL ST
438.768 423.184 381.384 423.184 DL 438.768 423.184 MT -7.2 1.8 RL 0 -3.6
RL CL BL 438.768 423.184 MT -7.2 1.8 RL 0 -3.6 RL CL ST 453.6 430.96 MT
0 -15.12 RL -15.12 0 RL 0 15.12 RL CL ST 515.304 423.184 454.104 423.184
DL 515.304 423.184 MT -7.2 1.8 RL 0 -3.6 RL CL BL 515.304 423.184 MT
-7.2 1.8 RL 0 -3.6 RL CL ST 140.184 358.168 136.584 358.168 DL 147.888
358.168 144.288 358.168 DL 155.592 358.168 151.992 358.168 DL 163.296
358.168 159.696 358.168 DL 171 358.168 167.4 358.168 DL 178.704 358.168
175.104 358.168 DL 178.704 358.168 MT -7.2 1.8 RL 0 -3.6 RL CL BL
178.704 358.168 MT -7.2 1.8 RL 0 -3.6 RL CL ST 193.68 365.44 MT 0 -15.12
RL -15.12 0 RL 0 15.12 RL CL ST 236.088 358.168 193.968 358.168 DL
236.088 358.168 MT -7.2 1.8 RL 0 -3.6 RL CL BL 236.088 358.168 MT -7.2
1.8 RL 0 -3.6 RL CL ST 251.28 365.44 MT 0 -15.12 RL -15.12 0 RL 0 15.12
RL CL ST 293.472 358.168 251.352 358.168 DL 293.472 358.168 MT -7.2 1.8
RL 0 -3.6 RL CL BL 293.472 358.168 MT -7.2 1.8 RL 0 -3.6 RL CL ST 381.6
365.44 MT 0 -15.12 RL -15.12 0 RL 0 15.12 RL CL ST 308.88 365.44 MT 0
-15.12 RL -15.12 0 RL 0 15.12 RL CL ST 366.12 358.168 308.736 358.168 DL
366.12 358.168 MT -7.2 1.8 RL 0 -3.6 RL CL BL 366.12 358.168 MT -7.2 1.8
RL 0 -3.6 RL CL ST 438.768 358.168 381.384 358.168 DL 438.768 358.168 MT
-7.2 1.8 RL 0 -3.6 RL CL BL 438.768 358.168 MT -7.2 1.8 RL 0 -3.6 RL CL
ST 453.6 365.44 MT 0 -15.12 RL -15.12 0 RL 0 15.12 RL CL ST 515.304
358.168 454.104 358.168 DL 515.304 358.168 MT -7.2 1.8 RL 0 -3.6 RL CL
BL 515.304 358.168 MT -7.2 1.8 RL 0 -3.6 RL CL ST 140.184 293.152
136.584 293.152 DL 147.888 293.152 144.288 293.152 DL 155.592 293.152
151.992 293.152 DL 163.296 293.152 159.696 293.152 DL 171 293.152 167.4
293.152 DL 178.704 293.152 175.104 293.152 DL 178.704 293.152 MT -7.2
1.8 RL 0 -3.6 RL CL BL 178.704 293.152 MT -7.2 1.8 RL 0 -3.6 RL CL ST
193.68 300.64 MT 0 -15.12 RL -15.12 0 RL 0 15.12 RL CL ST 251.28 300.64
MT 0 -15.12 RL -15.12 0 RL 0 15.12 RL CL ST 293.472 293.152 251.352
293.152 DL 293.472 293.152 MT -7.2 1.8 RL 0 -3.6 RL CL BL 293.472
293.152 MT -7.2 1.8 RL 0 -3.6 RL CL ST 308.88 300.64 MT 0 -15.12 RL
-15.12 0 RL 0 15.12 RL CL ST 366.12 293.152 308.736 293.152 DL 366.12
293.152 MT -7.2 1.8 RL 0 -3.6 RL CL BL 366.12 293.152 MT -7.2 1.8 RL 0
-3.6 RL CL ST 381.6 300.64 MT 0 -15.12 RL -15.12 0 RL 0 15.12 RL CL ST
438.768 293.152 381.384 293.152 DL 438.768 293.152 MT -7.2 1.8 RL 0 -3.6
RL CL BL 438.768 293.152 MT -7.2 1.8 RL 0 -3.6 RL CL ST 453.6 300.64 MT
0 -15.12 RL -15.12 0 RL 0 15.12 RL CL ST 140.184 228.136 136.584 228.136
DL 147.888 228.136 144.288 228.136 DL 155.592 228.136 151.992 228.136 DL
163.296 228.136 159.696 228.136 DL 171 228.136 167.4 228.136 DL 178.704
228.136 175.104 228.136 DL 178.704 228.136 MT -7.2 1.8 RL 0 -3.6 RL CL
BL 178.704 228.136 MT -7.2 1.8 RL 0 -3.6 RL CL ST 193.68 235.84 MT 0
-15.12 RL -15.12 0 RL 0 15.12 RL CL ST 236.088 228.136 193.968 228.136
DL 236.088 228.136 MT -7.2 1.8 RL 0 -3.6 RL CL BL 236.088 228.136 MT
-7.2 1.8 RL 0 -3.6 RL CL ST 236.088 293.152 193.968 293.152 DL 236.088
293.152 MT -7.2 1.8 RL 0 -3.6 RL CL BL 236.088 293.152 MT -7.2 1.8 RL 0
-3.6 RL CL ST 251.28 235.84 MT 0 -15.12 RL -15.12 0 RL 0 15.12 RL CL ST
140.184 163.048 136.584 163.048 DL 147.888 163.048 144.288 163.048 DL
155.592 163.048 151.992 163.048 DL 163.296 163.048 159.696 163.048 DL
171 163.048 167.4 163.048 DL 178.704 163.048 175.104 163.048 DL 178.704
163.048 MT -7.2 1.8 RL 0 -3.6 RL CL BL 178.704 163.048 MT -7.2 1.8 RL 0
-3.6 RL CL ST 193.68 171.04 MT 0 -15.12 RL -15.12 0 RL 0 15.12 RL CL ST
530.64 430.96 MT 0 -15.12 RL -15.12 0 RL 0 15.12 RL CL ST 530.64 365.44
MT 0 -15.12 RL -15.12 0 RL 0 15.12 RL CL ST 197.568 163.048 193.968
163.048 DL 205.272 163.048 201.672 163.048 DL 212.976 163.048 209.376
163.048 DL 220.68 163.048 217.08 163.048 DL 228.384 163.048 224.784
163.048 DL 236.088 163.048 232.488 163.048 DL 236.088 163.048 MT -7.2
1.8 RL 0 -3.6 RL CL BL 236.088 163.048 MT -7.2 1.8 RL 0 -3.6 RL CL ST
254.952 228.136 251.352 228.136 DL 262.656 228.136 259.056 228.136 DL
270.36 228.136 266.76 228.136 DL 278.064 228.136 274.464 228.136 DL
285.768 228.136 282.168 228.136 DL 293.472 228.136 289.872 228.136 DL
293.472 228.136 MT -7.2 1.8 RL 0 -3.6 RL CL BL 293.472 228.136 MT -7.2
1.8 RL 0 -3.6 RL CL ST 308.88 235.84 MT 0 -15.12 RL -15.12 0 RL 0 15.12
RL CL ST 251.28 171.04 MT 0 -15.12 RL -15.12 0 RL 0 15.12 RL CL ST(8)
183.836 427.184 Q(9)241.22 427.184 Q(2)298.604 427.184 Q(4)371.252
427.184 Q(6)443.972 427.184 Q({4J,8F)138.017 411.92 Q(,9J})-.92 E
({4J,8F)107.417 400.4 Q(,9J})-.92 E({4J,8F)164.801 400.4 Q(,9J})-.92 E
({4J,8F)195.401 411.92 Q(,9J})-.92 E({4J,8F)222.185 400.4 Q(,9J})-.92 E
({4J,8F)252.785 411.92 Q(,9J})-.92 E({4J,8F)279.569 400.4 Q(,9J})-.92 E
({2J,4J,8F)311.551 411.92 Q(,9J})-.92 E({2J,4J,8F)345.967 400.4 Q(,9J})
-.92 E({2J,4J,8F)384.271 411.92 Q(,9J})-.92 E({2J,4F)418.592 400.4 Q
(,8F)-.92 E(,9J})-.92 E({2J,4F)456.824 411.92 Q(,8F)-.92 E(,9J})-.92 E
({4J,8F)138.017 346.904 Q(,9J})-.92 E({4J,8F)111.233 335.384 Q(,9J})-.92
E(8)183.836 362.168 Q({4J,8F)164.801 335.384 Q(,9J})-.92 E({4J,8F)
195.401 346.904 Q(,9J})-.92 E({4J,8F)222.185 335.384 Q(,9J})-.92 E(9)
241.22 362.168 Q({4J,8F)252.785 346.904 Q(,9J})-.92 E({4J,8F)279.569
335.384 Q(,9J})-.92 E(2)298.604 362.168 Q(4)371.252 362.168 Q({2J,4J,8F)
311.551 346.904 Q(,9J})-.92 E({2J,4J,8F)345.967 335.384 Q(,9J})-.92 E(5)
443.972 362.168 Q(in)397.576 346.904 Q -.1(va)-.4 G(lid).1 E(8)183.836
297.152 Q(9)241.22 297.152 Q(2)298.604 297.152 Q({4J,8F)138.017 281.816
Q(,9J})-.92 E({4J,8F)111.233 270.368 Q(,9J})-.92 E({4J,8F)164.801
270.368 Q(,9J})-.92 E({4J,8F)195.401 281.816 Q(,9J})-.92 E({4J,8F)
222.185 270.368 Q(,9J})-.92 E({4J,8F)252.785 281.816 Q(,9J})-.92 E
({4J,8F)279.569 270.368 Q(,9J})-.92 E(3)371.252 297.152 Q({2F)311.456
281.816 Q(,4J,8F)-.92 E(,9J})-.92 E({2F)345.967 270.368 Q(,4J,8J,9J})
-.92 E({2F)384.271 281.816 Q(,4J,8J,9J})-.92 E(7)443.972 297.152 Q
({4J,8J})431.282 270.368 Q({4J,8F)138.017 216.8 Q(,9J})-.92 E({4J,8F)
111.233 205.352 Q(,9J})-.92 E({4J,8F)164.801 205.352 Q(,9J})-.92 E
({4J,8F)195.401 216.8 Q(,9J})-.92 E(8)183.836 232.136 Q(9)241.22 232.136
Q({4J,8F)222.185 205.352 Q(,9J})-.92 E(8)183.836 167.12 Q({4J,8F)138.017
151.784 Q(,9J})-.92 E({4J,8F)111.233 140.336 Q(,9J})-.92 E({4J,8F)
164.801 140.336 Q(,9J})-.92 E(7)520.436 427.184 Q(7)520.436 362.168 Q
({4F)507.096 400.4 Q(,8F})-.92 E(path 1:)110.192 125 Q(path 2:)110.192
190.016 Q(path 3:)110.192 255.104 Q(path 4:)110.192 320.12 Q(path 5:)
106.304 385.136 Q(10)238.72 167.12 Q(10)296.104 232.136 Q(in)259.84
216.8 Q -.1(va)-.4 G(lid).1 E(in)198.64 151.784 Q -.1(va)-.4 G(lid).1 E
/F1 12/Times-Roman@0 SF(Figure 30: Propag)183.012 454 Q
(ating Preheader Constraints for Figure 21)-.06 E
(the timing analyzer concludes that path 2 cannot e)111.6 490.48 Q -.18
(xe)-.18 G(cute on the \214rst iteration as well.).18 E -.18(Fo)126.6
519.28 S 3.456(rt).18 G .456(hose paths that cannot e)-3.456 F -.18(xe)
-.18 G .455(cute on the \214rst iteration, the ne).18 F .455
(xt step is to determine)-.18 F 1.084
(on which iteration it can \214rst be tak)111.6 548.08 R 4.084(en. T)
-.12 F 1.085(able 17 sho)-.96 F 1.085(ws a P)-.3 F 1.085
(ath Distance matrix for the)-.18 F -.18(ex)111.6 576.88 S .334
(ample loop in Figure 21 that is deri).18 F -.18(ve)-.3 G 3.334(df).18 G
.334(rom the Can F)-3.334 F(ollo)-.18 E 3.334(wm)-.3 G .333(atrix gi)
-3.334 F -.18(ve)-.3 G 3.333(ni).18 G 3.333(nT)-3.333 G .333(able 15.)
-4.293 F 1.704(The table entries containing)111.6 605.68 R/F2 12/Symbol
SF4.704 E F1 1.704
(indicate that it is impossible for one path to reach the)4.704 F 2.692
(other path.)111.6 634.48 R -.18(Fo)8.692 G 5.692(rp).18 G 2.692
(aths that cannot e)-5.692 F -.18(xe)-.18 G 2.691
(cute on the \214rst iteration, the timing analyzer).18 F 1.195
(determines on which iteration it can e)111.6 663.28 R -.18(xe)-.18 G
1.195(cute as follo).18 F 4.196(ws. Let)-.3 F/F3 12/Times-Italic@0 SF(P)
4.196 E F1 1.196(be the set of paths that)4.196 F(71)319.8 725.04 Q EP
%%Page: 72 74
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF -.96(Ta)217.884 115.6 S(ble 17: P).96 E
(ath Distance Matrix for Figure 21)-.18 E .56 LW 476.18 129.62 175.419
129.62 DL/F1 14/Helvetica@0 SF 17.108(Current Ho)182.419 143.4 R 3.892
(wM)-.21 G(an)-3.892 E 3.892(yI)-.21 G(ter)-3.892 E(ations to Reach P)
-.14 E(ath)-.56 E -.56(Pa)184.246 157.8 S 476.18 154.3 240.595 154.3 DL
(th in)200.808 157.8 Q 34.494(Loop 1)190.189 172.2 R 40.233(2345)40.233
G 476.18 179.14 175.419 179.14 DL(1)201.865 191.48 Q/F2 14/Symbol SF
38.03548.963 G F1(2)201.865 205.88 Q F2 38.035
48.963 G F1 50.062(31)201.865 220.28 S F2 38.035-10.928 G F1
50.062(42)201.865 234.68 S 40.233(1121)-9.829 G 50.062(52)201.865 249.08
S 40.233(1112)-9.829 G 476.18 254.58 175.419 254.58 DL 431.663 154.3
431.663 254.58 DL 383.646 154.3 383.646 254.58 DL 335.629 154.3 335.629
254.58 DL 287.612 154.3 287.612 254.58 DL 238.595 129.62 238.595 254.58
DL 240.595 129.62 240.595 254.58 DL 476.18 129.62 476.18 254.58 DL
175.419 129.62 175.419 254.58 DL F0 .298(can e)111.6 279.68 R -.18(xe)
-.18 G .298(cute on the \214rst iteration, and let).18 F/F3 12
/Times-Italic@0 SF(Q)3.297 E F0 .297(be the set of paths that cannot.)
3.297 F -.18(Fo)6.297 G 3.297(re).18 G .297(ach path)-3.297 F F3(q)111.6
308.48 Q F0(in)4.143 E F3(Q)4.143 E F0 4.143(,t)C 1.144
(he timing analyzer \214nds the shortest number of iterations to reach)
-4.143 F F3(q)4.144 E F0 1.144(from an)4.144 F(y)-.18 E .403(path in)
111.6 337.28 R F3(P)3.403 E F0 6.403(.T)C .403(his shortest distance pl\
us 1 represents the \214rst iteration on which path)-6.403 F F3(q)3.402
E F0(can)3.402 E -.18(exe)111.6 366.08 S 3.254(cute. Continuing).18 F
.254(with the e)3.254 F .254
(xample from Figure 21, path 4 belongs to the set)-.18 F F3(Q)3.255 E F0
6.255(.P)C(ath)-6.435 E 3.354(5i)111.6 394.88 S 3.354(sap)-3.354 G .353
(ath in)-3.354 F F3(P)3.353 E F0 3.353(,a)C .353(nd according to T)
-3.353 F .353(able 17 the path distance from path 5 to path 4 is one)
-.96 F 4.201(iteration. So)111.6 423.68 R 1.202
(the timing analyzer concludes that path 4 can \214rst e)4.201 F -.18
(xe)-.18 G 1.202(cute on the second).18 F 1.353
(iteration, and the range of possible iterations becomes [2..1000].)
111.6 452.48 R(Similarly)7.352 E 4.352(,t)-.78 G 1.352(he timing)-4.352
F 2.476(analyzer determined that e)111.6 481.28 R 2.476
(xit paths 1 and 2 could not e)-.18 F -.18(xe)-.18 G 2.477
(cute on the \214rst iteration.).18 F(Ho)111.6 510.08 Q(we)-.3 E -.18
(ve)-.3 G 1.157 -.48(r, t).18 H .196(he path distances from path 3 to p\
ath 1 and from path 5 to path 2 are both one).48 F .751
(iteration as indicated in T)111.6 538.88 R .752(able 17.)-.96 F .752
(Since both path 3 and path 5 can e)6.752 F -.18(xe)-.18 G .752
(cute on the \214rst).18 F 1.458(iteration, paths 1 and 2 can \214rst e)
111.6 567.68 R -.18(xe)-.18 G 1.458
(cute on the second iteration of the loop.).18 F -.18(Fo)7.458 G 4.458
(rb).18 G(est)-4.458 E .719(case analysis, their ranges of possible ite\
rations are adjusted to [2..2] as sho)111.6 596.48 R .72(wn in T)-.3 F
(able)-.96 E 5.066(14. Their)111.6 625.28 R -.12(wo)5.066 G 2.066
(rst-case possible iterations are not updated since the).12 F 5.066(yh)
-.18 G 2.066(ad already been)-5.066 F
(determined to be [1001..1001] in T)111.6 654.08 Q(able 13.)-.96 E 2.258
(The timing analyzer enforces a rule that if an)126.6 682.88 R 5.258(ye)
-.18 G 2.259(xit path can e)-5.438 F -.18(xe)-.18 G 2.259
(cute on the \214rst).18 F(72)319.8 725.04 Q EP
%%Page: 73 75
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF .495(iteration, then it must allo)111.6 96.4 R
3.495(wa)-.3 G .495(ll e)-3.495 F .495
(xit paths to be chosen for the \214rst iteration.)-.18 F .495
(The reason)6.495 F .378(for this rule is that in best case, the BCET i\
s assumed to occur for the minimum number)111.6 125.2 R 1.146
(of iterations.)111.6 154 R 1.146(Consider a loop ha)7.146 F 1.146
(ving tw)-.24 F 4.146(op)-.12 G 1.145(aths, where only path 1 can e)
-4.146 F -.18(xe)-.18 G 1.145(cute on the).18 F 1.606
(\214rst iteration, b)111.6 182.8 R 1.606
(ut path 2 is signi\214cantly shorter)-.24 F 7.606(.T)-.66 G 1.607
(hen the loop may tak)-7.606 F 4.607(el)-.12 G 1.607(ess time to)-4.607
F -.18(exe)111.6 211.6 S .249(cute path 2 for tw).18 F 3.249(oi)-.12 G
.249(terations than to e)-3.249 F -.18(xe)-.18 G .249
(cute path 1 for just one iteration.).18 F .249(The author)6.249 F
(belie)111.6 240.4 Q -.18(ve)-.3 G 5.193(st).18 G 2.194
(hat requiring the best-case loop analysis algorithm to repeatedly e)
-5.193 F 2.194(xamine a)-.18 F 3.2(loop for v)111.6 269.2 R 3.2
(arying numbers of iterations w)-.3 F 3.2(ould be o)-.12 F -.18(ve)-.18
G 3.199(rly inef).18 F 6.199(\214cient. Specifying)-.3 F(the)6.199 E
1.11(minimum number of iterations before starting loop analysis mak)
111.6 298 R 1.111(es the algorithm much)-.12 F 2.499
(simpler and only slightly more conserv)111.6 326.8 R(ati)-.3 E 2.859
-.18(ve i)-.3 H 5.499(nt).18 G 2.499(his highly unlik)-5.499 F 2.499
(ely scenario.)-.12 F 2.499(In the)8.499 F(abo)111.6 355.6 Q 1.698 -.18
(ve s)-.18 H 1.338(cenario, the timing analyzer will mak).18 F 4.338(et)
-.12 G 1.338(he conserv)-4.338 F(ati)-.3 E 1.698 -.18(ve a)-.3 H 1.338
(ssumption that path 2).18 F(can e)111.6 384.4 Q -.18(xe)-.18 G(cute on\
the \214rst iteration, and that the minimum number of iterations is st\
ill one.).18 E 2.186(If it turns out that no e)126.6 413.2 R 2.186
(xit path can e)-.18 F -.18(xe)-.18 G 2.185
(cute on the \214rst iteration, then the timing).18 F .955(analyzer upd\
ates the number of iterations of the loop based on when the e)111.6 442
R .956(xit paths can)-.18 F -.18(exe)111.6 470.8 S 3.504(cute. In).18 F
.504(the e)3.504 F .504(xample from Figure 21, both e)-.18 F .504
(xit paths can only e)-.18 F -.18(xe)-.18 G .504(cute on the second).18
F .112(iteration, so the timing analyzer sets the minimum number of ite\
rations to 2, e)111.6 499.6 R -.18(ve)-.3 G 3.113(nt).18 G(hough)-3.113
E 1.506(the compiler had pre)111.6 528.4 R 1.505
(viously determined, before this path analysis w)-.3 F 1.505
(as performed, that)-.12 F(the minimum number of iterations w)111.6
557.2 Q(ould ha)-.12 E .36 -.18(ve b)-.24 H(een 1 [31].).18 E .634(The \
total number of iterations of the loop may also be updated in the case \
where the)126.6 586 R 2.371(user is prompted to enter information from \
which the timing analyzer computes the)111.6 614.8 R 3.829
(number of iterations.)111.6 643.6 R 3.829(If the user pro)9.829 F 3.829
(vides unrealistic v)-.18 F 3.829(alues, then the number of)-.3 F .437
(iterations based on the user')111.6 672.4 R 3.436(si)-.66 G .436
(nformation may be too small, and updating the number of)-3.436 F(73)
319.8 725.04 Q EP
%%Page: 74 76
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 1.112(iterations w)111.6 96.4 R 1.112
(ould be appropriate.)-.12 F 1.112(But the situation of ha)7.112 F 1.113
(ving to updating the number of)-.24 F 1.64
(iterations is quite rare, only occurring when the number of paths e)
111.6 125.2 R 1.64(xceeds the original)-.18 F
(number of loop iterations.)111.6 154 Q 3(5.2.4 Using)111.6 192.88 R .48
LW 304.92 195.88 111.6 195.88 DL(Iteration-Based Constraints)173.268
192.88 Q 4.645(The maximum number of iterations can sometimes be constr\
ained by analyzing)111.6 228.88 R .262(iteration-based constraints.)
111.6 257.68 R .262
(The header block is assigned a range that spans all iterations)6.262 F
4.219(of the loop.)111.6 286.48 R 4.219(This range is propag)10.219 F
4.219(ated through each path.)-.06 F 4.22(When a transition is)10.22 F
4.467(encountered that has an iteration-based constraint, the range in \
the constraint is)111.6 315.28 R 1.863
(intersected with the range in the current block in the path.)111.6
344.08 R 1.864(Figure 31 illustrates ho)7.864 F(w)-.3 E .321
(iteration-based constraints are propag)111.6 372.88 R .321
(ated through path 4 in Figure 23\(d\).)-.06 F .32(The transition)6.32 F
.804(from block 3 \()111.6 401.68 R/F1 12/Courier@0 SF(i<=249)A F0 3.804
(\)t)C 3.804(ob)-3.804 G .804
(lock 4 results in the range [1..1000] being intersected with)-3.804 F
.753([251..1000], which is the range speci\214ed in constraint 5 of Fig\
ure 23\(c\).)111.6 430.48 R .753(The transition)6.753 F 2.042
(from block 4 \()111.6 459.28 R F1(i>=750)A F0 5.042(\)t)C 5.042(ob)
-5.042 G 2.043(lock 5 results in the current range of [251..1000] being)
-5.042 F .012(intersected with [1..750].)111.6 488.08 R .012
(Thus, path 4 can only possibly e)6.012 F -.18(xe)-.18 G .012
(cute in iterations [251..750].).18 F 2.243(If a path can only be e)
126.6 516.88 R -.18(xe)-.18 G 2.243(cuted in a gi).18 F -.18(ve)-.3 G
5.243(nr).18 G 2.244(ange of iterations, then the maximum)-5.243 F .585
(iterations in which that path can e)111.6 545.68 R -.18(xe)-.18 G .584
(cute cannot be greater than the number of iterations).18 F 168.12
617.36 MT 0 -15.84 RL -16.56 0 RL 0 15.84 RL CL .44 LW ST 216.36 609.224
167.76 609.224 DL 216.36 609.224 MT -7.2 1.8 RL 0 -3.6 RL CL BL 216.36
609.224 MT -7.2 1.8 RL 0 -3.6 RL CL ST 232.92 617.36 MT 0 -15.84 RL
-16.56 0 RL 0 15.84 RL CL ST 289.224 609.224 232.56 609.224 DL 289.224
609.224 MT -7.2 1.8 RL 0 -3.6 RL CL BL 289.224 609.224 MT -7.2 1.8 RL 0
-3.6 RL CL ST 305.64 617.36 MT 0 -15.84 RL -16.56 0 RL 0 15.84 RL CL ST
354.096 609.224 305.496 609.224 DL 354.096 609.224 MT -7.2 1.8 RL 0 -3.6
RL CL BL 354.096 609.224 MT -7.2 1.8 RL 0 -3.6 RL CL ST 370.44 617.36 MT
0 -15.84 RL -16.56 0 RL 0 15.84 RL CL ST 418.824 609.224 370.296 609.224
DL 418.824 609.224 MT -7.2 1.8 RL 0 -3.6 RL CL BL 418.824 609.224 MT
-7.2 1.8 RL 0 -3.6 RL CL ST 435.24 617.36 MT 0 -15.84 RL -16.56 0 RL 0
15.84 RL CL ST 483.696 609.224 435.096 609.224 DL 483.696 609.224 MT
-7.2 1.8 RL 0 -3.6 RL CL BL 483.696 609.224 MT -7.2 1.8 RL 0 -3.6 RL CL
ST 500.04 617.36 MT 0 -15.84 RL -16.56 0 RL 0 15.84 RL CL ST/F2 10
/Times-Bold@0 SF(2)157.124 613.732 Q(3)221.996 613.512 Q(4)294.86
613.512 Q(5)359.66 613.512 Q(6)424.46 613.512 Q(7)489.26 613.512 Q
([251..1000])237.598 601.344 Q([1..1000])173.766 601.344 Q([251..750])
308.93 601.344 Q([251..750])373.73 601.344 Q([251..750])438.53 601.344 Q
([1..1000])157.566 589.176 Q([1..1000])206.166 589.176 Q([251..1000])
274.03 589.176 Q([251..750])341.33 589.176 Q([251..750])410.162 589.176
Q([251..750])462.866 589.176 Q F0
(Figure 31: Iteration-Based Constraints Propag)135.6 640.4 Q
(ated Through P)-.06 E(ath 4 in Figure 23)-.18 E(74)319.8 725.04 Q EP
%%Page: 75 77
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF .174(in the range.)111.6 96.4 R 3.174(Ap)6.174 G
.175(ath with no possible iterations is infeasible and is remo)-3.174 F
-.18(ve)-.18 G 3.175(df).18 G .175(rom the list)-3.175 F .973
(of paths by the timing analyzer)111.6 125.2 R 6.973(.N)-.66 G .973
(ote that the range of a path that only e)-6.973 F .972(xits is al)-.18
F -.12(wa)-.12 G(ys).12 E 2.674(the last iteration of the loop, which i\
s the case for paths 1 and 2 of Figure 21\(d\).)111.6 154 R(Lik)111.6
182.8 Q -.3(ew)-.12 G 2.49
(ise, if path A cannot reach itself and can only be immediately follo).3
F 2.49(wed by a)-.3 F(dif)111.6 211.6 Q .151
(ferent path B, which has a range [Bmin..Bmax], then path A)-.3 F 1.471
-.66('s r)-1.332 H .151(ange cannot span more).66 F 2.697(than [Bmin)
111.6 240.4 R/F1 12/Symbol SF(-)A F0(1..Bmax)A F1(-)A F0 5.697(1]. F)B
2.697(or instance, T)-.18 F 2.697(able 15 sho)-.96 F 2.697
(ws that path 3 of Figure 21\(d\))-.3 F(al)111.6 269.2 Q -.12(wa)-.12 G
1.907(ys leads to path 1, which has an iteration range of [1001..1001].)
.12 F 1.908(Thus, path 3')7.907 F(s)-.66 E
(possible range of iterations is [1001)111.6 298 Q F1(-)A F0(1..1001)A
F1(-)A F0(1] or [1000..1000] for WCET analysis.)A .956(The minimum numb\
er of iterations of a path is calculated by simply subtracting the)126.6
326.8 R 2.097(possible range of iterations of all other paths in the lo\
op from the possible range of)111.6 355.6 R 1.21
(iterations for the current path.)111.6 384.4 R 1.209
(The result is the unique set of iterations for the current)7.21 F .696
(path, which is the minimum number of times that the path has to e)111.6
413.2 R -.18(xe)-.18 G 3.696(cute. There).18 F .696(is one)3.696 F -.18
(ex)111.6 442 S 3.201(ception to this rule.).18 F 3.2
(Consider path 1 in Figure 23\(d\).)9.201 F 3.2(Its maximum number of)
9.2 F .364(iterations is one due to constraint 3 \()111.6 470.8 R/F2 12
/Times-Bold@0 SF .364(2J once)B F0 3.364(\)i)C 3.364(nF)-3.364 G .364
(igure 23\(c\).)-3.364 F .364(The timing analyzer does)6.364 F 1.292
(not reduce the range of unique iterations of the other paths, b)111.6
499.6 R 1.292(ut does indicate that one)-.24 F
(iteration in these paths may not be unique.)111.6 528.4 Q 3
(5.2.5 Using)111.6 567.28 R .48 LW 331.272 570.28 111.6 570.28 DL
(the Constraints in Loop Analysis)173.268 567.28 Q 1.315(The author dec\
ided to use the minimum and maximum iterations associated with each)
111.6 603.28 R 1.033(loop path to obtain tighter loop predictions witho\
ut restricting the order in which these)111.6 632.08 R .7(paths are e)
111.6 660.88 R -.3(va)-.3 G 3.7(luated. There).3 F .7(were se)3.7 F -.18
(ve)-.3 G .701(ral reasons wh).18 F 3.701(yt)-.06 G .701(his approach w)
-3.701 F .701(as used.)-.12 F .701(First, the)6.701 F 1.532
(approach supports paths that can e)111.6 689.68 R -.18(xe)-.18 G 1.531
(cute at most once, b).18 F 1.531(ut in an)-.24 F 4.531(yi)-.18 G 4.531
(teration. Consider)-4.531 F(75)319.8 725.04 Q EP
%%Page: 76 78
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 2.745(path 1 of the loop in Figure 23.)111.6
96.4 R 2.746(This situation may occur frequently in numerical)8.745 F
7.378(applications. F)111.6 125.2 R 4.378
(or instance, special conditions are often check)-.18 F 4.377
(ed for the diagonal)-.12 F 1.955
(elements of a matrix \(diagonal systems\).)111.6 154 R 1.955
(Second, the approach deals with paths that)7.955 F(ha)111.6 182.8 Q
.421 -.18(ve d)-.24 H .061
(ependencies on other paths, such as paths 4 and 5 in Figure 21.).18 F
(Finally)6.06 E 3.06(,t)-.78 G .06(he timing)-3.06 F 2.437
(analyzer often calculates an a)111.6 211.6 R -.18(ve)-.24 G 2.438
(rage WCET and BCET for a loop using an a).18 F -.18(ve)-.24 G(rage).18
E .317(number of iterations when the number of iterations can v)111.6
240.4 R .317(ary depending on the v)-.3 F .316(alue of a)-.3 F 1.545
(outer loop counter v)111.6 269.2 R 1.545(ariable [31].)-.3 F 1.545
(Using this approach allo)7.545 F 1.546(ws the calculation of a safe)-.3
F -2.7 -.24(av e)111.6 298 T 3.519(rage WCET \(BCET\) since the longest\
\(shortest\) paths are selected \214rst in the).24 F(respecti)111.6
326.8 Q .36 -.18(ve l)-.3 H(oop analysis algorithms.).18 E .088(In addi\
tion, the timing analyzer determines sets of paths, where the range of \
iterations)126.6 355.6 R .786(of the paths in one set do not o)111.6
384.4 R -.18(ve)-.18 G .785(rlap with other sets.).18 F .785
(Each path is assigned to a single)6.785 F 1.413(set of paths.)111.6
413.2 R 1.414
(The timing analyzer uses the maximum number of iterations that can be)
7.413 F -.18(exe)111.6 442 S .38
(cuted by a set of paths, which is the number of iterations in the set')
.18 F 3.379(sr)-.66 G 3.379(ange. T)-3.379 F .379(able 18)-.96 F 2.646
(depicts an e)111.6 470.8 R 2.647(xample with 4 paths and 2 sets.)-.18 F
2.647(Each set of paths can only e)8.647 F -.18(xe)-.18 G 2.647(cute a)
.18 F .779(maximum of 50 iterations.)111.6 499.6 R .778
(If only the maximum iterations of each path w)6.779 F .778
(as used, then)-.12 F(tw)111.6 528.4 Q 3.353(op)-.12 G .353
(aths from a single set could be selected and a signi\214cant o)-3.353 F
-.18(ve)-.18 G .354(restimation may occur).18 F -.96(Ta)211.878 554.8 S
(ble 18: Example Illustrating Use of P).96 E(ath Sets)-.18 E .52 LW
446.121 568.57 205.478 568.57 DL/F1 13/Helvetica@0 SF -.65(Po)260.26
579.72 S(ssib).65 E 20.618(le Min)-.26 F(Max)22.035 E(Iter)257.699
594.12 Q 15.886(ations Iters Iters)-.13 F -.52(Pa)211.978 586.92 S
178.295(th Set).52 F 446.121 600.81 205.478 600.81 DL 37.596(1[)221.474
613.4 S 33.514(1..50] 0)-37.596 F 27.443(50 1)33.943 F 37.596(2[)221.474
627.8 S 33.514(1..50] 0)-37.596 F 27.443(50 1)33.943 F 30.368(3[)221.474
642.2 S 26.286(51..100] 0)-30.368 F 27.443(50 2)33.943 F 30.368(4[)
221.474 656.6 S 26.286(51..100] 0)-30.368 F 27.443(50 2)33.943 F 446.121
661.85 205.478 661.85 DL 410.358 568.57 410.358 661.85 DL 365.573 568.57
365.573 661.85 DL 320.788 568.57 320.788 661.85 DL 247.949 568.57
247.949 661.85 DL 446.121 568.57 446.121 661.85 DL 205.478 568.57
205.478 661.85 DL F0(76)319.8 725.04 Q EP
%%Page: 77 79
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF .382(when the paths in one set require man)111.6
96.4 R 3.382(ym)-.18 G .382(ore c)-3.382 F .382
(ycles than the paths in the other set.)-.18 F(This)6.381 E 1.419
(approach has limitations.)111.6 125.2 R 1.42
(Consider if a \214fth path e)7.419 F 1.42(xisted in this e)-.18 F 1.42
(xample which could)-.18 F -.18(exe)111.6 154 S .595(cute in an).18 F
3.595(yi)-.18 G .595(teration of the loop.)-3.595 F .594
(All of the loop paths w)6.594 F .594(ould be assigned to a single)-.12
F .288(set, which could result in an conserv)111.6 182.8 R(ati)-.3 E
.648 -.18(ve t)-.3 H .288(iming prediction.).18 F -.18(Fo)6.288 G
(rtunately).18 E 3.288(,i)-.78 G .288(nequality tests)-3.288 F .479
(\(<, <=, >=, >\) on loop induction v)111.6 211.6 R .479
(ariables do not occur frequently)-.3 F 6.479(.T)-.78 G .479(he tw)
-6.479 F 3.479(os)-.12 G(ubsections)-3.479 E 1.273(that follo)111.6
240.4 R 4.273(wd)-.3 G 1.273(escribe the w)-4.273 F 1.273
(orst-case and best-case loop analysis algorithms that emplo)-.12 F(y)
-.12 E(the path constraint information.)111.6 269.2 Q 3(5.2.6 W)111.6
308.08 R .48 LW 269.628 311.08 111.6 311.08 DL(orst Case Loop Analysis)
151.968 308.08 Q 3.363(Figure 32 sho)111.6 344.08 R 3.363(ws ho)-.3 F
6.363(wt)-.3 G 3.363
(he WCET loop analysis algorithm uses the path constraint)-6.363 F 3.54
(information. Let)111.6 372.88 R/F1 12/Times-Italic@0 SF(N)3.54 E F0
.541(be the maximum number of iterations and)3.54 F F1(P)3.541 E F0 .541
(be the number of paths)3.541 F .277(in a loop.)111.6 401.68 R .277
(The DO-WHILE will process at most the minimum of)6.277 F F1(N)3.277 E
F0 .276(or 2)3.276 F F1(P)A F0 .276(total iterations)3.276 F 4.13(since\
the \214rst misses and \214rst hits in each path can miss or hit at mo\
st once,)111.6 430.48 R(respecti)111.6 459.28 Q -.18(ve)-.3 G(ly).18 E
(.)-.78 E/F2 10/Times-Roman@0 SF(6)-6 I F0 1.319(The algorithm selects \
the longest path on each iteration of the loop from the set of)126.6
488.08 R 2.5(paths that can still possibly e)111.6 516.88 R -.18(xe)-.18
G 5.5(cute. In).18 F 2.499(order to demonstrate the correctness of the)
5.5 F .055(algorithm, one must sho)111.6 545.68 R 3.055(wt)-.3 G .055
(hat no other path for a gi)-3.055 F -.18(ve)-.3 G 3.056(ni).18 G .056
(teration of the loop will produce)-3.056 F 3.966(al)111.6 574.48 S .966
(onger w)-3.966 F .966
(orst-case time than that path selected by the algorithm.)-.12 F .965
(Descriptions of ho)6.965 F(w)-.3 E 1.443(the caching cate)111.6 603.28
R 1.443
(gorizations and pipeline information are used in the loop analysis and)
-.18 F 1.487(correctness ar)111.6 632.08 R 1.487
(guments about selecting the longest path using these cate)-.216 F 1.486
(gorizations and)-.18 F 1.386(information ha)111.6 660.88 R 1.746 -.18
(ve b)-.24 H 1.386(een gi).18 F -.18(ve)-.3 G 4.386(ni).18 G 4.386(np)
-4.386 G(re)-4.386 E 1.386(vious w)-.3 F 1.386(ork [25, 26].)-.12 F
1.386(Thus, it remains to be sho)7.386 F(wn)-.3 E .32 LW 115.6 670.48
111.6 670.48 DL 119.6 670.48 115.6 670.48 DL 123.6 670.48 119.6 670.48
DL 127.6 670.48 123.6 670.48 DL 131.6 670.48 127.6 670.48 DL 135.6
670.48 131.6 670.48 DL 139.6 670.48 135.6 670.48 DL 143.6 670.48 139.6
670.48 DL 147.6 670.48 143.6 670.48 DL 151.6 670.48 147.6 670.48 DL
155.6 670.48 151.6 670.48 DL 159.6 670.48 155.6 670.48 DL 163.6 670.48
159.6 670.48 DL 167.6 670.48 163.6 670.48 DL 171.6 670.48 167.6 670.48
DL 175.6 670.48 171.6 670.48 DL 179.6 670.48 175.6 670.48 DL 183.6
670.48 179.6 670.48 DL 187.6 670.48 183.6 670.48 DL 191.6 670.48 187.6
670.48 DL 195.6 670.48 191.6 670.48 DL 199.6 670.48 195.6 670.48 DL
203.6 670.48 199.6 670.48 DL 207.6 670.48 203.6 670.48 DL 211.6 670.48
207.6 670.48 DL 215.6 670.48 211.6 670.48 DL 219.6 670.48 215.6 670.48
DL 223.6 670.48 219.6 670.48 DL 227.6 670.48 223.6 670.48 DL 231.6
670.48 227.6 670.48 DL 235.6 670.48 231.6 670.48 DL 239.6 670.48 235.6
670.48 DL 243.6 670.48 239.6 670.48 DL 247.6 670.48 243.6 670.48 DL
251.6 670.48 247.6 670.48 DL 255.6 670.48 251.6 670.48 DL/F3 6
/Times-Roman@0 SF(6)133.2 676.092 Q/F4 8/Times-Roman@0 SF .162
(If the number of paths within a loop e)2.162 4 N .162
(xceeds a reasonable limit, then the loop control \215o)-.12 F 2.161(wi)
-.2 G 2.161(sp)-2.161 G .161(artitioned to reduce the timing)-2.161 F
(analysis comple)111.6 689.692 Q(xity [30].)-.12 E F0(77)319.8 725.04 Q
EP
%%Page: 78 80
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Courier@0 SF(/*)163.8 104.4 Q/F1 10/Times-Roman@0 SF
(calculate required and non-required path information)6 E F0(*/)6 E
(req_iters = 0.)163.8 114.8 Q/F2 10/Courier-Bold@0 SF(FOR)163.8 125.2 Q
F0 6(P=e)6 G(ach path in the loop)-6 E F2(DO)6 E F0
(P->req_iters = P->min_iters.)181.8 135.6 Q
(P->nonreq_iters = P->max_iters - P->min_iters.)181.8 146 Q
(req_iters += P->min_iters.)181.8 156.4 Q(nonreq_iters =)163.8 166.8 Q
/F3 10/Times-Italic@0 SF(N)6 E F0 6(-r)6 G(eq_iters.)-6 E(/*)163.8 182.4
Q F1(process all iterations of the loop)6 E F0(*/)6 E
(iters_handled = 0.)163.8 192.8 Q(pipeline_info = NULL.)163.8 203.2 Q F2
(WHILE)163.8 213.6 Q F0(iters_handled <)6 E F3(N)6 E F2(DO)6 E F0(/*)
181.8 229.2 Q F1
(process iters while longest path has a \214rst miss or \214rst hit)6 E
F0(*/)6 E F2(DO)181.8 239.6 Q(IF)199.8 250 Q F0(req_iters <)6 E F3(N)6 E
F0 6(-i)6 G(ters_handled)-6 E F2(THEN)6 E F0(Find longest path P where)
217.8 260.4 Q(P->req_iters+P->nonreq_iters > 0 &&)235.8 270.8 Q
(P->set.maxiters > 0.)235.8 281.2 Q F2(ELSE)199.8 291.6 Q F0
(Find longest path P where)217.8 302 Q(P->req_iters > 0 &&)235.8 312.4 Q
(P->set.maxiters > 0.)235.8 322.8 Q
(Concatenate pipeline_info with the current)199.8 333.2 Q
(worst-case union of executable paths.)217.8 343.6 Q
(iters_handled += 1.)199.8 354 Q F2(IF)199.8 364.4 Q F0
(P->req_iters > 0)6 E F2(THEN)6 E F0(P->req_iters -= 1.)217.8 374.8 Q
(req_iters -= 1.)217.8 385.2 Q F2(ELSE)199.8 395.6 Q F0
(P->nonreq_iters -= 1.)217.8 406 Q(nonreq_iters -= 1.)217.8 416.4 Q
(P->set.maxiters -= 1.)199.8 426.8 Q F2(WHILE)181.8 437.2 Q F0
(encountered a first miss or first hit)6 E F2(AND)217.8 447.6 Q F0
(iters_handled <)6 E F3(N)6 E F0(/*)181.8 463.2 Q F1(Ef)6 E
(\214ciently process iterations for the current longest path)-.25 E F0
(*/)6 E F2(IF)181.8 473.6 Q F0(iters_handled <)6 E F3(N)6 E F2(THEN)6 E
F0(nonreq_iters_to_do =)199.8 484 Q(min\(nonreq_iters, P->nonreq_iters,)
217.8 494.4 Q(P->set.maxiters - P->req_iters\).)241.8 504.8 Q
(iters_to_do = P->req_iters + nonreq_iters_to_do.)199.8 515.2 Q
(req_iters -= P->req_iters.)199.8 525.6 Q
(nonreq_iters -= nonreq_iters_to_do.)199.8 536 Q
(P->set.maxiters -= iters_to_do.)199.8 546.4 Q(P->req_iters = 0.)199.8
556.8 Q(P->nonreq_iters -= nonreq_iters_to_do.)199.8 567.2 Q
(Concatenate pipeline_info iters_to_do)199.8 577.6 Q
(times with current worst-case union.)217.8 588 Q
(iters_handled += iters_to_do.)199.8 598.4 Q/F4 12/Times-Roman@0 SF
(Figure 32: WCET Loop Analysis Algorithm)219.3 622.88 Q .346
(that each time a path is selected, it is in f)111.6 659.36 R .346
(act chosen from the paths that can still possibly)-.12 F -.18(exe)111.6
688.16 S 1.253(cute gi).18 F -.18(ve)-.3 G 4.253(nt).18 G 1.254
(hat the minimum and maximum number of iterations for each path and)
-4.253 F(78)319.8 725.04 Q EP
%%Page: 79 81
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 1.649(set were accurately estimated.)111.6 96.4
R 4.649(Ap)7.649 G(ath')-4.649 E 4.649(sn)-.66 G 1.649
(umber of required iterations is its minimum)-4.649 F 3.233
(iterations to be performed.)111.6 125.2 R 3.233
(The non-required iterations of a path is the dif)9.233 F(ference)-.3 E
.826(between its maximum and minimum number of iterations.)111.6 154 R
3.826(Ap)6.826 G .826(ath is initially chosen in)-3.826 F .588
(the IF-THEN-ELSE construct at the be)111.6 182.8 R .588
(ginning of the DO-WHILE loop in Figure 32.)-.18 F(If)6.588 E .934(the \
iterations remaining is greater than the required iterations left to be\
processed \(sum)111.6 211.6 R 1.317(of each path')111.6 240.4 R 4.317
(sm)-.66 G 1.317(inimum iterations not yet processed\), then the path s\
elected is chosen)-4.317 F 1.45(from an)111.6 269.2 R 4.45(yp)-.18 G
1.449(ath that has an)-4.45 F 4.449(yi)-.18 G 1.449
(terations that can be performed.)-4.449 F 1.449
(Otherwise, the iterations)7.449 F .794(remaining must be equal to the \
required loop iterations remaining and the path must be)111.6 298 R .558
(selected only from paths that ha)111.6 326.8 R .918 -.18(ve r)-.24 H
.557(emaining required iterations left.).18 F .557(The code after the)
6.557 F .102(DO-WHILE in the algorithm ef)111.6 355.6 R .103
(\214ciently uses repeated instances of a path that has no \214rst)-.3 F
1.437(misses or \214rst hits and thus will remain the longest path sinc\
e its w)111.6 384.4 R 1.437(orst-case beha)-.12 F(vior)-.24 E .166
(cannot change.)111.6 413.2 R .166(This code processes the remaining re\
quired iterations of the path and the)6.166 F .675(minimum of the remai\
ning non-required iterations of the path, the set of paths to which)
111.6 442 R .076(the path belongs, or the entire loop.)111.6 470.8 R
.077(Therefore, the paths that can still possibly e)6.077 F -.18(xe)-.18
G .077(cute is).18 F 1.992(accurate since a gi)111.6 499.6 R -.18(ve)-.3
G 4.992(np).18 G(ath')-4.992 E 4.992(sr)-.66 G 1.992
(equired iterations are al)-4.992 F -.12(wa)-.12 G 1.992
(ys processed before its non-).12 F .035(required iterations and the nu\
mber of non-required iterations to be processed for a path is)111.6
528.4 R(ne)111.6 557.2 Q -.18(ve)-.3 G 3(ra).18 G(llo)-3 E(wed to e)-.3
E(xceed the number of non-required iterations remaining in the loop.)
-.18 E -.96(Ta)126.6 586 S 1.852(ble 19 illustrates the w).96 F 1.851
(orst-case loop analysis algorithm using the e)-.12 F 1.851(xample loop)
-.18 F(gi)111.6 614.8 Q -.18(ve)-.3 G 4.168(ni).18 G 4.168(nF)-4.168 G
1.168(igure 21.)-4.168 F 1.168
(The iteration information pertaining to the \214v)7.168 F 4.169(ep)-.18
G 1.169(aths w)-4.169 F 1.169(as gi)-.12 F -.18(ve)-.3 G 4.169(ni).18 G
(n)-4.169 E -.96(Ta)111.6 643.6 S .807(ble 13.).96 F .807
(None of the paths has an)6.807 F 3.807(yr)-.18 G .806
(equired iterations, so the number of non-required)-3.807 F .021
(iterations is the same as their number of maximum iterations a)111.6
672.4 R -.3(va)-.24 G 3.022(ilable. T).3 F .022(able 19 outlines)-.96 F
(79)319.8 725.04 Q EP
%%Page: 80 82
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF -.96(Ta)206.112 115.6 S(ble 19: Example for W)
.96 E(orst-Case Loop Analysis)-.96 E .52 LW 517.992 129.37 133.608
129.37 DL/F1 13/Helvetica@0 SF(Iter)144.151 140.52 Q 19.929(ation P)-.13
F 19.5(1P)3.614 G 19.5(2P)-15.886 G 19.5(3P)-15.886 G 19.5(4P)-15.886 G
19.5(5L)-15.886 G 19.513(ongest Time)-19.5 F 517.992 147.21 133.608
147.21 DL 517.992 149.21 133.608 149.21 DL 45.877(11)163.956 161.8 S
24.557(62)-45.877 G 24.557(84)-24.557 G(4)-24.557 E/F2 13/Times-Bold@0
SF(56)25.285 E F1 37.928(54 4)25.285 F(56)60.697 E 517.992 168.49
133.608 168.49 DL 49.491(27)163.956 181.08 S 20.943(10 17)-21.32 F F2
(20)25.285 E F1 37.928(18 4)25.285 F(72)60.697 E 517.992 187.77 133.608
187.77 DL(3-500)150.95 200.36 Q/F3 13/Courier-Oblique@0 SF 27.313(71)
36.198 G 23.413(01)-27.313 G(7)-23.413 E F2(20)24.713 E F3(18)24.713 E
F1 46.241(48)40.97 G(040)-46.241 E 517.992 207.05 133.608 207.05 DL
38.649(501 7)156.728 219.64 R 20.943(10 17)28.171 F F2(18)64.298 E F1
46.241(58)42.27 G(054)-46.241 E 517.992 226.33 133.608 226.33 DL
(502-1000)140.108 238.92 Q F3 27.313(71)25.356 G 23.413(01)-27.313 G(7)
-23.413 E F2(18)63.726 E F1 39.013(51)42.27 G(5040)-39.013 E 517.992
245.61 133.608 245.61 DL 35.035(1001 7)153.114 258.2 R F2(10)28.899 E F1
39.013(21)159.309 G(5046)-39.013 E 517.992 263.45 133.608 263.45 DL
465.602 129.37 465.602 263.45 DL 398.848 129.37 398.848 263.45 DL
400.848 129.37 400.848 263.45 DL 360.835 129.37 360.835 263.45 DL
321.822 129.37 321.822 263.45 DL 282.809 129.37 282.809 263.45 DL
243.796 129.37 243.796 263.45 DL 203.783 129.37 203.783 263.45 DL
205.783 129.37 205.783 263.45 DL 517.992 129.37 517.992 263.45 DL
133.608 129.37 133.608 263.45 DL F0 .39
(the progress of the loop analysis algorithm.)111.6 288.8 R .39
(It selects the longest path for each iteration.)6.39 F .142(Note that \
the iteration numbers in the \214rst column are accounting for the iter\
ations of the)111.6 317.6 R 2.212(loop, b)111.6 346.4 R 2.212
(ut not necessarily in the order in which the)-.24 F 5.211(yt)-.18 G(ak)
-5.211 E 5.211(ep)-.12 G 5.211(lace. T)-5.211 F 5.211(oa)-.96 G 2.211
(ctually identify)-5.211 F 2.232
(which path is the longest on each sequential iteration w)111.6 375.2 R
2.232(ould mak)-.12 F 5.232(et)-.12 G 2.232(he loop analysis)-5.232 F
.202(algorithm more comple)111.6 404 R .201
(x, with little or no bene\214t in tightening the e)-.18 F -.18(xe)-.18
G .201(cution time bound.).18 F(Ho)111.6 432.8 Q(we)-.3 E -.18(ve)-.3 G
1.214 -.48(r, t).18 H .254(he use of path sets is used to determine whe\
ther a particular path is eligible to).48 F -.18(exe)111.6 461.6 S 1.603
(cute during a particular range of iterations, and this feature will al\
so be illustrated).18 F(shortly)111.6 490.4 Q 10.004(.F)-.78 G 4.004(or\
the remainder of this illustration of the algorithm, and also for the)
-10.184 F 2.052(subsequent e)111.6 519.2 R 2.052
(xample for best case, the iterations will be referred to ordinally)-.18
F 5.052(,b)-.78 G 2.052(ut the)-5.292 F .51(reader should note that the\
se iteration numbers are only used for accounting all the loop)111.6 548
R(iterations and does imply the temporal order of paths actually tak)
111.6 576.8 Q(en.)-.12 E 1.462
(Columns 2 through 6 in the table indicate the path e)126.6 605.6 R -.18
(xe)-.18 G 1.462(cution times for a particular).18 F 4.416
(iteration. All)111.6 634.4 R<8c76>4.416 E 4.416(ep)-.18 G 1.416
(aths are eligible to e)-4.416 F -.18(xe)-.18 G 1.416
(cute for the \214rst iteration, and path 4 is the).18 F .008
(longest, taking 56 c)111.6 663.2 R 3.008(ycles. It)-.18 F .008
(turns out in this e)3.008 F .008
(xample that all the \214rst misses encountered)-.18 F .822
(during the \214rst iteration, so that the instruction cache beha)111.6
692 R .823(vior does not change starting)-.24 F(80)319.8 725.04 Q EP
%%Page: 81 83
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 1.662(with the second iteration.)111.6 96.4 R
-.18(Fo)7.662 G 4.662(rt).18 G 1.662
(he second iteration, all \214rst misses are no)-4.662 F 4.662(wt)-.3 G
1.662(reated as)-4.662 F 3.725(hits. Once)111.6 125.2 R(ag)3.725 E .725
(ain path 4 is the longest path.)-.06 F .725(Its e)6.725 F -.18(xe)-.18
G .725(cution time is 20 c).18 F .726(ycles, b)-.18 F .726(ut starting)
-.24 F .19(with the second iteration it is no longer necessary to \214l\
l the pipeline, so 16 \(20)111.6 154 R/F1 12/Symbol SF(-)A F0 .189
(4\) c)B(ycles)-.18 E(are added to the total time for the loop after tw)
111.6 182.8 Q 3(oi)-.12 G(terations.)-3 E .234
(Since there is no change in the instruction cache beha)126.6 211.6 R
.235(vior during the second iteration,)-.24 F .864
(the algorithm proceeds to the second phase where it ef)111.6 240.4 R
.864(\214ciently replicates path 4 until it)-.3 F .744(has e)111.6 269.2
R .744(xhausted its 500 a)-.18 F -.3(va)-.24 G .744(ilable iterations.)
.3 F -.18(Fo)6.744 G 3.744(ri).18 G .744
(teration 501 the algorithm returns to the)-3.744 F .454
(\214rst phase, where the indi)111.6 298 R .454(vidual paths are re-e)
-.3 F -.3(va)-.3 G 3.453(luated. At).3 F .453
(this point path 4 is ineligible)3.453 F .628
(for consideration since it has e)111.6 326.8 R .629
(xhausted its iterations.)-.18 F .629(The longest path a)6.629 F -.3(va)
-.24 G .629(ilable is path).3 F .62(5, whose e)111.6 355.6 R -.18(xe)
-.18 G .619(cution time is 18 c).18 F .619
(ycles, which includes the pipeline \214lling time that is not)-.18 F
1.473(included in the accumulation of the total time for the loop.)111.6
384.4 R 1.473(So the algorithm adds 14)7.473 F -.18(cy)111.6 413.2 S
.383(cles to the loop').18 F 3.383(se)-.66 G -.18(xe)-3.563 G .383
(cution time.).18 F .382(Since there is no change to the cache beha)
6.383 F(vior)-.24 E 3.382(,p)-.48 G(ath)-3.382 E 3(5i)111.6 442 S 3(se)
-3 G -.3<668c>-3 G(ciently replicated starting at iteration 502, for it\
s remaining 499 iterations.).3 E -.18(Fo)126.6 470.8 S 6.072(ri).18 G
3.072(teration 1001, which is the last iteration of the loop, the algor\
ithm cannot)-6.072 F 1.674(consider paths 4 or 5 because the)111.6 499.6
R 4.674(yh)-.18 G -2.7 -.24(av e)-4.674 H -.18(ex)4.914 G 1.674
(hausted their number of iterations.).18 F -.18(Pa)7.674 G 1.674(th 3)
.18 F .493(cannot be considered either)111.6 528.4 R 3.493(,s)-.48 G
.494(ince the pre)-3.493 F .494
(vious analysis determined that it is in the same)-.3 F .312(set of pat\
hs as paths 4 and 5 that share iterations [1..1000], and this set has e)
111.6 557.2 R .312(xhausted all)-.18 F 1.401
(1000 of its maximum iterations.)111.6 586 R 1.401
(So only paths 1 and 2 are in contention for the \214nal)7.401 F .384
(iteration and path 2 is the longer path.)111.6 614.8 R .384
(The total e)6.384 F -.18(xe)-.18 G .384
(cution time for the loop is predicted).18 F 3.202(to be 15,046 c)111.6
643.6 R 3.202(ycles, which is e)-.18 F 6.202(xact. If)-.18 F 3.203
(the timing analyzer did not generate path)6.202 F .073
(constraints, then path 4 w)111.6 672.4 R .073(ould ha)-.12 F .433 -.18
(ve b)-.24 H .073(een selected for 1000 iterations rather than 500, and)
.18 F(81)319.8 725.04 Q EP
%%Page: 82 84
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF(the loop')111.6 96.4 Q 3(sW)-.66 G(CET w)-3 E
(ould ha)-.12 E .36 -.18(ve b)-.24 H(een o).18 E -.18(ve)-.18 G
(restimated by about 7%.).18 E 3(5.2.7 Best)111.6 135.28 R .48 LW
262.596 138.28 111.6 138.28 DL(Case Loop Analysis)165.936 135.28 Q 2.752
(Figure 33 depicts the best-case loop analysis algorithm, which is for \
the most part)111.6 171.28 R 3.504(analogous to the w)111.6 200.08 R
3.504(orst-case algorithm described in the pre)-.12 F 3.504
(vious subsection.)-.3 F 3.504(As a)9.504 F 3.214(preliminary step, the\
algorithm computes the number of required and non-required)111.6 228.88
R .399(iterations for each path, as w)111.6 257.68 R .399(as done in w)
-.12 F .399(orst case.)-.12 F .399
(The rest of the algorithm consists of)6.399 F(tw)111.6 286.48 Q 3.837
(op)-.12 G 3.837(hases. The)-3.837 F .837
(\214rst phase \214nds the shortest path)3.837 F/F1 12/Times-Italic@0 SF
(P)3.837 E F0 .837(for the \214rst iteration.)3.837 F -.18(Fo)6.837 G
3.837(rt).18 G .837(he \214rst)-3.837 F .429(iteration only)111.6 315.28
R 3.429(,t)-.78 G .428(he timing analyzer treats all \214rst misses as \
misses and all \214rst hits as hits)-3.429 F 1.568
(when analyzing the cache beha)111.6 344.08 R 1.568
(vior of all the paths' instructions.)-.24 F 1.569(The major issue for)
7.569 F .098(selecting the shortest path)111.6 372.88 R F1(P)3.098 E F0
.098(is determining which paths are eligible to be selected.)3.098 F
.097(If the)6.097 F 2.31
(loop has at least one non-required iteration, then)111.6 401.68 R F1(P)
5.31 E F0 2.311(may be chosen from an)5.31 F 5.311(yo)-.18 G 5.311(ft)
-5.311 G(he)-5.311 E .409(continue paths.)111.6 430.48 R(Ho)6.409 E(we)
-.3 E -.18(ve)-.3 G 1.369 -.48(r, i).18 H 3.409(ft).48 G .409
(he loop has no non-required iterations, then)-3.409 F F1(P)3.409 E F0
.408(may only be)3.409 F(selected from those continue paths that ha)
111.6 459.28 Q .36 -.18(ve r)-.24 H(equired iterations.).18 E(The)126.6
488.08 Q/F2 12/Courier@0 SF(WHILE-DO)5.878 E F0 2.878
(loop in Figure 33 represents the second phase of the best-case)5.878 F
1.061(algorithm, which processes all the remaining iterations of the lo\
op after the \214rst.)111.6 516.88 R(Note)7.06 E .262(that the timing a\
nalyzer treats a function as a loop with a single iteration, so its bes\
t case)111.6 545.68 R .429
(analysis will only perform the \214rst phase of this algorithm.)111.6
574.48 R .428(In the second phase, all \214rst)6.429 F 1.974
(misses are treated as hits and all \214rst hits are treated as misses.)
111.6 603.28 R 1.974(In other w)7.974 F 1.974(ords, the)-.12 F .296
(instruction cache beha)111.6 632.08 R .296
(vior is assumed not to change during the last)-.24 F F1(n)3.296 E/F3 12
/Symbol SF(-)3.296 E F0 3.296(1i)3.296 G 3.296(terations. The)-3.296 F
1.324(reason for the dif)111.6 660.88 R 1.324(ference in ho)-.3 F 4.324
(wt)-.3 G 1.324(he w)-4.324 F 1.324
(orst-case and best-case loop analysis algorithms)-.12 F .448(are or)
111.6 689.68 R -.06(ga)-.216 G .448(nized is described in the ne).06 F
.447(xt section.)-.18 F .447(The method of selecting the shortest path)
6.447 F(82)319.8 725.04 Q EP
%%Page: 83 85
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Courier@0 SF(/*)118.8 104.4 Q/F1 10/Times-Roman@0 SF
(calculate required and non-required path information)6 E F0(*/)6 E
(req_iters = 0.)118.8 114.8 Q/F2 10/Courier-Bold@0 SF(FOR)118.8 125.2 Q
F0 6(P=e)6 G(ach path in the loop)-6 E F2(DO)6 E F0
(P->req_iters = P->min_iters.)136.8 135.6 Q
(P->nonreq_iters = P->max_iters - P->min_iters.)136.8 146 Q
(req_iters += P->min_iters.)136.8 156.4 Q(nonreq_iters =)118.8 166.8 Q
/F3 10/Times-Italic@0 SF(N)6 E F0 6(-r)6 G(eq_iters.)-6 E
(pipeline_info = NULL.)118.8 177.2 Q(/*)118.8 192.8 Q F1
(process the \214rst iteration of the loop)6 E F0(*/)6 E
(first_miss_treatment = miss.)118.8 203.2 Q(first_hit_treatment = hit.)
118.8 213.6 Q F2(IF)118.8 224 Q F0(req_iters < N)6 E F2(THEN)6 E F0
(Find shortest path P among the paths in which)136.8 234.4 Q
(P->req_iters + P->nonreq_iters > 0)154.8 244.8 Q 6(&& P->set.maxiters)
12 F 6(>0)6 G(.)-6 E F2(ELSE)118.8 255.2 Q F0
(Find shortest path P among the paths in which)136.8 265.6 Q
(P->req_iters > 0)154.8 276 Q 6(&& P->set.maxiters)12 F 6(>0)6 G(.)-6 E
(Concatenate pipeline_info with the current)118.8 286.4 Q
(best-case union of executable paths.)136.8 296.8 Q(iters_handled = 1.)
118.8 307.2 Q F2(IF)118.8 317.6 Q F0(P->req_iters > 0)6 E F2(THEN)6 E F0
(P->req_iters -= 1.)136.8 328 Q(req_iters -= 1.)136.8 338.4 Q F2(ELSE)
118.8 348.8 Q F0(P->nonreq_iters -= 1.)136.8 359.2 Q(nonreq_iters -= 1.)
136.8 369.6 Q(P->set.maxiters -= 1.)118.8 380 Q
(/* process the remaining iterations */)118.8 395.6 Q F2(WHILE)118.8 406
Q F0(iters_handled < N)6 E F2(DO)6 E F0(first_miss_treatment = hit.)
136.8 416.4 Q(first_hit_treatment = miss.)136.8 426.8 Q F2(IF)136.8
437.2 Q F0(req_iters < N)6 E F2(THEN)6 E F0
(Find shortest path P among the paths in which)154.8 447.6 Q
(P->req_iters + P->nonreq_iters > 0)172.8 458 Q 6(&& P->set.maxiters)12
F 6(>0)6 G(.)-6 E F2(ELSE)136.8 468.4 Q F0
(Find shortest path P among the paths in which)154.8 478.8 Q
(P->req_iters > 0)172.8 489.2 Q 6(&& P->set.maxiters)12 F 6(>0)6 G(.)-6
E(nonreq_iters_to_do = min \(nonreq_iters, P->nonreq_iters,)136.8 499.6
Q(P->set.maxiters - P->req_iters\).)292.8 510 Q
(iters_to_do = P->req_iters + nonreq_iters_to_do.)136.8 520.4 Q
(req_iters -= P->req_iters.)136.8 530.8 Q
(nonreq_iters -= nonreq_iters_to_do.)136.8 541.2 Q(P->req_iters = 0.)
136.8 551.6 Q(P->set.max_iters -= iters_to_do.)136.8 562 Q
(P->nonreq_iters -= nonreq_iters_to_do.)136.8 572.4 Q
(Concatenate pipeline_info with the current)136.8 582.8 Q
(best-case union of executable paths.)154.8 593.2 Q
(iters_handled += iters_to_do.)136.8 603.6 Q/F4 12/Times-Roman@0 SF
(Figure 33: BCET Loop Analysis Algorithm)220.962 628.08 Q/F5 12
/Times-Italic@0 SF(P)111.6 664.56 Q F4 1.304
(is the same as in the \214rst phase.)4.304 F(Once)7.304 E F5(P)4.304 E
F4 1.304(is selected, it is necessary to calculate the)4.304 F .192
(number of iterations to account for path)111.6 693.36 R F5(P)3.191 E F4
3.191(,w)C .191(hich is done in the same manner as in w)-3.191 F(orst)
-.12 E(83)319.8 725.04 Q EP
%%Page: 84 86
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 3.518(case. The)111.6 96.4 R .518
(timing analyzer will use)3.518 F/F1 12/Times-Italic@0 SF(P)3.518 E F0
.519(for all of its required iterations, plus the minimum)3.518 F(of)
111.6 125.2 Q F1(P)3.101 E F0 1.421 -.66('s n)D .101
(on-required iterations,).66 F F1(P)3.101 E F0 1.42 -.66('s s)D(et').66
E 3.1(sm)-.66 G .1(aximum iterations remaining and the remaining)-3.1 F
1.086(non-required iterations of the loop.)111.6 154 R 1.087
(Since the method of selecting the shortest path for)7.086 F 2.77(the b\
est-case algorithm is analogous to selecting the longest path in the w)
111.6 182.8 R(orst-case)-.12 E 1.494(algorithm, the correctness ar)111.6
211.6 R 1.494(gument for best case w)-.216 F 1.495(ould also follo)-.12
F 4.495(wa)-.3 G 1.495(nalogously from)-4.495 F(the w)111.6 240.4 Q
(orst-case e)-.12 E(xplanation gi)-.18 E -.18(ve)-.3 G 3(ni).18 G 3(nt)
-3 G(he pre)-3 E(vious section.)-.3 E -.96(Ta)126.6 269.2 S 1.932(ble 2\
0 illustrates the best-case loop analysis algorithm, using the same e)
.96 F(xample)-.18 E 2.607(loop \(from Figure 21\) that w)111.6 298 R
2.608(as described for w)-.12 F 2.608(orst case.)-.12 F 2.608(This e)
8.608 F(xample')-.18 E 5.608(sb)-.66 G 2.608(est case)-5.608 F .342
(iteration information w)111.6 326.8 R .341(as gi)-.12 F -.18(ve)-.3 G
3.341(ni).18 G 3.341(nT)-3.341 G .341(able 14.)-4.301 F .341
(This loop only has tw)6.341 F 3.341(oi)-.12 G .341
(terations instead of)-3.341 F .078(1001 for w)111.6 355.6 R .078
(orst case.)-.12 F .078(The \214rst phase of the algorithm selects the \
shortest path for the \214rst)6.078 F 3.563(iteration. The)111.6 384.4 R
.563(only paths that are eligible for iteration 1 are paths 3 and 5, an\
d path 3 is)3.563 F(shorter)111.6 413.2 Q 8.164(.T)-.66 G 2.164
(he second phase of the algorithm e)-8.164 F 2.164
(xamines the remaining iterations in the)-.18 F .251
(loop, and in this case there is only iteration 2 to consider)111.6 442
R 6.25(.F)-.66 G .25(or this iteration, only paths 1)-6.43 F .507
(and 2 are eligible.)111.6 470.8 R -.18(Pa)6.507 G .508(th 4 is a conti\
nue path and its range of possible iterations is [2..2],).18 F -.24(bu)
111.6 499.6 S 3.532(tt).24 G .532
(his iteration is the last iteration of the loop.)-3.532 F -.18(Pa)6.531
G .531(th 4 cannot serv).18 F 3.531(ea)-.18 G 3.531(sac)-3.531 G .531
(ontinue path,)-3.531 F 1.671(and it is not an e)111.6 528.4 R 1.672
(xit path either)-.18 F 4.672(,s)-.48 G 4.672(op)-4.672 G 1.672
(ath 4 is not eligible to be chosen for the second)-4.672 F 4.091
(iteration. Among)111.6 557.2 R 1.09
(paths 1 and 2 for the second iteration, path 1 is the shorter path.)
4.091 F(Its)7.09 E -.96(Ta)209.628 590.8 S
(ble 20: Example for Best-Case Loop Analysis).96 E .52 LW 511.661 604.57
139.939 604.57 DL/F2 13/Helvetica@0 SF(Iter)146.439 615.72 Q 15.886
(ation P)-.13 F 19.5(1P)3.614 G 19.5(2P)-15.886 G 19.5(3P)-15.886 G 19.5
(4P)-15.886 G 19.5(5S)-15.886 G -3.094(hor test)-19.5 F(Time)19.5 E
511.661 622.41 139.939 622.41 DL 511.661 624.41 139.939 624.41 DL(1)
166.244 637 Q/F3 13/Times-Bold@0 SF(44)120.588 E F2 39.267(54 3)64.298 F
(44)54.782 E 511.661 643.69 139.939 643.69 DL(2)166.244 656.28 Q F3(7)
45.812 E F2 156.306(10 1)28.535 F(47)54.782 E 511.661 661.53 139.939
661.53 DL 466.525 604.57 466.525 661.53 DL 397.093 604.57 397.093 661.53
DL 399.093 604.57 399.093 661.53 DL 359.08 604.57 359.08 661.53 DL
320.067 604.57 320.067 661.53 DL 281.054 604.57 281.054 661.53 DL
242.041 604.57 242.041 661.53 DL 202.028 604.57 202.028 661.53 DL
204.028 604.57 204.028 661.53 DL 511.661 604.57 511.661 661.53 DL
139.939 604.57 139.939 661.53 DL F0(84)319.8 725.04 Q EP
%%Page: 85 87
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF -.18(exe)111.6 96.4 S .878(cution time of 7 c)
.18 F .878(ycles includes 4 c)-.18 F .879
(ycles for pipeline \214lling, which is not used after)-.18 F .2
(the \214rst iteration.)111.6 125.2 R .2(The best-case e)6.2 F -.18(xe)
-.18 G .2(cution time for the loop is computed to be 47 c).18 F(ycles,)
-.18 E(which is an e)111.6 154 Q(xact prediction.)-.18 E 3(5.2.8 Reason)
111.6 192.88 R(for Dif)3 E .48 LW 298.272 195.88 111.6 195.88 DL
(ferent Algorithms)212.616 192.88 Q .865
(It is important to note that the w)126.6 228.88 R .865
(orst-case and best-case loop analysis algorithms are)-.12 F 1.626
(not perfectly analogous with respect to the ef)111.6 257.68 R 1.626
(fect of \214rst misses [2].)-.3 F 1.626(Consider a loop)7.626 F(ha)
111.6 286.48 Q 1.64(ving three paths with information depicted in T)-.24
F 1.64(able 21.)-.96 F -.18(Pa)7.64 G 1.64(ths 1 and 2 each ha).18 F 2
-.18(ve a)-.24 H .918
(distinct \214rst miss instruction, while path 3 has no \214rst misses.)
111.6 315.28 R .918(According to the w)6.918 F(orst-)-.12 E 1.804(case \
loop analysis algorithm, the timing analyzer selects path 1 for the \
\214rst iteration,)111.6 344.08 R .718
(path 2 for the second iteration, and path 3 for all other iterations.)
111.6 372.88 R -.18(Fo)6.717 G 3.717(rt).18 G .717(his e)-3.717 F .717
(xample, the)-.18 F -.12(wo)111.6 401.68 S
(rst-case algorithm computes the WCET e).12 E(xactly for an)-.18 E 3(yn)
-.18 G(umber of loop iterations.)-3 E -.18(Fo)126.6 430.48 S 5.418(rb)
.18 G 2.418(est case, path 3 will be chosen for the \214rst iteration.)
-5.418 F 2.419(But starting with the)8.419 F .791(second iteration, all\
\214rst misses will be treated as hits, so path 2 will be selected for\
all)111.6 459.28 R .463(iterations after the \214rst.)111.6 488.08 R
.464(Thus, the timing analyzer will compute a BCET of 13 + 9*\()6.463 F
/F1 12/Times-Italic@0 SF(n)A/F2 12/Symbol SF(-)3.464 E F0 .282(1\) c)
111.6 516.88 R .282(ycles for this loop, where)-.18 F F1(n)3.282 E F0
.281(is the minimum number of loop iterations.)3.282 F(Ho)6.281 E(we)-.3
E -.18(ve)-.3 G 1.241 -.48(r, t).18 H(he).48 E 1.714
(true BCET of this loop can be slightly greater)111.6 545.68 R 7.715(.I)
-.66 G 4.715(ft)-7.715 G 1.715(he loop has just one iteration, the)
-4.715 F -.96(Ta)183.054 586.24 S(ble 21: Information on Three P).96 E
(aths in Hypothetical Loop)-.18 E 483.408 599.76 168.192 599.76 DL/F3 12
/Helvetica@0 SF(Ho)187.602 612.6 Q 3.336(wP)-.18 G(ath is Ev)-3.816 E
28.074(aluated P)-.3 F(ath 1)-.48 E -.48(Pa)18 G(th 2).48 E -.48(Pa)18 G
(th 3).48 E 483.408 619.04 168.192 619.04 DL -1.44(Tr)174.192 631.88 S
(eat \214rst misses as misses)1.44 E 35.532(19 18 13)28.434 F -1.44(Tr)
183.522 646.28 S(eat \214rst misses as hits)1.44 E 42.204(10 9)37.764 F
(13)38.868 E 483.408 651.28 168.192 651.28 DL 434.196 599.76 434.196
651.28 DL 381.984 599.76 381.984 651.28 DL 329.772 599.76 329.772 651.28
DL 483.408 599.76 483.408 651.28 DL 168.192 599.76 168.192 651.28 DL F0
(85)319.8 725.04 Q EP
%%Page: 86 88
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 4.507
(timing analyzer correctly predicts that path 3 should be tak)111.6 96.4
R 4.506(en, and there is no)-.12 F .281(underestimation in the BCET)
111.6 125.2 R 6.281(.I)-.888 G 3.281(ft)-6.281 G .282(he loop has tw)
-3.281 F 3.282(oi)-.12 G .282(terations, then path 3 should be tak)
-3.282 F(en)-.12 E .571(for both iterations, yielding 26 c)111.6 154 R
.57(ycles for the loop.)-.18 F .57(The timing analyzer w)6.57 F .57
(ould compute)-.12 F 1.758(22 c)111.6 182.8 R 1.759
(ycles if there are tw)-.18 F 4.759(oi)-.12 G 1.759
(terations, a BCET underestimation of four c)-4.759 F 4.759(ycles. On)
-.18 F(the)4.759 E 1.121(other hand, if there are three or more iterati\
ons, the BCET is realized if the loop tak)111.6 211.6 R(es)-.12 E .329
(path 2 for e)111.6 240.4 R -.18(ve)-.3 G .329(ry iteration.).18 F .329
(In this case, the timing analyzer will underestimate the BCET)6.329 F
.81(of the loop by \214v)111.6 269.2 R 3.81(ec)-.18 G .809
(ycles, and this underestimation is due to the incorrect prediction of)
-3.99 F .741(which path had been chosen for the \214rst iteration.)111.6
298 R .742(In order to mak)6.742 F 3.742(ea)-.12 G 3.742(ne)-3.742 G
.742(xact prediction)-3.922 F 1.181
(in best case, it becomes necessary to re-e)111.6 326.8 R 1.18
(xamine path choices for prior iterations.)-.18 F(The)7.18 E 2.392
(author belie)111.6 355.6 R -.18(ve)-.3 G 5.392(st).18 G 2.392(hat ha)
-5.392 F 2.392(ving to re-e)-.24 F 2.392
(xamine all combinations of path choices for prior)-.18 F 1.055
(iterations to compute the BCET of a current iteration is o)111.6 384.4
R -.18(ve)-.18 G 1.055(rly inef).18 F 1.055(\214cient, and thus the)-.3
F(slightly more conserv)111.6 413.2 Q(ati)-.3 E .36 -.18(ve a)-.3 H
(pproach described in Figure 33 is used.).18 E .48 LW 353.97 455.08
297.63 455.08 DL 3(5.3 Results)297.63 452.08 R .792
(The results of the test programs are sho)111.6 480.88 R .793(wn in T)
-.3 F .793(able 22.)-.96 F .793(This table sho)6.793 F .793
(ws the bene\214t of)-.3 F 1.511
(automatically addressing branch constraints within the timing analyzer)
111.6 509.68 R 7.511(.T)-.66 G 1.51(he lines that)-7.511 F 1.405
(are printed in boldf)111.6 538.48 R 1.405
(ace indicate which timing predictions became tighter as a result of)
-.12 F .813(this additional analysis.)111.6 567.28 R .813(As in pre)
6.813 F .813(vious result tables, the)-.3 F/F1 12/Times-Italic@0 SF .813
(Observed Cycles)3.813 F F0 .813(represent the)3.813 F -.18(cy)111.6
596.08 S 5.681(cles required for an e).18 F -.18(xe)-.18 G 5.681
(cution with w).18 F 5.682(orst-case and best-case input data, as)-.12 F
(appropriate.)111.6 624.88 Q/F2 10/Times-Roman@0 SF(7)-6 I F0 1.493
(The last tw)4.493 6 N 4.493(oc)-.12 G 1.492
(olumns indicate the results when the analysis includes the)-4.493 F .32
LW 115.6 648.069 111.6 648.069 DL 119.6 648.069 115.6 648.069 DL 123.6
648.069 119.6 648.069 DL 127.6 648.069 123.6 648.069 DL 131.6 648.069
127.6 648.069 DL 135.6 648.069 131.6 648.069 DL 139.6 648.069 135.6
648.069 DL 143.6 648.069 139.6 648.069 DL 147.6 648.069 143.6 648.069 DL
151.6 648.069 147.6 648.069 DL 155.6 648.069 151.6 648.069 DL 159.6
648.069 155.6 648.069 DL 163.6 648.069 159.6 648.069 DL 167.6 648.069
163.6 648.069 DL 171.6 648.069 167.6 648.069 DL 175.6 648.069 171.6
648.069 DL 179.6 648.069 175.6 648.069 DL 183.6 648.069 179.6 648.069 DL
187.6 648.069 183.6 648.069 DL 191.6 648.069 187.6 648.069 DL 195.6
648.069 191.6 648.069 DL 199.6 648.069 195.6 648.069 DL 203.6 648.069
199.6 648.069 DL 207.6 648.069 203.6 648.069 DL 211.6 648.069 207.6
648.069 DL 215.6 648.069 211.6 648.069 DL 219.6 648.069 215.6 648.069 DL
223.6 648.069 219.6 648.069 DL 227.6 648.069 223.6 648.069 DL 231.6
648.069 227.6 648.069 DL 235.6 648.069 231.6 648.069 DL 239.6 648.069
235.6 648.069 DL 243.6 648.069 239.6 648.069 DL 247.6 648.069 243.6
648.069 DL 251.6 648.069 247.6 648.069 DL 255.6 648.069 251.6 648.069 DL
/F3 6/Times-Roman@0 SF(7)133.2 653.68 Q/F4 8/Times-Roman@0 SF .294
(The author modi\214ed the desired relati)2.294 4 N .534 -.12(ve e)-.2 H
.294(rror of the).12 F/F5 8/Times-Italic@0 SF(Expint)2.294 E F4(and)
2.294 E F5(Gaujac)2.294 E F4 .294(programs so the)2.294 F 2.293(yw)-.12
G .293(ould not con)-2.373 F -.12(ve)-.32 G -.144(rg).12 G 2.293(ee).144
G .293(arly in w)-2.293 F(orst)-.08 E .323(case, which made it possible\
to obtain an accurate maximum iterations for a loop and w)111.6 667.28
R .323(orst-case input data for the)-.08 F F5 .324(Observed Cycles)2.323
F F4(in T)111.6 676.88 Q(able 22.)-.64 E F0(86)319.8 725.04 Q EP
%%Page: 87 89
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF -.96(Ta)182.79 108.4 S
(ble 22: Results After Adding Branch Constraint Analysis).96 E .36 LW
513.909 128.85 137.691 128.85 DL/F1 9/Helvetica@0 SF -.27(Wo)285.93
137.6 S(rst-Case Results).27 E 513.909 142.95 137.691 142.95 DL -2.232
(Obser v)214.965 152.8 R 13.986(ed +)-.225 F(Iter)2.502 E 2.502(.C)-.45
G 10.998(ount +)-2.502 F(Iter)2.502 E 2.502(.C)-.45 G 10.998(ount +)
-2.502 F(Br)2.502 E 2.502(.C)-.45 G(onstr)-2.502 E 13.5(.+)-.45 G(Br)
-10.998 E 2.502(.C)-.45 G(onstr)-2.502 E(.)-.45 E 31.18(Cycles Cycles)
220.995 163.8 R 36.594(Ratio Cycles)38.826 F(Ratio)39.366 E(Name)158.332
158.3 Q 513.909 169.15 137.691 169.15 DL/F2 9/Helvetica-Bold@0 SF 63.288
(Des 149,706)142.191 179 R 29.052(172,509 1.152)28.156 F 27.09
(167,165 1.117)39.33 F 57.294(Expint 58,217)142.191 190 R 24.048
(1,293,290 22.215)20.65 F 27.09(58,289 1.001)44.334 F 52.785
(Fresnel 47,749)142.191 201 R 29.052(48,887 1.024)33.16 F 27.09
(47,783 1.001)44.334 F 49.779(Gaujac 786,786)142.191 212 R 29.052
(790,116 1.004)28.156 F 27.09(787,134 1.000)39.33 F F1 51.282
(Hes 55,834,609)142.191 223 R 29.052(56,739,136 1.016)15.646 F 27.09
(56,739,136 1.016)26.82 F 47.268(Integ 22,538,082)142.191 234 R 29.052
(22,553,163 1.001)15.646 F 27.09(22,553,163 1.001)26.82 F -2.232
(Inter p)142.191 245 R 13.144(25,469,403 25,478,409)46.503 F 24.318
(1.000 25,478,409)31.554 F(1.000)29.592 E F2 55.287(LU 23,055,832)
142.191 256 R 29.052(23,572,337 1.022)15.646 F 27.09(23,444,562 1.017)
26.82 F F1 45.279(Matcnt 1,769,321)142.191 267 R 29.052(1,861,150 1.052)
20.65 F 27.09(1,861,150 1.052)31.824 F(Matm)142.191 278 Q 42.876
(ul 4,444,911)-.09 F 29.052(4,448,212 1.001)20.65 F 27.09
(4,448,212 1.001)31.824 F 40.284(Matsum 1,277,465)142.191 289 R 29.052
(1,279,322 1.001)20.65 F 27.09(1,279,322 1.001)31.824 F -2.142(Sor t)
142.191 300 R 18.148(7,672,281 7,672,292)57.924 F 29.322
(1.000 7,672,292)31.554 F(1.000)29.592 E F2(Spr)142.191 311 Q 56.925
(sin 28,339)-.135 F 29.052(28,664 1.011)33.16 F 27.09(28,404 1.002)
44.334 F F1 51.777(Stats 1,016,048)142.191 322 R 29.052(1,016,128 1.000)
20.65 F 27.09(1,016,128 1.000)31.824 F F2 39.285(Summidall 15,340)
142.191 333 R 29.052(18,090 1.179)33.16 F 27.09(15,341 1.000)44.334 F
31.284(Summinmax 16,080)142.191 344 R 29.052(17,080 1.062)33.16 F 27.09
(16,080 1.000)44.334 F 33.291(Sumnegpos 11,067)142.191 355 R 29.052
(13,068 1.181)33.16 F 27.09(11,068 1.000)44.334 F(Sumod)142.191 366 Q
(de)-.09 E 28.512(ven 15,093)-.135 F 29.052(16,112 1.068)33.16 F 27.09
(15,102 1.001)44.334 F F1 54.288(Sym 2,747,654)142.191 377 R 29.052
(2,747,708 1.000)20.65 F 27.09(2,747,708 1.000)31.824 F 513.909 381.25
137.691 381.25 DL -2.007 -.36(Av e)142.191 390 T -.09(ra).36 G 39.447
(ge 7,734,420).09 F 29.052(7,882,403 2.157)20.65 F 27.09
(7,815,352 1.011)31.824 F 513.909 394.25 137.691 394.25 DL 513.909
396.25 137.691 396.25 DL 452.79 142.95 452.79 394.25 DL 389.421 142.95
389.421 394.25 DL 326.592 142.95 326.592 394.25 DL 263.763 142.95
263.763 394.25 DL 205.227 142.95 205.227 394.25 DL(Best-Case Results)
288.54 406.1 Q 513.909 411.45 137.691 411.45 DL -2.232(Obser v)214.965
421.3 R 13.986(ed +)-.225 F(Iter)2.502 E 2.502(.C)-.45 G 10.998(ount +)
-2.502 F(Iter)2.502 E 2.502(.C)-.45 G 10.998(ount +)-2.502 F(Br)2.502 E
2.502(.C)-.45 G(onstr)-2.502 E 13.5(.+)-.45 G(Br)-10.998 E 2.502(.C)-.45
G(onstr)-2.502 E(.)-.45 E 31.18(Cycles Cycles)220.995 432.3 R 36.594
(Ratio Cycles)38.826 F(Ratio)39.366 E(Name)158.332 426.8 Q 513.909
437.65 137.691 437.65 DL F2 68.292(Des 65,615)142.191 447.5 R 29.052
(22,247 0.339)33.16 F 27.09(57,920 0.883)44.334 F F1 72.297(Expint 125)
142.191 458.5 R 29.052(118 0.944)45.67 F 27.09(118 0.944)56.844 F -.405
(Fr)142.191 469.5 S 67.707(esnel 181).405 F 29.052(172 0.950)45.67 F
27.09(172 0.950)56.844 F F2 54.783(Gaujac 45,270)142.191 480.5 R 29.052
(44,566 0.984)33.16 F 27.09(45,127 0.997)44.334 F F1 63.792(Hes 306,733)
142.191 491.5 R 29.052(258,908 0.844)28.156 F 27.09(258,908 0.844)39.33
F 47.268(Integ 19,160,842)142.191 502.5 R 29.052(19,135,118 0.999)15.646
F 27.09(19,135,118 0.999)26.82 F -2.232(Inter p)142.191 513.5 R 18.148
(6,485,878 6,479,865)51.507 F 29.322(0.999 6,479,865)31.554 F(0.999)
29.592 E F2 55.287(LU 12,883,939)142.191 524.5 R 29.052(637,365 0.049)
28.156 F 27.09(11,847,472 0.920)26.82 F F1 45.279(Matcnt 1,549,095)
142.191 535.5 R 29.052(1,548,798 1.000)20.65 F 27.09(1,548,798 1.000)
31.824 F(Matm)142.191 546.5 Q 42.876(ul 4,444,666)-.09 F 29.052
(4,420,068 0.994)20.65 F 27.09(4,420,068 0.994)31.824 F 40.284
(Matsum 1,257,239)142.191 557.5 R 29.052(1,167,140 0.923)20.65 F 27.09
(1,167,140 0.923)31.824 F -2.142(Sor t)142.191 568.5 R 30.658
(19,966 19,950)70.434 F 41.832(0.999 19,950)31.554 F(0.999)29.592 E
59.292(Sprsin 17,436)142.191 579.5 R 29.052(17,379 0.997)33.16 F 27.09
(17,379 0.997)44.334 F 59.283(Stats 607,399)142.191 590.5 R 29.052
(601,406 0.990)28.156 F 27.09(601,406 0.990)39.33 F F2 39.285
(Summidall 15,340)142.191 601.5 R 29.052(8,072 0.526)38.164 F 27.09
(15,312 0.998)44.334 F F1 34.794(Summinmax 13,080)142.191 612.5 R 29.052
(13,062 0.999)33.16 F 27.09(13,062 0.999)44.334 F 41.778
(Sumnegpos 9,067)142.191 623.5 R 29.052(9,049 0.998)38.164 F 27.09
(9,049 0.998)49.338 F F2(Sumod)142.191 634.5 Q(de)-.09 E 46.026(ven 94)
-.135 F 29.052(63 0.670)50.674 F 27.09(94 1.000)61.848 F F1 79.308
(Sym 160)142.191 645.5 R 29.052(160 1.000)45.67 F 27.09(160 1.000)56.844
F 513.909 649.75 137.691 649.75 DL -2.007 -.36(Av e)142.191 658.5 T -.09
(ra).36 G 39.447(ge 2,467,480).09 F 29.052(1,809,658 0.853)20.65 F 27.09
(2,395,748 0.970)31.824 F 513.909 663.85 137.691 663.85 DL 452.79 411.45
452.79 663.85 DL 389.421 411.45 389.421 663.85 DL 326.592 411.45 326.592
663.85 DL 263.763 411.45 263.763 663.85 DL 205.227 411.45 205.227 663.85
DL 513.909 128.85 513.909 663.85 DL 137.691 128.85 137.691 663.85 DL F0
(87)319.8 725.04 Q EP
%%Page: 88 90
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF(automatic detection and e)111.6 96.4 Q
(xploitation of branch constraints.)-.18 E(Se)126.6 125.2 Q -.18(ve)-.3
G 1.602(ral of the test programs e).18 F 1.602
(xhibit branch constraints that ha)-.18 F 1.962 -.18(ve b)-.24 H 1.602
(een described in).18 F .98(this chapter)111.6 154 R 6.98(.T)-.66 G(he)
-6.98 E/F1 12/Times-Italic@0 SF(Sumodde)3.979 E(ven)-.18 E F0(,)A F1
(Sumne)3.979 E(gpos)-.48 E F0 3.979(,a)C(nd)-3.979 E F1(Summidall)3.979
E F0 .979(programs correspond to the)3.979 F -.18(ex)111.6 182.8 S .197
(amples illustrated in Figures 21, 22, and 23, respecti).18 F -.18(ve)
-.3 G(ly).18 E 6.198(.T)-.78 G(he)-6.198 E F1(Des)3.198 E F0 .198
(program contains a)3.198 F .492(loop in which the inde)111.6 211.6 R
3.492(xv)-.18 G .492(ariable is being compared to constants, gi)-3.792 F
.492(ving rise to iteration-)-.3 F .04(based constraints.)111.6 240.4 R
(The)6.04 E F1(Expint)3.04 E F0 .041
(program performs more computation when a loop v)3.04 F(ariable)-.3 E
.362(is equal to a loop-in)111.6 269.2 R -.3(va)-.48 G .362(riant v).3 F
.362(alue on a single loop iteration.)-.3 F F1 -2.124 -.66(Fr e)6.361 H
(snel).66 E F0(tak)3.361 E .361(es dif)-.12 F .361(ferent paths)-.3 F
.081(on the odd and e)111.6 298 R -.18(ve)-.3 G 3.081(ns).18 G .082
(teps in the e)-3.081 F -.3(va)-.3 G .082(luation of the series.).3 F F1
(Gaujac)6.082 E F0 -.18(exe)3.082 G .082(cutes dif).18 F .082
(ferent paths)-.3 F .369
(depending upon the speci\214ed iteration of a loop.)111.6 326.8 R(The)
6.368 E F1(LU)3.368 E F0 .368(program contains some nested)3.368 F 1.544
(loops in which the the body of the inner loop may or may not be entere\
d based on a)111.6 355.6 R 1.041(condition in the outer loop.)111.6
384.4 R(The)7.041 E F1(Spr)4.041 E(sin)-.12 E F0 1.04
(program does not perform a computation for a)4.041 F .137
(single column \(the diagonal element\) of each ro)111.6 413.2 R 3.138
(wo)-.3 G 3.138(fam)-3.138 G 3.138(atrix. The)-3.138 F F1(Summinmax)
3.138 E F0(program)3.138 E 1.103(determines the minimum and maximum of \
each corresponding pair of elements in tw)111.6 442 R(o)-.12 E -.18(ve)
111.6 470.8 S(ctors and these tw).18 E 3(ot)-.12 G
(ests are logically correlated.)-3 E 1.287(The results sho)126.6 499.6 R
4.287(wt)-.3 G 1.287(hat e)-4.287 F 1.288(xploiting v)-.18 F 1.288
(alue-dependent constraint information in a timing)-.3 F .756
(analyzer can signi\214cantly tighten WCET and BCET predictions.)111.6
528.4 R .756(The programs)6.756 F F1 -2.124 -.66(Fr e)3.756 H(snel).66 E
F0(and)111.6 557.2 Q F1(Sumodde)3.076 E(ven)-.18 E F0 -.18(exe)3.076 G
.077(cute alternating paths in a loop depending upon a \215ag v).18 F
3.077(ariable. One)-.3 F .695(of the alternating paths has a slightly l\
onger WCET than the other path in both of these)111.6 586 R 3.739
(programs. The)111.6 614.8 R .739(timing analyzer w)3.739 F .74
(as able to determine that longer path of each program)-.12 F .375
(could only be e)111.6 643.6 R -.18(xe)-.18 G .375
(cuted for one half of the iterations, which reduced the o).18 F -.18
(ve)-.18 G(restimations.).18 E .451(In the case of)111.6 672.4 R F1
(Sumodde)3.451 E(ven)-.18 E F0 .452
(in best case, the compiler originally determined that the loop)3.452 F
(88)319.8 725.04 Q EP
%%Page: 89 91
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 1.387
(had a minimum number of iterations of 1, b)111.6 96.4 R 1.387
(ut the timing analyzer w)-.24 F 1.387(as able to predict)-.12 F .421
(that the loop w)111.6 125.2 R .422(as required to iterate twice, using\
the methods described in Section 5.2.3.)-.12 F 1.171
(The result of this analysis w)111.6 154 R 1.171(as an e)-.12 F 1.171
(xact BCET prediction.)-.18 F/F1 12/Times-Italic@0 SF(LU)7.171 E F0
1.171(also sho)4.171 F 1.17(wed a dramatic)-.3 F 1.392
(tightening in its BCET prediction.)111.6 182.8 R 1.392
(There were three nested loops in which the timing)7.392 F 2.266
(analyzer w)111.6 211.6 R 2.266(as able to e)-.12 F 2.266
(xploit iteration-based constraints.)-.18 F 2.266(The pre)8.266 F 2.266
(vious v)-.3 F 2.265(ersion of the)-.18 F .045
(timing analyzer assumed that the inner loop in these three nests w)
111.6 240.4 R .046(ould al)-.12 F -.12(wa)-.12 G .046(ys be a).12 F -.24
(vo)-.24 G(ided).24 E 1.39(along the best-case path of their respecti)
111.6 269.2 R 1.749 -.18(ve s)-.3 H 1.389(urrounding loops.).18 F 1.389
(But in f)7.389 F 1.389(act these loops)-.12 F -.18(exe)111.6 298 S
4.199(cute on all b).18 F 4.199
(ut one iteration of the surrounding loops.)-.24 F(The)10.199 E F1
(Summinmax)7.199 E F0(and)7.199 E F1(Sumne)111.6 326.8 Q(gpos)-.48 E F0
2.152(programs ha)5.152 F 2.512 -.18(ve l)-.24 H 2.151
(ogically correlated branches and the timing analyzer w).18 F(as)-.12 E
3.899(able to detect for each program that the longest path w)111.6
355.6 R 3.899(as infeasible due to this)-.12 F 7.166(correlation. The)
111.6 384.4 R 4.165
(compiler detected iteration-based constraints for the)7.166 F F1
(Gaujac)7.165 E F0(and)7.165 E F1(Summidall)111.6 413.2 Q F0 2.468
(programs indicating that certain paths could only be e)5.467 F -.18(xe)
-.18 G 2.468(cuted in speci\214c).18 F 3.451(iterations. There)111.6 442
R -.12(wa)3.451 G 3.451(sl).12 G .451(ittle o)-3.451 F -.18(ve)-.18 G
.451(restimation in the pre).18 F .451(vious v)-.3 F .451
(ersion of the timing analyzer)-.18 F(for)111.6 470.8 Q F1(Gaujac)4.166
E F0 1.166(since these iteration-based constraints were associated with\
paths that were)4.166 F 2.114
(not in the most deeply nested loop of the program.)111.6 499.6 R(Ho)
8.114 E(we)-.3 E -.18(ve)-.3 G -.48(r,).18 G F1(Summidall)5.594 E F0
3.434 -.66('s i)D(teration-).66 E 1.322
(based constraints were for the most frequently e)111.6 528.4 R -.18(xe)
-.18 G 1.322(cuted portion of that program and a).18 F .601
(signi\214cant o)111.6 557.2 R -.18(ve)-.18 G .601
(restimation of WCET w).18 F .601(as a)-.12 F -.24(vo)-.24 G 3.601
(ided. In).24 F .601(best case, the timing analyzer w)3.601 F(as)-.12 E
.557(able to determine that the loop')111.6 586 R 3.557(ss)-.66 G .557
(hortest path in)-3.557 F F1(Summidall)3.557 E F0 .557(could e)3.557 F
-.18(xe)-.18 G .558(cute at most once,).18 F .644
(and its second shortest path could e)111.6 614.8 R -.18(xe)-.18 G .644
(cute for at most 250 of the 1,000 iterations.).18 F(Ev)6.644 E(en)-.18
E .151(the longest path w)111.6 643.6 R .151(as required to e)-.12 F
-.18(xe)-.18 G .152(cute for at least 499 iterations.).18 F .152
(These iteration-based)6.152 F 1.272
(constraints signi\214cantly tightened)111.6 672.4 R F1(Summidall)4.272
E F0 2.592 -.66('s B)D 1.272(CET prediction.).66 F(Finally)7.272 E 4.272
(,t)-.78 G 1.272(he compiler)-4.272 F(89)319.8 725.04 Q EP
%%Page: 90 92
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 1.281(detected an iteration-based constraint in)
111.6 96.4 R/F1 12/Times-Italic@0 SF(Spr)4.281 E(sin)-.12 E F0(and)4.281
E F1(Expint)4.281 E F0 1.281(that w)4.281 F 1.281(as associated with an)
-.12 F 1.043(equality test between a loop v)111.6 125.2 R 1.042
(ariable and a v)-.3 F 1.042(alue that w)-.3 F 1.042(as in)-.12 F -.3
(va)-.48 G 1.042(riant for that loop.).3 F(This)7.042 E 1.934
(means that the loop could only e)111.6 154 R -.18(xe)-.18 G 1.934
(cute a path associated with the equality transition).18 F .545
(from the block containing the test for a single iteration of the loop.)
111.6 182.8 R -.18(Fo)6.545 G(r).18 E F1(Spr)3.545 E(sin)-.12 E F0 .545
(this path)3.545 F 2.968(required a smaller WCET than when the loop v)
111.6 211.6 R 2.968(ariable w)-.3 F 2.969(as not equal to the loop-)-.12
F(in)111.6 240.4 Q -.3(va)-.48 G 1.626(riant v).3 F 4.626(alue. Thus,)
-.3 F 1.626(the o)4.626 F -.18(ve)-.18 G 1.626(restimation by the pre)
.18 F 1.626(vious v)-.3 F 1.626(ersion of the analyzer w)-.18 F(as)-.12
E 4.557(quite small and w)111.6 269.2 R 4.558
(ould decrease when applied to arrays with lar)-.12 F 4.558
(ger dimensions.)-.216 F(Ho)111.6 298 Q(we)-.3 E -.18(ve)-.3 G 1.826
-.48(r, t).18 H .866(he opposite situation occurs in).48 F F1(Expint)
3.866 E F0 3.866(,w)C .866(hich has a higher WCET associated)-3.866 F
3.474(with the path where the loop v)111.6 326.8 R 3.475
(ariable is equal to the loop-in)-.3 F -.3(va)-.48 G 3.475(riant v).3 F
6.475(alue. Thus,)-.3 F -.18(ex)111.6 355.6 S 3.331
(ploiting this branch constraint signi\214cantly reduces the WCET o).18
F -.18(ve)-.18 G 3.33(restimation of).18 F F1(Expint)111.6 384.4 Q F0(.)
A .586(The slight remaining WCET o)126.6 413.2 R -.18(ve)-.18 G .587
(restimations and BCET underestimations for se).18 F -.18(ve)-.3 G(ral)
.18 E .541(of the programs in the current v)111.6 442 R .541
(ersion of the timing analyzer were due to a fe)-.18 F 3.54(wr)-.3 G
(easons.)-3.54 E 1.141(First, the)111.6 470.8 R F1(Des)4.141 E F0 1.142
(program in particular had se)4.141 F -.18(ve)-.3 G 1.142
(ral arrays in which the elements are hard-).18 F 1.354
(coded in the data se)111.6 499.6 R 1.354
(gment, and these array element v)-.18 F 1.354(alues af)-.3 F 1.354
(fect v)-.3 F 1.354(arious comparisons.)-.3 F .405
(These branch constraints were not detected in the compiler)111.6 528.4
R 6.405(.S)-.66 G .405(econd, in w)-6.405 F .406(orst case some)-.12 F
.29(instructions conserv)111.6 557.2 R(ati)-.3 E -.18(ve)-.3 G .29
(ly cate).18 F .29
(gorized as misses actually hit in cache due to the order in)-.18 F .629
(which paths were e)111.6 586 R -.18(xe)-.18 G .629
(cuted because of dependences on data v).18 F(alues.)-.3 E F1(Matcnt)
6.63 E F0 .63(had about a)3.63 F 5.022(90,000 c)111.6 614.8 R 5.022
(ycle \(about 5%\) o)-.18 F -.18(ve)-.18 G 5.022(restimation in w).18 F
5.021(orst case due to this conserv)-.12 F(ati)-.3 E -.18(ve)-.3 G(cate)
111.6 643.6 Q 4.429(gorization. Similarly)-.18 F 4.429(,i)-.78 G 4.429
(nb)-4.429 G 1.429(est case some instructions were conserv)-4.429 F(ati)
-.3 E -.18(ve)-.3 G 1.43(ly classi\214ed).18 F 1.421(as hits e)111.6
672.4 R -.18(ve)-.3 G 4.421(nt).18 G 1.421(hough the)-4.421 F 4.421(ya)
-.18 G 1.421(ctually miss in cache.)-4.421 F F1(Hes)7.421 E F0 1.421
(had a 44,541 c)4.421 F 1.42(ycle \(about 15%\))-.18 F(90)319.8 725.04 Q
EP
%%Page: 91 93
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF .188
(underestimation in best case for this reason.)111.6 96.4 R .189
(Third, there were some minor limitations to)6.188 F 1.703
(the timing analysis that result in conserv)111.6 125.2 R(ati)-.3 E
2.063 -.18(ve p)-.3 H 4.703(redictions. F).18 F 1.703
(or instance, the programs)-.18 F/F1 12/Times-Italic@0 SF(Hes)111.6 154
Q F0(,)A F1(Inte)5.227 E(g)-.48 E F0(and)5.227 E F1(LU)5.227 E F0 2.228
(had non-rectangular loop nests where the number of iterations is)5.227
F 1.324(rounded to an inte)111.6 182.8 R(ger)-.18 E 4.324(,a)-.48 G
1.324(nd this ef)-4.324 F 1.323(fect w)-.3 F 1.323
(as described in the pre)-.12 F 1.323(vious chapter)-.3 F 7.323(.A)-.66
G 1.323(lso, the)-7.323 F .242(underestimation in)111.6 211.6 R F1(LU)
3.242 E F0 -.12(wa)3.242 G 3.243(sp).12 G .243(artially due to the f)
-3.243 F .243(act that an iteration-based constraint w)-.12 F(as)-.12 E
2.513(not generated by the compiler for a condition containing a comple)
111.6 240.4 R 5.513(xe)-.18 G 2.513(xpression that)-5.693 F .019
(needed to be e)111.6 269.2 R 3.019(xpanded. Finally)-.18 F 3.02(,t)-.78
G .02(here were slightly conserv)-3.02 F(ati)-.3 E .38 -.18(ve p)-.3 H
.02(redictions that resulted).18 F 3.381(from instruction caching cate)
111.6 298 R 3.38(gorizations that change between loop le)-.18 F -.18(ve)
-.3 G 3.38(ls and their).18 F 4.189
(interaction with the pipeline analysis, af)111.6 326.8 R 4.189
(fecting both WCET and BCET [26].)-.3 F(In)10.19 E(particular)111.6
355.6 Q 7.67(,t)-.48 G 4.67(he 8% underestimation of the BCET of)-7.67 F
F1(Summatrix)7.67 E F0 -.12(wa)7.67 G 7.67(sd).12 G 4.67(ue to this)
-7.67 F(interaction.)111.6 384.4 Q .48 LW 365.97 426.28 285.63 426.28 DL
3(5.4 Conclusions)285.63 423.28 R 2.345(This chapter has described ho)
111.6 452.08 R 5.345(wb)-.3 G 2.346
(ranch constraints were automatically detected by a)-5.345 F 2.998
(compiler and e)111.6 480.88 R 2.998(xploited by a timing analyzer)-.18
F 8.998(.T)-.66 G 2.998(his chapter described techniques to)-8.998 F(ef)
111.6 509.68 Q 1.758(\214ciently detect constraints from ef)-.3 F 1.758
(fects causing the outcome of a branch to become)-.3 F(kno)111.6 538.48
Q 1.13
(wn and from ranges of iterations associated with branch outcomes.)-.3 F
1.13(This constraint)7.13 F .982(information could be used by a v)111.6
567.28 R .982(ariety of timing analyzers, including those that use an)
-.3 F 1.153(ILP solv)111.6 596.08 R(er)-.18 E 7.153(.T)-.66 G 1.153(hes\
e branch constraints were used in a non-ILP based timing analyzer to)
-7.153 F .521(constrain the minimum and maximum iterations associated w\
ith each path in a loop and)111.6 624.88 R(ho)111.6 653.68 Q 3.853(wt)
-.3 G .853(hese path constraints were used in WCET loop analysis.)-3.853
F .853(The results indicate that)6.853 F 1.06(detection and e)111.6
682.48 R 1.061(xploitation of branch constraints can signi\214cantly ti\
ghten WCET timing)-.18 F(91)319.8 725.04 Q EP
%%Page: 92 94
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 4.034(predictions. Furthermore,)111.6 96.4 R
1.033(the approaches used for detection and e)4.034 F 1.033
(xploitation of branch)-.18 F 3.228(constraints were sho)111.6 125.2 R
3.228(wn to be quite ef)-.3 F 3.228
(\214cient and are fully automated, requiring no)-.3 F
(interaction from the user)111.6 154 Q(.)-.66 E(92)319.8 725.04 Q EP
%%Page: 93 95
%%BeginPageSetup
BP
%%EndPageSetup
/F0 16/Times-Roman@0 SF(CHAPTER 6)283.352 167 Q(SUMMAR)249.048 206 Q 4
(YR)-1.04 G(ESUL)-4 E(TS)-1.472 E/F1 12/Times-Roman@0 SF -.96(Ta)111.6
245 S 3.157(ble 23 summarizes all of the WCET and BCET ratios for the v)
.96 F 3.156(arious le)-.3 F -.18(ve)-.3 G 3.156(ls of).18 F 3.981
(analysis. The)111.6 271 R/F2 12/Helvetica@0 SF(Naiv)3.981 E 4.317(eR)
-.3 G(atio)-4.317 E F1 .981
(column refers to no analysis being performed.)3.981 F .982(Each of the)
6.982 F 2.802(remaining ratio columns sho)111.6 297 R 2.801
(ws the result of the analysis adding one feature to the)-.3 F 2.649
(column to its left.)111.6 323 R 2.65
(The ratios in the rightmost column represent all of the analysis)8.649
F .403(described in this dissertation, taking into account instruction \
caching, pipelining, as well)111.6 349 R .675
(as automatic iteration calculation and branch constraint analysis.)
111.6 375 R .676(The results sho)6.675 F 3.676(wt)-.3 G(hat,)-3.676 E
.539(on a)111.6 401 R -.18(ve)-.24 G .538
(rage, the WCET is predicted to within 1.1% of the observ).18 F .538
(ed w)-.18 F .538(orst-case time, and)-.12 F
(the BCET is predicted to within 3.0% of the observ)111.6 427 Q
(ed best-case time.)-.18 E -.96(Ta)126.6 453 S .166(ble 24 sho).96 F
.166(ws the response time of the timing analysis en)-.3 F 3.166
(vironment. All)-.48 F .167(modules in)3.167 F .636
(the timing analysis en)111.6 479 R .636(vironment ha)-.48 F .996 -.18
(ve b)-.24 H .636(een compiled with optimizations.).18 F .636
(The \214rst three)6.636 F .183(columns gi)111.6 505 R .543 -.18(ve t)
-.3 H .184(he percentage share of the total analysis time di).18 F .184
(vided among the compiler)-.3 F(,)-.48 E 4.469
(static cache simulator and the timing analyzer)111.6 531 R 10.469(.I)
-.66 G 7.469(ns)-10.469 G 4.468(ome ro)-7.469 F 4.468
(ws of the table, the)-.3 F 1.766
(percentages do not total 100% due to rounding.)111.6 557 R 1.766
(The last column gi)7.766 F -.18(ve)-.3 G 4.766(st).18 G 1.766(he e)
-4.766 F -.18(xe)-.18 G(cution).18 E 3.711
(time in seconds required for the timing analyzer to mak)111.6 583 R
6.711(et)-.12 G 3.71(he WCET and BCET)-6.711 F 3.251(predictions. The)
111.6 609 R .251
(times were obtained by calculating for each program the a)3.251 F -.18
(ve)-.24 G .251(rage of the).18 F 3.215(elapsed times of ten e)111.6 635
R -.18(xe)-.18 G 3.215(cutions of the timing analyzer on an UltraSP).18
F 6.215(ARC. These)-1.104 F 3.45(response time measurements sho)111.6
661 R 6.45(wt)-.3 G 3.45(hat on a)-6.45 F -.18(ve)-.24 G 3.451
(rage, the timing analysis tak).18 F 3.451(es only)-.12 F(93)319.8
725.04 Q EP
%%Page: 94 96
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF -.96(Ta)206.364 108.4 S
(ble 23: Estimated Ratios for Le).96 E -.18(ve)-.3 G(ls of Analysis).18
E .36 LW 500.571 128.85 151.029 128.85 DL/F1 9/Helvetica@0 SF -.27(Wo)
285.93 137.6 S(rst-Case Results).27 E 500.571 142.95 151.029 142.95 DL
(Naiv)223.933 152.8 Q 15.872(eC)-.225 G(ache Only)-15.872 E 2.502(+P)
13.5 G 10.998(ipelining +)-2.502 F(Iter)2.502 E 2.502(.C)-.45 G 10.998
(ount +)-2.502 F(Br)2.502 E 2.502(.C)-.45 G(onstr)-2.502 E(.)-.45 E
27.261(Ratio Ratio)224.82 163.8 R 38.043(Ratio Ratio)39.388 F(Ratio)
42.093 E(Name)169.794 158.3 Q 500.571 169.15 151.029 169.15 DL 52.533
(Des 5.144)155.529 179 R 35.374(2.663 1.152)28.251 F 35.577(1.152 1.117)
39.033 F 38.52(Expint 50.384)155.529 190 R 30.37(34.426 22.215)23.247 F
35.577(22.215 1.001)34.029 F -.405(Fr)155.529 201 S 38.934(esnel 2.222)
.405 F 35.374(1.533 1.024)28.251 F 35.577(1.024 1.001)39.033 F 40.023
(Gaujac 2.006)155.529 212 R 35.374(1.466 1.004)28.251 F 35.577
(1.004 1.000)39.033 F 47.529(Hes 12.302)155.529 223 R 35.374
(7.251 2.339)28.251 F 35.577(1.016 1.016)39.033 F 48.519(Integ 4.419)
155.529 234 R 35.374(2.420 1.332)28.251 F 35.577(1.001 1.001)39.033 F
-2.232(Inter p)155.529 245 R 25.749(4.208 2.966)47.754 F 36.531
(1.991 1.000)37.876 F(1.000)38.079 E 52.029(LU 34.338)155.529 256 R
35.374(18.257 5.403)23.247 F 35.577(1.022 1.017)39.033 F 41.526
(Matcnt 3.688)155.529 267 R 35.374(1.844 1.052)28.251 F 35.577
(1.052 1.052)39.033 F(Matm)155.529 278 Q 39.123(ul 4.977)-.09 F 35.374
(2.108 1.001)28.251 F 35.577(1.001 1.001)39.033 F 36.531(Matsum 4.082)
155.529 289 R 35.374(1.880 1.001)28.251 F 35.577(1.001 1.001)39.033 F
-2.142(Sor t)155.529 300 R 25.749(10.546 4.982)49.167 F 36.531
(1.988 1.000)37.876 F(1.000)38.079 E 43.029(Sprsin 6.644)155.529 311 R
35.374(2.711 1.011)28.251 F 35.577(1.011 1.002)39.033 F 48.024
(Stats 3.118)155.529 322 R 35.374(1.823 1.000)28.251 F 35.577
(1.000 1.000)39.033 F 21.528(Summidall 13.834)155.529 333 R 35.374
(6.787 1.179)28.251 F 35.577(1.179 1.000)39.033 F 13.527
(Summinmax 12.511)155.529 344 R 35.374(6.349 1.062)28.251 F 35.577
(1.062 1.000)39.033 F 15.507(Sumnegpos 14.379)155.529 355 R 35.374
(7.054 1.181)28.251 F 35.577(1.181 1.000)39.033 F(Sumodde)155.529 366 Q
-.225(ve)-.27 G 13.5(n1).225 G 25.749(2.943 6.373)-13.5 F 36.531
(1.068 1.068)37.876 F(1.001)38.079 E 45.531(Sym 26.114)155.529 377 R
35.374(8.980 1.995)28.251 F 35.577(1.000 1.000)39.033 F 500.571 381.25
151.029 381.25 DL -2.007 -.36(Av e)155.529 390 T -.09(ra).36 G 30.69
(ge 11.993).09 F 35.374(6.414 2.631)28.251 F 35.577(2.157 1.011)39.033 F
500.571 394.25 151.029 394.25 DL 500.571 396.25 151.029 396.25 DL
439.452 142.95 439.452 394.25 DL 376.623 142.95 376.623 394.25 DL 316.35
142.95 316.35 394.25 DL 255.834 142.95 255.834 394.25 DL 214.812 142.95
214.812 394.25 DL(Best-Case Results)288.54 406.1 Q 500.571 411.45
151.029 411.45 DL(Naiv)223.933 421.3 Q 15.872(eC)-.225 G(ache Only)
-15.872 E 2.502(+P)13.5 G 10.998(ipelining +)-2.502 F(Iter)2.502 E 2.502
(.C)-.45 G 10.998(ount +)-2.502 F(Br)2.502 E 2.502(.C)-.45 G(onstr)
-2.502 E(.)-.45 E 27.261(Ratio Ratio)224.82 432.3 R 38.043(Ratio Ratio)
39.388 F(Ratio)42.093 E(Name)169.794 426.8 Q 500.571 437.65 151.029
437.65 DL 52.533(Des 0.191)155.529 447.5 R 35.374(0.292 0.339)28.251 F
35.577(0.339 0.883)39.033 F 43.524(Expint 0.232)155.529 458.5 R 35.374
(0.816 0.944)28.251 F 35.577(0.944 0.944)39.033 F -.405(Fr)155.529 469.5
S 38.934(esnel 0.238).405 F 35.374(0.834 0.950)28.251 F 35.577
(0.950 0.950)39.033 F 40.023(Gaujac 0.268)155.529 480.5 R 35.374
(0.753 0.984)28.251 F 35.577(0.984 0.997)39.033 F 52.533(Hes 0.014)
155.529 491.5 R 35.374(0.043 0.046)28.251 F 35.577(0.844 0.844)39.033 F
48.519(Integ 0.131)155.529 502.5 R 35.374(0.132 0.668)28.251 F 35.577
(0.999 0.999)39.033 F -2.232(Inter p)155.529 513.5 R 25.749(0.007 0.018)
47.754 F 36.531(0.022 0.999)37.876 F(0.999)38.079 E 57.033(LU 0.017)
155.529 524.5 R 35.374(0.018 0.022)28.251 F 35.577(0.049 0.920)39.033 F
41.526(Matcnt 0.247)155.529 535.5 R 35.374(0.659 1.000)28.251 F 35.577
(1.000 1.000)39.033 F(Matm)155.529 546.5 Q 39.123(ul 0.322)-.09 F 35.374
(0.399 0.994)28.251 F 35.577(0.994 0.994)39.033 F 36.531(Matsum 0.257)
155.529 557.5 R 35.374(0.761 0.923)28.251 F 35.577(0.923 0.923)39.033 F
-2.142(Sor t)155.529 568.5 R 25.749(0.481 0.495)54.171 F 36.531
(0.999 0.999)37.876 F(0.999)38.079 E 43.029(Sprsin 0.419)155.529 579.5 R
35.374(0.900 0.997)28.251 F 35.577(0.997 0.997)39.033 F 48.024
(Stats 0.300)155.529 590.5 R 35.374(0.687 0.990)28.251 F 35.577
(0.990 0.990)39.033 F 26.532(Summidall 0.457)155.529 601.5 R 35.374
(0.461 0.526)28.251 F 35.577(0.526 0.998)39.033 F 18.531
(Summinmax 0.918)155.529 612.5 R 35.374(0.922 0.999)28.251 F 35.577
(0.999 0.999)39.033 F 20.511(Sumnegpos 0.883)155.529 623.5 R 35.374
(0.886 0.998)28.251 F 35.577(0.998 0.998)39.033 F(Sumodde)155.529 634.5
Q -.225(ve)-.27 G 18.504(n0).225 G 25.749(.628 0.670)-18.504 F 36.531
(0.670 0.670)37.876 F(1.000)38.079 E 50.535(Sym 0.238)155.529 645.5 R
35.374(0.856 1.000)28.251 F 35.577(1.000 1.000)39.033 F 500.571 649.75
151.029 649.75 DL -2.007 -.36(Av e)155.529 658.5 T -.09(ra).36 G 35.694
(ge 0.329).09 F 35.374(0.558 0.741)28.251 F 35.577(0.853 0.970)39.033 F
500.571 663.85 151.029 663.85 DL 439.452 411.45 439.452 663.85 DL
376.623 411.45 376.623 663.85 DL 316.35 411.45 316.35 663.85 DL 255.834
411.45 255.834 663.85 DL 214.812 411.45 214.812 663.85 DL 500.571 128.85
500.571 663.85 DL 151.029 128.85 151.029 663.85 DL F0(94)319.8 725.04 Q
EP
%%Page: 95 97
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF -.96(Ta)228.504 96.4 S(ble 24: Response T).96 E
(ime Measurements)-.42 E .36 LW 462.024 116.85 189.576 116.85 DL/F1 9
/Helvetica@0 SF(Static Cache)309.609 126.7 Q 18.945(Timing Timing)17.437
F(Sim)316.161 137.7 Q 17.55(ulator Analyz)-.09 F 11.07(er Analyz)-.135 F
(er)-.135 E(Compiler)260.109 132.2 Q -.45(Pe)262.827 148.7 S 23.944
(rcent P).45 F 23.382(ercent P)-.45 F 13.154(ercent Seconds)-.45 F(Name)
208.341 137.7 Q 462.024 154.05 189.576 154.05 DL 60.525(Des 32)194.076
163.9 R 48.942(56)49.504 G 34.686(31)-48.942 G(.35)-34.686 E 51.516
(Expint 38)194.076 174.9 R 48.942(45)49.504 G 39.69(8.)-48.942 G(31)
-39.69 E -.405(Fr)194.076 185.9 S 46.926(esnel 52).405 F 48.942(44)
49.504 G 39.69(6.)-48.942 G(22)-39.69 E 48.015(Gaujac 11)194.076 196.9 R
48.942(18)49.504 G 34.686(83)-48.942 G(.08)-34.686 E 60.525(Hes 81)
194.076 207.9 R 48.942(11)49.504 G 39.69(8.)-48.942 G(71)-39.69 E 56.511
(Integ 27)194.076 218.9 R 48.942(46)49.504 G 39.69(9.)-48.942 G(15)
-39.69 E -2.232(Inter p)194.076 229.9 R 47.002(36 3)55.746 F 37.188
(61 .33)48.942 F 65.025(LU 70)194.076 240.9 R 48.942(12)49.504 G 34.686
(91)-48.942 G(.17)-34.686 E 49.518(Matcnt 43)194.076 251.9 R 48.942(65)
49.504 G 39.69(0.)-48.942 G(16)-39.69 E(Matm)194.076 262.9 Q 47.115
(ul 40)-.09 F 48.942(55)49.504 G 39.69(5.)-48.942 G(21)-39.69 E 44.523
(Matsum 41)194.076 273.9 R 48.942(65)49.504 G 39.69(3.)-48.942 G(15)
-39.69 E -2.142(Sor t)194.076 284.9 R 47.002(32 5)62.163 F 37.188
(64 .28)48.942 F 51.021(Sprsin 44)194.076 295.9 R 48.942(55)49.504 G
39.69(1.)-48.942 G(11)-39.69 E 56.016(Stats 36)194.076 306.9 R 48.942
(65)49.504 G 39.69(8.)-48.942 G(36)-39.69 E 34.524(Summidall 24)194.076
317.9 R 48.942(54)49.504 G 39.69(9.)-48.942 G(06)-39.69 E 26.523
(Summinmax 59)194.076 328.9 R 48.942(53)49.504 G 39.69(6.)-48.942 G(05)
-39.69 E 28.503(Sumnegpos 62)194.076 339.9 R 48.942(43)49.504 G 39.69
(4.)-48.942 G(04)-39.69 E(Sumodde)194.076 350.9 Q -.225(ve)-.27 G 26.496
(n6).225 G 49.504(04)-26.496 G 37.188(37 .04)-.562 F 58.527(Sym 21)
194.076 361.9 R 48.942(37)49.504 G 39.69(7.)-48.942 G(21)-39.69 E
462.024 366.15 189.576 366.15 DL -2.007 -.36(Av e)194.076 374.9 T -.09
(ra).36 G 43.686(ge 43).09 F 48.942(45)49.504 G 39.69(2.)-48.942 G(47)
-39.69 E 462.024 380.25 189.576 380.25 DL 414.755 116.85 414.755 380.25
DL 416.755 116.85 416.755 380.25 DL 367.38 116.85 367.38 380.25 DL
302.859 116.85 302.859 380.25 DL 253.359 116.85 253.359 380.25 DL
462.024 116.85 462.024 380.25 DL 189.576 116.85 189.576 380.25 DL F0
.913(slightly longer than compilation.)111.6 417.2 R(Ho)6.913 E(we)-.3 E
-.18(ve)-.3 G 1.873 -.48(r, t).18 H .913(here were a fe).48 F 3.913(wa)
-.3 G 3.913(nomalies. The)-3.913 F(programs)3.913 E/F2 12/Times-Italic@0
SF(Hes)111.6 443.2 Q F0(and)5.088 E F2(LU)5.089 E F0 2.089(took proport\
ionally longer to compile since their source \214les were o)5.089 F -.18
(ve)-.18 G(r).18 E .673
(1,000 lines long, mostly due to the initialization of array elements.)
111.6 469.2 R .673(The timing analysis)6.673 F(of)111.6 495.2 Q F2
(Gaujac)4.258 E F0 1.258(took signi\214cantly longer than the compilati\
on since this program contains a)4.258 F 2.918(loop with twelv)111.6
521.2 R 5.917(el)-.18 G 2.917(ong paths with man)-5.917 F 5.917<798d>
-.18 G 2.917(oating-point instructions.)-5.917 F 2.917(In addition, the)
8.917 F .798(timing analyzer e)111.6 547.2 R .798
(xamines each function instance separately)-.18 F 3.799(,w)-.78 G .799
(hich adds to the response)-3.799 F 1.995(time whene)111.6 573.2 R -.18
(ve)-.3 G 4.995(raf).18 G 1.995(unction is called from multiple sites.)
-4.995 F 1.995(The programs)7.995 F F2(Des)4.994 E F0(and)4.994 E F2
(Stats)4.994 E F0
(contain functions that are called from four or more sites.)111.6 599.2
Q 3.536(The timing analyzer is no)126.6 625.2 R 6.536(wf)-.3 G 3.537
(aster than the v)-6.656 F 3.537(ersion that w)-.18 F 3.537
(as used prior to the)-.12 F .346
(constraint research described in this dissertation [1, 2].)111.6 651.2
R .346(The decrease in elapsed time for)6.346 F 1.4(the analysis w)111.6
677.2 R 1.4(as due to tw)-.12 F 4.4(or)-.12 G 4.401(easons. First,)-4.4
F 1.401(the timing analyzer w)4.401 F 1.401(as modi\214ed to a)-.12 F
-.24(vo)-.24 G(id).24 E(95)319.8 725.04 Q EP
%%Page: 96 98
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 1.543
(redundant analysis of a path when its caching beha)111.6 95 R 1.542
(vior has not changed.)-.24 F 1.542(Second, the)7.542 F(ne)111.6 121 Q
3.626(wa)-.3 G .626(pproach does not analyze a path in a gi)-3.626 F
-.18(ve)-.3 G 3.627(ni).18 G .627(teration when the path w)-3.627 F .627
(as infeasible,)-.12 F 1.747(its maximum iterations had been e)111.6 147
R 1.747(xhausted, or only required iterations of other paths)-.18 F
1.545(were a)111.6 173 R -.3(va)-.24 G 4.545(ilable. Thus,).3 F 1.546
(the timing analyzer implemented for this dissertation remains a)4.546 F
(highly ef)111.6 199 Q(\214cient tool.)-.3 E(96)319.8 725.04 Q EP
%%Page: 97 99
%%BeginPageSetup
BP
%%EndPageSetup
/F0 16/Times-Roman@0 SF(CHAPTER 7)283.352 167 Q(FUTURE W)268.328 206 Q
(ORK)-.16 E/F1 12/Times-Roman@0 SF 4.482(There are additional aspects o\
f using constraints in timing analysis that can be)111.6 245 R(in)111.6
271 Q -.18(ve)-.48 G(stig).18 E 3.277(ated. Man)-.06 F 3.277(yb)-.18 G
.277
(ranch constraints were not detected due to function calls separating)
-3.277 F(ef)111.6 297 Q 2.496(fects and the branches af)-.3 F 5.496
(fected. These)-.3 F 2.496(branch constraints could be detected using)
5.496 F(inter)111.6 323 Q 2.592(-procedural analysis.)-.24 F(Similarly)
8.592 E 5.592(,i)-.78 G(nter)-5.592 E 2.592
(-procedural analysis could also detect more)-.24 F 1.32(loop iteration\
constraints, in the case where one loop contains a call to a function \
and)111.6 349 R .803(another loop is in the called function.)111.6 375 R
.803(As w)6.803 F .803(as mentioned in Section 5.4, further branch)-.12
F .033(constraints could also be obtained from analyzing v)111.6 401 R
.033(alues assigned to global v)-.3 F .033(ariables and)-.3 F(arrays.)
111.6 427 Q .716(Another goal is to mak)126.6 453 R 3.716(et)-.12 G .716
(he tool more retar)-3.716 F .716
(getable, so that if a user wishes to obtain)-.216 F .121
(timing estimates on a dif)111.6 479 R .121(ferent processor)-.3 F 3.121
(,a)-.48 G .121(ll that w)-3.121 F .121
(ould be necessary is a modi\214cation of)-.12 F 1.237
(the input \214le to the timing analyzer \(see Figure 1\).)111.6 505 R
1.238(At present, it is straightforw)7.238 F 1.238(ard to)-.12 F(retar)
111.6 531 Q .356(get the timing analyzer to a similar type machine, a s\
ingle issue RISC with a direct-)-.216 F 1.368(mapped instruction cache.)
111.6 557 R(Retar)7.368 E 1.368(geting to more v)-.216 F 1.368
(aried machines, containing additional)-.3 F(hardw)111.6 583 Q 1.88
(are features such as a secondary cache, non-blocking caches, re)-.12 F
1.88(gister windo)-.18 F(ws,)-.3 E
(multiple issue, etc. will require more w)111.6 609 Q(ork.)-.12 E 2.963
(While the performance of the timing analyzer described in this dissert\
ation w)126.6 635 R(as)-.12 E 1.246
(compared to a simulator of the MicroSP)111.6 661 R 1.246(ARC I')-1.104
F 4.246(si)-.66 G 1.246(nstruction cache and pipeline, it will)-4.246 F
.077(also be bene\214cial to compare the timing predictions ag)111.6 687
R .078(ainst measurements obtained from)-.06 F(97)319.8 725.04 Q EP
%%Page: 98 100
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 5.607(al)111.6 95 S 2.607
(ogic analyzer running the test programs on a MicroSP)-5.607 F 2.607
(ARC I processor)-1.104 F 8.606(.A)-.66 G(logic)-3 E .093
(analyzer inspects addresses sent on the b)111.6 121 R .093
(us to main memory)-.24 F 6.093(.U)-.78 G(nfortunately)-6.093 E 3.094
(,i)-.78 G 3.094(ti)-3.094 G 3.094(sd)-3.094 G(if)-3.094 E(\214cult)-.3
E 1.336(to measure e)111.6 147 R -.18(xe)-.18 G 1.336
(cution time using a logic analyzer on a modern machine because man).18
F(y)-.18 E .791(references to instructions and data are obtained from c\
ache instead of main memory)111.6 173 R 6.792(.I)-.78 G(t)-6.792 E .66
(is also dif)111.6 199 R .66
(\214cult to obtain accurate timing measurements due to the comple)-.3 F
.66(xity of virtual)-.18 F 5.049(memory and operating system o)111.6 225
R -.18(ve)-.18 G 8.049(rhead. Another).18 F(disadv)8.049 E 5.05
(antage with only using)-.3 F -.18(exe)111.6 251 S 2.207
(cution time measurements is that capturing just the total e).18 F -.18
(xe)-.18 G 2.207(cution time does not).18 F -.18(ve)111.6 277 S .698
(rify the correctness of the timing analyzer).18 F 6.699(.I)-.66 G 3.699
(ti)-6.699 G 3.699(sp)-3.699 G .699(ossible that a f)-3.699 F .699
(aulty implementation)-.12 F .494(for the timing analyzer could ha)111.6
303 R .854 -.18(ve a)-.24 H 3.494(no).18 G -.18(ve)-3.674 G .494
(restimation and an underestimation that cancel).18 F 1.254(each other \
out, resulting in what initially appears to be a tight bound on the e)
111.6 329 R -.18(xe)-.18 G(cution).18 E(time.)111.6 355 Q .986(Rather t\
han focusing on the speci\214c details of one machine, the author chose\
to use)126.6 381 R 1.119(an e)111.6 407 R 1.119(xisting retar)-.18 F
1.119(getable hardw)-.216 F 1.119(are simulator)-.12 F 7.12(.A)-.66 G
1.12(ssumptions were b)-7.12 F 1.12(uilt into the simulator)-.24 F .37
(based on published documentation from the manuf)111.6 433 R(acturer)
-.12 E 6.369(.H)-.66 G -.3(ow)-6.369 G -2.58 -.3(ev e).3 H 1.329 -.48
(r, m).3 H(an).48 E 3.369(yd)-.18 G .369(etails about)-3.369 F 4.096
(the hardw)111.6 459 R 4.096(are were not speci\214ed, and the manuf)
-.12 F(acturer')-.12 E 7.097(st)-.66 G 4.097(echnical staf)-7.097 F
7.097(fw)-.3 G 4.097(ere not)-7.097 F 4.177
(particularly forthcoming in responding to the author')111.6 485 R 7.177
(sq)-.66 G 4.177(uestions via telephone or)-7.177 F .625
(electronic mail.)111.6 511 R .625(One adv)6.625 F .626
(antage to using a simulator is that it is tri)-.3 F .626
(vial to change certain)-.3 F 2.83(aspects of the hardw)111.6 537 R 2.83
(are such as the cache con\214guration.)-.12 F 2.83
(This feature is especially)8.83 F 1.503(bene\214cial since the MicroSP)
111.6 563 R 1.503(ARC I, designed in 1993, is becoming obsolete.)-1.104
F(Another)7.504 E .061(reason the simulator w)111.6 589 R .061
(as used w)-.12 F .061(as to allo)-.12 F 3.061(wo)-.3 G .061(ne to e)
-3.061 F .061(xamine lo)-.18 F .061(wer le)-.3 F -.18(ve)-.3 G .06
(ls of detail, such as).18 F .348(pipeline stages of an indi)111.6 615 R
.348(vidual instruction.)-.3 F -.48(Wi)6.348 G .348
(th such \214ne-grain details, it is possible to).48 F(test and deb)
111.6 641 Q(ug the timing analyzer using simulator output.)-.24 E .735
(On man)126.6 667 R 3.735(ye)-.18 G .735
(mbedded machines the measurement of the e)-3.735 F -.18(xe)-.18 G .735
(cution time can tak).18 F 3.735(ep)-.12 G(lace)-3.735 E 4.53
(in the absence of virtual memory and operating system o)111.6 693 R
-.18(ve)-.18 G 7.531(rhead. Some).18 F(recent)7.531 E(98)319.8 725.04 Q
EP
%%Page: 99 101
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 3.164(architectures support hardw)111.6 95 R
3.163(are performance counters that are automatically updated)-.12 F
.112(during e)111.6 121 R -.18(xe)-.18 G .112
(cution and introduce no additional o).18 F -.18(ve)-.18 G 3.112
(rhead. One).18 F .112(such counter can k)3.112 F .112(eep track)-.12 F
2.215(of the number of machine c)111.6 147 R 5.215(ycles. Thus,)-.18 F
2.214(in the future, the ideal testing en)5.214 F(vironment)-.48 E -.12
(wo)111.6 173 S 1.839
(uld be on an embedded machine with both a simulator and hardw).12 F
1.839(are performance)-.12 F 4.65(counters. A)111.6 199 R 1.65
(simulator of the architecture can be used to v)4.65 F 1.649
(alidate the timing analyzer)-.3 F(.)-.66 E(Ne)111.6 225 Q .844
(xt, hardw)-.18 F .844
(are performance counters on an embedded machine can be used to v)-.12 F
(alidate)-.3 E 1.008(the simulator)111.6 251 R 7.007(.U)-.66 G 1.007(si\
ng both testing components, one can then be more con\214dent that the)
-7.007 F .167(timing analyzer generates accurate WCET and BCET predicti\
ons for the actual machine.)111.6 277 R(99)319.8 725.04 Q EP
%%Page: 100 102
%%BeginPageSetup
BP
%%EndPageSetup
/F0 16/Times-Roman@0 SF(CHAPTER 8)283.352 167 Q(CONCLUSION)274.248 206 Q
/F1 12/Times-Roman@0 SF 1.995(This dissertation has presented an e)111.6
245 R 1.994(xtension to an earlier timing tool [1, 2] that no)-.18 F(w)
-.3 E .782(bounds e)111.6 271 R -.18(xe)-.18 G .782(cution time based o\
n automatically generated constraints about the program.).18 F .138
(The tw)111.6 297 R 3.138(ot)-.12 G .137(ype of constraints are the cal\
culation of the number of loop iterations discussed)-3.138 F(in Chapter\
4 and the constraints related to branch outcomes described in Chapter \
5.)111.6 323 Q .086
(The compiler calculates the number of loop iterations for loops ha)
126.6 349 R .087(ving a single e)-.24 F .087(xit or)-.18 F .588
(multiple e)111.6 375 R 3.587(xits. In)-.18 F .587
(cases where this number of loop iterations depends on a non-constant)
3.587 F .235(loop in)111.6 401 R -.3(va)-.48 G .235(riant e).3 F .235
(xpression, the user can enter the minimum and maximum v)-.18 F .236
(alues for each)-.3 F -.3(va)111.6 427 S 2.084(riable in the e).3 F
2.084(xpression interacti)-.18 F -.18(ve)-.3 G 2.083
(ly or through the use of assertions to bound the).18 F 1.127
(number of loop iterations.)111.6 453 R 1.127
(If the number of loop iterations depends on an outer loop')7.127 F(s)
-.66 E(inde)111.6 479 Q 6.496(xv)-.18 G 3.495
(ariable, then the timing analyzer formulates a summation e)-6.796 F
3.495(xpression to be)-.18 F -.3(eva)111.6 505 S
(luated by an algebraic simpli\214er [47].).3 E 4.178
(Constraints that can af)126.6 531 R 4.179
(fect branch outcomes are automatically detected by the)-.3 F(compiler)
111.6 557 Q 3.187(,a)-.48 G .187
(nd a set of branch constraints is associated with each basic block.)
-3.187 F .186(The timing)6.186 F 1.749(analyzer propag)111.6 583 R 1.75
(ates these branch constraints along each possible path of e)-.06 F -.18
(xe)-.18 G 1.75(cution to).18 F 2.195(determine path constraints.)111.6
609 R 2.195(The analysis of path constraints can determine if certain)
8.195 F .523(paths are infeasible or if the)111.6 635 R 3.523(yc)-.18 G
.523(an only e)-3.523 F -.18(xe)-.18 G .524
(cute on a certain set of iterations.).18 F .524(These path)6.524 F
1.827(constraints are used in the w)111.6 661 R 1.827
(orst-case and best-case loop analysis algorithms to more)-.12 F .722
(tightly bound the e)111.6 687 R -.18(xe)-.18 G .722(cution time.).18 F
-.18(Fo)6.722 G 3.722(ri).18 G .723(nstance, a loop')-3.722 F 3.723(sw)
-.66 G .723(orst case \(best case\) time can)-3.843 F(100)316.8 725.04 Q
EP
%%Page: 101 103
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF(be more tightly predicted if is determined that\
the longest \(shortest\) path is infeasible.)111.6 95 Q 1.924
(The implementation of the timing analysis en)126.6 121 R 1.923
(vironment includes the four modules)-.48 F .856(depicted in Figure 1.)
111.6 147 R .856(The compiler)6.856 F 3.857(,s)-.48 G .857
(tatic cache simulator and the algebraic solv)-3.857 F .857(er that)-.18
F 1.538(support the timing analysis were implemented by other researche\
rs at FSU.)111.6 173 R 1.538(The total)7.538 F 2.108(response time incl\
uding the compilation, static cache simulation and timing analysis,)
111.6 199 R(tak)111.6 225 Q(es only a fe)-.12 E 3(ws)-.3 G
(econds for the benchmark programs used in this dissertation.)-3 E .411
(The major contrib)126.6 251 R .411(ution of this dissertation to timin\
g analysis research is the nature in)-.24 F .078
(which constraints are made kno)111.6 277 R .078
(wn and used within the timing analyzer)-.3 F 6.078(.I)-.66 G 3.078(nt)
-6.078 G .078(he past, such)-3.078 F 1.382
(constraints were manually entered by the user)111.6 303 R 4.382(,w)-.48
G 1.382(hich is quite tedious and error prone.)-4.382 F 1.236
(Using the techniques described in this dissertation, it has been sho)
111.6 329 R 1.236(wn that this process)-.3 F 1.813(can be automated.)
111.6 355 R 1.813(It is much more lik)7.813 F 1.813
(ely that a real-time programmer w)-.12 F 1.812(ould use an)-.12 F .93(\
automated tool as opposed to an unautomated one to obtain timing predic\
tions in order)111.6 381 R .172(to relie)111.6 407 R .532 -.18(ve t)-.3
H .171(he tedium and get a quick).18 F .171(er response.)-.12 F .171
(The ne)6.171 F 3.171(wv)-.3 G .171(ersion of the timing analyzer)-3.351
F .75(bounds the WCET and BCET much more tightly than before.)111.6 433
R .751(In addition, this analysis)6.751 F
(can still be performed in a small amount of time.)111.6 459 Q(101)316.8
725.04 Q EP
%%Page: 102 104
%%BeginPageSetup
BP
%%EndPageSetup
/F0 16/Times-Roman@0 SF(APPENDIX)286.248 167 Q/F1 12/Times-Roman@0 SF
.165(The follo)111.6 219 R .165(wing conte)-.3 F .165(xt-free grammar d\
escribes the syntax of the \214le that is created by the)-.18 F .366
(compiler and used as input into the timing analyzer)111.6 245 R 6.367
(.T)-.66 G .367(he \214le contains information about)-6.367 F 1.493
(the control \215o)111.6 271 R 4.493(wo)-.3 G 4.493(ft)-4.493 G 1.493
(he program and the branch constraints.)-4.493 F 1.492
(The grammar follo)7.492 F 1.492(ws the)-.3 F(follo)111.6 297 Q
(wing syntax con)-.3 E -.18(ve)-.48 G(ntions.).18 E 13(1. The)111.6
328.6 R(de\214nition operator is "::=".)3 E 13(2. Nonterminals)111.6
347.2 R(are enclosed in angle brack)3 E(ets.)-.12 E 13(3. A)111.6 365.8
R .09(superscript asterisk indicates that an e)3.09 F .091
(xpression may ha)-.18 F .451 -.18(ve z)-.24 H .091
(ero or more instances.).18 F 3(As)136.6 380.2 S
(uperscript plus indicates one or more instances.)-3 E 13(4. Optional)
111.6 398.8 R -.18(ex)3 G(pressions are enclosed in square brack).18 E
(ets.)-.12 E 13(5. P)111.6 417.4 R
(arentheses are used as grouping symbols.)-.18 E 13(6. A)111.6 436 R
(boldf)5.789 E 2.789(ace tok)-.12 F 2.789
(en represents a terminal whose v)-.12 F 2.788(alue is not speci\214ed.)
-.3 F 5.788(At)8.788 G(ok)-5.788 E(en)-.12 E .152
(appearing in the standard font is a terminal that appears v)136.6 450.4
R .152(erbatim in the information)-.18 F(\214le.)136.6 464.8 Q 13
(7. Concatenation)111.6 483.4 R(implies that the e)3 E
(xpressions appear in the speci\214ed order)-.18 E(.)-.66 E 13(8. The)
111.6 502 R -.18(ve)3 G(rtical bar \(|\) separates alternati).18 E -.18
(ve)-.3 G 3(sw).18 G(ithin an e)-3 E(xpression.)-.18 E 56.136
( ::=)111.6 535 R()22.56 E/F2 10/Times-Roman@0 SF
(*)-6 I F1 48.792( ::=)111.6 563.8 R/F3 12/Times-Bold@0 SF
13.288(func_identi\214er new_line)22.56 F F1()16.288 E F3
(new_line)16.288 E F1()255.6 592.6 Q F2(*)-6 I F1()3 6 M F2
(*)-6 I F1 35.472( ::=)111.6 621.4 R
( \( | | _\))22.56 E F2(*)-6 I F1 70.128
( ::=)111.6 650.2 R F3(loop_identi\214er)22.56 E F1 24.57
( ).18 E([] [] [])-.18
E(102)316.8 725.04 Q EP
%%Page: 103 105
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF 17.052( )-.3 E( )255.6 125.2 Q
/F1 12/Times-Bold@0 SF(new_line)3 E F0 27.468( ::=)111.6
154 R()-.18 E( ::=).18 F
()
-.18 E( ::=)-.3 F F1(induction_v)
22.56 E(ar_identi\214er)-.12 E F0( )-.3 E( )255.6 240.4 Q( ::=)-.3 F()22.56 E 52.116
( ::=)111.6 298 R()22.56 E 43.476( ::=)111.6
326.8 R()-.18 E 26.136( ::=)111.6
355.6 R F1(iteration_inf)22.56 E(o_identi\214er)-.3 E F0 10.818
( )13.818 F 8.872
( )255.6 384.4 R 7.706
(\(\(c \) | \(r | \)\))-.3 F 15.339
(\(\(c \)\))-.3 F()255.6 470.8
Q 42.804( ::=)111.6 499.6 R 3(0|1)22.56 G 32.796
( ::=)111.6 528.4 R( | )-.18 E
38.124( ::=)111.6 557.2 R( | )-.18 E
66.804( ::=)111.6 586 R F1(equal_id)22.56 E F0(|)22.68 E F1
(not_equal_id)22.68 E F0(|)22.68 E F1(gr)22.68 E(eater_id)-.216 E F0(|)
22.68 E F1(less_id)255.6 614.8 Q F0(|)3 E F1(gr)3 E(eater_or_equal_id)
-.216 E F0(|)3 E F1(less_or_equal_id)3 E F0 42.144( ::=)
111.6 643.6 R()-.18 E 24.144( ::=)111.6
672.4 R()-.18 E(103)316.8
725.04 Q EP
%%Page: 104 106
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Roman@0 SF( ::=)
-.3 F()-.18 E 16.128(