1
0
mirror of https://github.com/pdf2htmlEX/pdf2htmlEX.git synced 2024-12-22 04:50:09 +00:00
pdf2htmlEX/demo/demo6.page
2013-09-28 13:30:57 +08:00

2 lines
64 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="pd w0 h0"><div id="pf6" class="pf" data-page-no="6"><div class="pc pc6"><img class="bi x32 y85 w1 h12" alt="" src="data:image/png;base64,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gVZbCgsLzWcbRkREhIWFKXd37tx54MCBDz74wGoqtMlkMhgM0dHRShA3HFGpra1llTgQzWiP3nnnnQMHDpiHNSZNmrRr166GQWw1cBEbG2uVs/X19StXrhSRwMDAP//5z0ov+5lnnvn000+zsrKqqqrOnTtnuQCeiHh5eVn2uz3uMoNgQANotS6ASrVq1SrLEYZFixbZfKZ5kaCAgICGQxnfffddYWGhiDz55JPm0Q+1Wj19+nTl9vHjx6k2iGZ4HsszQdqSVqudP3+++W5qamp6enrDp5nXM7Kc2mGmLKwhIkOGDLF6SHm+J15IECCaIYMGDXLVSycnJ1sG7uuvv95w5FeZpNGvX7+GszJERBkyFouLwJopF0MpLCxspRNVAKIZrcV8LM4lVCrVe++9Z76r1+vnzp3bMJoDAgLuuusum3swbz9z5ozl9rKysi+//FLpO7t2RSSAaIbnCQ4O/vjjj813G86lCwgIiIuLa+wSgvv371dufPjhhzt37qyvr6+vry8rK/v000+V7ZbLKgGeixkaaGtNz6VrbB5bXV3d4sWLLY/yrVu3bt26dZbP+cMf/tBwZjRArxmwyzvvvGN5NHLmzJlNLzKn0+lefvllJZcjIiLefPPNvn37Wj2nb9++I0eOpLag1ww42uxUqlWrVj3++OPm5F20aNG8efMaPrO+vn7Lli3KOLKIPProo0lJSbfffvvcuXN1Op1er7906VJUVFT37t1vv/12CguiGWgRrVabkpKybNky5W5qaurDDz8cExNj+Zzq6ur3339fmcgcGBj4b//2b5ank1idWgLcShjQgMtMnTrVMl5nz56dn59vnhX3448/vvDCC0ou9+3b989//jNZDHrNQOs3PpVq9erVI0aM8PLyioyMDAgIUM69DggI6NGjx969e5Wn/eEPf3jooYcoF4hmoI0EBwe/++67f/3rX80zK6qrq6urq4uKikQkMDDw5Zdfbni6NkA0A61r0KBB5pOzLXXt2vWdd97h4B7aJ8aa4WL79u2zud3b25tcBtEMuEZj52QXFhbW19dTHxDNgBtF88CBA+k1g2gGXCMgIKDhqX1Xr1797//+b4PBQH1ANAOuMXfu3H//9383r55RUVGRn5+v1+vffPNNigOiGXCZ/v37f/DBB4sWLUpOTj579uzly5dFJC0tbevWrRQHRDPgMmq1OjQ0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"/><div class="t m0 x34 h5 y5b ff2 fs3 fc0 sc0 ls0 ws0">Our<span class="_ _5"> </span>implementation<span class="_ _3"> </span>does<span class="_ _5"> </span>not<span class="_ _5"> </span>extend<span class="_ _3"> </span>at<span class="_ _5"> </span>all<span class="_ _5"> </span>side<span class="_ _3"> </span>e<span class="_ _2"></span>xits.<span class="_ _5"> </span>It<span class="_ _3"> </span>e<span class="_ _2"></span>xtends</div><div class="t m0 x2f h5 y5c ff2 fs3 fc0 sc0 ls0 ws0">only<span class="_ _5"> </span>if<span class="_ _5"> </span>the<span class="_ _7"> </span>side<span class="_ _5"> </span>exit<span class="_ _5"> </span>is<span class="_ _5"> </span>for<span class="_ _7"> </span>a<span class="_ _5"> </span>control-flo<span class="_ _2"></span>w<span class="_ _5"> </span>branch,<span class="_ _5"> </span>and<span class="_ _7"> </span>only<span class="_ _5"> </span>if<span class="_ _5"> </span>the<span class="_ _5"> </span>side</div><div class="t m0 x2f h5 y5d ff2 fs3 fc0 sc0 ls0 ws0">exit<span class="_ _5"> </span>does<span class="_ _5"> </span>not<span class="_ _5"> </span>leave<span class="_ _5"> </span>the<span class="_ _5"> </span>loop.<span class="_ _5"> </span>In<span class="_ _3"> </span>particular<span class="_ _5"> </span>we<span class="_ _5"> </span>do<span class="_ _5"> </span>not<span class="_ _5"> </span>want<span class="_ _5"> </span>to<span class="_ _3"> </span>e<span class="_ _2"></span>xtend</div><div class="t m0 x2f h5 y5e ff2 fs3 fc0 sc0 ls0 ws0">a<span class="_ _6"> </span>trace<span class="_ _6"> </span>tree<span class="_ _6"> </span>along<span class="_ _8"> </span>a<span class="_ _6"> </span>path<span class="_ _6"> </span>that<span class="_ _6"> </span>leads<span class="_ _8"> </span>to<span class="_ _6"> </span>an<span class="_ _6"> </span>outer<span class="_ _6"> </span>loop,<span class="_ _8"> </span>because<span class="_ _6"> </span>we</div><div class="t m0 x2f h5 y5f ff2 fs3 fc0 sc0 ls0 ws0">want<span class="_ _5"> </span>to<span class="_ _5"> </span>cover<span class="_ _5"> </span>such<span class="_ _5"> </span>paths<span class="_ _5"> </span>in<span class="_ _5"> </span>an<span class="_ _3"> </span>outer<span class="_ _5"> </span>tree<span class="_ _5"> </span>through<span class="_ _5"> </span>tree<span class="_ _5"> </span><span class="ffa">nesting</span>.</div><div class="t m0 x2f hc y151 ff1 fs3 fc0 sc0 ls0 ws0">3.3<span class="_ _9"> </span>Blacklisting</div><div class="t m0 x2f h5 y152 ff2 fs3 fc0 sc0 ls0 ws0">Sometimes,<span class="_ _d"> </span>a<span class="_ _1"> </span>program<span class="_ _d"> </span>follows<span class="_ _d"> </span>a<span class="_ _1"> </span>path<span class="_ _d"> </span>that<span class="_ _1"> </span>cannot<span class="_ _d"> </span>be<span class="_ _d"> </span>compiled</div><div class="t m0 x2f h5 y153 ff2 fs3 fc0 sc0 ls0 ws0">into<span class="_ _3"> </span>a<span class="_ _3"> </span>trace,<span class="_ _3"> </span>usually<span class="_ _3"> </span>because<span class="_ _3"> </span>of<span class="_ _3"> </span>limitations<span class="_ _3"> </span>in<span class="_ _3"> </span>the<span class="_ _6"> </span>implementation.</div><div class="t m0 x2f h5 y154 ff2 fs3 fc0 sc0 ls0 ws0">T<span class="_ _2"></span>raceMonke<span class="_ _2"></span>y<span class="_ _6"> </span>does<span class="_ _6"> </span>not<span class="_ _6"> </span>currently<span class="_ _8"> </span>support<span class="_ _6"> </span>recording<span class="_ _6"> </span>throwing<span class="_ _6"> </span>and</div><div class="t m0 x2f h5 y155 ff2 fs3 fc0 sc0 ls0 ws0">catching<span class="_ _5"> </span>of<span class="_ _3"> </span>arbitrary<span class="_ _5"> </span>exceptions.<span class="_ _5"> </span>This<span class="_ _3"> </span>design<span class="_ _5"> </span>trade<span class="_ _3"> </span>of<span class="_ _2"></span>f<span class="_ _5"> </span>was<span class="_ _5"> </span>chosen,</div><div class="t m0 x2f h5 y156 ff2 fs3 fc0 sc0 ls0 ws0">because<span class="_ _8"> </span>exceptions<span class="_ _8"> </span>are<span class="_ _8"> </span>usually<span class="_ _8"> </span>rare<span class="_ _8"> </span>in<span class="_ _d"> </span>Ja<span class="_ _2"></span>v<span class="_ _2"></span>aScript.<span class="_ _8"> </span>Howe<span class="_ _2"></span>ver<span class="_ _2"></span>,<span class="_ _6"> </span>if<span class="_ _8"> </span>a</div><div class="t m0 x2f h5 y157 ff2 fs3 fc0 sc0 ls0 ws0">program<span class="_ _d"> </span>opts<span class="_ _d"> </span>to<span class="_ _d"> </span>use<span class="_ _8"> </span>exceptions<span class="_ _d"> </span>intensiv<span class="_ _2"></span>ely<span class="_ _b"></span>,<span class="_ _d"> </span>we<span class="_ _d"> </span>would<span class="_ _d"> </span>suddenly</div><div class="t m0 x2f h5 y158 ff2 fs3 fc0 sc0 ls0 ws0">incur<span class="_ _3"> </span>a<span class="_ _3"> </span>punishing<span class="_ _3"> </span>runtime<span class="_ _3"> </span>overhead<span class="_ _3"> </span>if<span class="_ _3"> </span>we<span class="_ _3"> </span>repeatedly<span class="_ _3"> </span>try<span class="_ _3"> </span>to<span class="_ _3"> </span>record</div><div class="t m0 x2f h5 y159 ff2 fs3 fc0 sc0 ls0 ws0">a<span class="_ _6"> </span>trace<span class="_ _8"> </span>for<span class="_ _6"> </span>this<span class="_ _8"> </span>path<span class="_ _6"> </span>and<span class="_ _8"> </span>repeatedly<span class="_ _6"> </span>fail<span class="_ _6"> </span>to<span class="_ _8"> </span>do<span class="_ _8"> </span>so,<span class="_ _6"> </span>since<span class="_ _8"> </span>we<span class="_ _6"> </span>abort</div><div class="t m0 x2f h5 y15a ff2 fs3 fc0 sc0 ls0 ws0">tracing<span class="_ _5"> </span>ev<span class="_ _2"></span>ery<span class="_ _5"> </span>time<span class="_ _5"> </span>we<span class="_ _3"> </span>observ<span class="_ _2"></span>e<span class="_ _5"> </span>an<span class="_ _5"> </span>exception<span class="_ _5"> </span>being<span class="_ _5"> </span>thrown.</div><div class="t m0 x34 h5 ye ff2 fs3 fc0 sc0 ls0 ws0">As<span class="_ _5"> </span>a<span class="_ _5"> </span>result,<span class="_ _7"> </span>if<span class="_ _5"> </span>a<span class="_ _5"> </span>hot<span class="_ _7"> </span>loop<span class="_ _5"> </span>contains<span class="_ _5"> </span>traces<span class="_ _5"> </span>that<span class="_ _7"> </span>always<span class="_ _5"> </span>f<span class="_ _2"></span>ail,<span class="_ _5"> </span>the<span class="_ _5"> </span>VM</div><div class="t m0 x2f h5 y10 ff2 fs3 fc0 sc0 ls0 ws0">could<span class="_ _3"> </span>potentially<span class="_ _3"> </span>run<span class="_ _3"> </span>much<span class="_ _3"> </span>more<span class="_ _3"> </span>slowly<span class="_ _3"> </span>than<span class="_ _3"> </span>the<span class="_ _3"> </span>base<span class="_ _3"> </span>interpreter:</div><div class="t m0 x2f h5 y15b ff2 fs3 fc0 sc0 ls0 ws0">the<span class="_ _5"> </span>VM<span class="_ _5"> </span>repeatedly<span class="_ _3"> </span>spends<span class="_ _5"> </span>time<span class="_ _5"> </span>trying<span class="_ _5"> </span>to<span class="_ _5"> </span>record<span class="_ _5"> </span>traces,<span class="_ _3"> </span>b<span class="_ _2"></span>ut<span class="_ _5"> </span>is<span class="_ _5"> </span>nev<span class="_ _2"></span>er</div><div class="t m0 x2f h5 y113 ff2 fs3 fc0 sc0 ls0 ws0">able<span class="_ _3"> </span>to<span class="_ _3"> </span>run<span class="_ _5"> </span>any<span class="_ _2"></span>.<span class="_ _5"> </span>T<span class="_ _2"></span>o<span class="_ _5"> </span>avoid<span class="_ _5"> </span>this<span class="_ _3"> </span>problem,<span class="_ _3"> </span>whene<span class="_ _2"></span>ver<span class="_ _5"> </span>the<span class="_ _3"> </span>VM<span class="_ _3"> </span>is<span class="_ _3"> </span>about</div><div class="t m0 x2f h5 y114 ff2 fs3 fc0 sc0 ls0 ws0">to<span class="_ _5"> </span>start<span class="_ _5"> </span>tracing,<span class="_ _5"> </span>it<span class="_ _5"> </span>must<span class="_ _7"> </span>try<span class="_ _5"> </span>to<span class="_ _5"> </span>predict<span class="_ _5"> </span>whether<span class="_ _5"> </span>it<span class="_ _5"> </span>will<span class="_ _5"> </span>finish<span class="_ _5"> </span>the<span class="_ _7"> </span>trace.</div><div class="t m0 x34 h5 y115 ff2 fs3 fc0 sc0 ls0 ws0">Our<span class="_ _d"> </span>prediction<span class="_ _d"> </span>algorithm<span class="_ _8"> </span>is<span class="_ _d"> </span>based<span class="_ _d"> </span>on<span class="_ _d"> </span><span class="ffa">blac<span class="_ _2"></span>klisting<span class="_ _d"> </span><span class="ff2">traces<span class="_ _8"> </span>that</span></span></div><div class="t m0 x2f h5 y116 ff2 fs3 fc0 sc0 ls0 ws0">hav<span class="_ _2"></span>e<span class="_ _5"> </span>been<span class="_ _7"> </span>tried<span class="_ _5"> </span>and<span class="_ _7"> </span>failed.<span class="_ _5"> </span>When<span class="_ _5"> </span>the<span class="_ _7"> </span>VM<span class="_ _5"> </span>f<span class="_ _2"></span>ails<span class="_ _5"> </span>to<span class="_ _7"> </span>finish<span class="_ _5"> </span>a<span class="_ _5"> </span>trace<span class="_ _7"> </span>start-</div><div class="t m0 x2f h5 y15c ff2 fs3 fc0 sc0 ls0 ws0">ing<span class="_ _5"> </span>at<span class="_ _7"> </span>a<span class="_ _5"> </span>gi<span class="_ _2"></span>ven<span class="_ _5"> </span>point,<span class="_ _7"> </span>the<span class="_ _5"> </span>VM<span class="_ _7"> </span>records<span class="_ _5"> </span>that<span class="_ _5"> </span>a<span class="_ _7"> </span>failure<span class="_ _5"> </span>has<span class="_ _7"> </span>occurred.<span class="_ _5"> </span>The</div><div class="t m0 x2f h5 y15d ff2 fs3 fc0 sc0 ls0 ws0">VM<span class="_ _7"> </span>also<span class="_ _5"> </span>sets<span class="_ _7"> </span>a<span class="_ _7"> </span>counter<span class="_ _5"> </span>so<span class="_ _7"> </span>that<span class="_ _5"> </span>it<span class="_ _7"> </span>will<span class="_ _7"> </span>not<span class="_ _5"> </span>try<span class="_ _7"> </span>to<span class="_ _7"> </span>record<span class="_ _5"> </span>a<span class="_ _7"> </span>trace<span class="_ _7"> </span>starting</div><div class="t m0 x2f h5 y15e ff2 fs3 fc0 sc0 ls0 ws0">at<span class="_ _3"> </span>that<span class="_ _6"> </span>point<span class="_ _3"> </span>until<span class="_ _3"> </span>it<span class="_ _3"> </span>is<span class="_ _6"> </span>passed<span class="_ _3"> </span>a<span class="_ _3"> </span>few<span class="_ _3"> </span>more<span class="_ _3"> </span>times<span class="_ _6"> </span>(32<span class="_ _3"> </span>in<span class="_ _3"> </span>our<span class="_ _3"> </span>imple-</div><div class="t m0 x2f h5 y15f ff2 fs3 fc0 sc0 ls0 ws0">mentation).<span class="_ _6"> </span>This<span class="_ _6"> </span><span class="ffa">bac<span class="_ _2"></span>kof<span class="_ _2"></span>f<span class="_ _1"> </span><span class="ff2">counter<span class="_ _3"> </span>gives<span class="_ _3"> </span>temporary<span class="_ _6"> </span>conditions<span class="_ _6"> </span>that</span></span></div><div class="t m0 x2f h5 y160 ff2 fs3 fc0 sc0 ls0 ws0">prev<span class="_ _2"></span>ent<span class="_ _3"> </span>tracing<span class="_ _3"> </span>a<span class="_ _6"> </span>chance<span class="_ _3"> </span>to<span class="_ _3"> </span>end.<span class="_ _3"> </span>For<span class="_ _3"> </span>example,<span class="_ _3"> </span>a<span class="_ _3"> </span>loop<span class="_ _6"> </span>may<span class="_ _3"> </span>behav<span class="_ _2"></span>e</div><div class="t m0 x2f h5 y161 ff2 fs3 fc0 sc0 ls0 ws0">differently<span class="_ _7"> </span>during<span class="_ _5"> </span>startup<span class="_ _7"> </span>than<span class="_ _5"> </span>during<span class="_ _7"> </span>its<span class="_ _5"> </span>steady-state<span class="_ _7"> </span>execution.<span class="_ _5"> </span>Af-</div><div class="t m0 x2f h5 y162 ff2 fs3 fc0 sc0 ls0 ws0">ter<span class="_ _3"> </span>a<span class="_ _3"> </span>given<span class="_ _3"> </span>number<span class="_ _3"> </span>of<span class="_ _3"> </span>failures<span class="_ _3"> </span>(2<span class="_ _3"> </span>in<span class="_ _6"> </span>our<span class="_ _3"> </span>implementation),<span class="_ _3"> </span>the<span class="_ _3"> </span>VM</div><div class="t m0 x2f h5 y163 ff2 fs3 fc0 sc0 ls0 ws0">marks<span class="_ _5"> </span>the<span class="_ _5"> </span>fragment<span class="_ _5"> </span>as<span class="_ _5"> </span>blacklisted,<span class="_ _5"> </span>which<span class="_ _5"> </span>means<span class="_ _5"> </span>the<span class="_ _5"> </span>VM<span class="_ _5"> </span>will<span class="_ _5"> </span>nev<span class="_ _2"></span>er</div><div class="t m0 x2f h5 y164 ff2 fs3 fc0 sc0 ls0 ws0">again<span class="_ _5"> </span>start<span class="_ _5"> </span>recording<span class="_ _5"> </span>at<span class="_ _3"> </span>that<span class="_ _5"> </span>point.</div><div class="t m0 x34 h5 y165 ff2 fs3 fc0 sc0 ls0 ws0">After<span class="_ _d"> </span>implementing<span class="_ _8"> </span>this<span class="_ _d"> </span>basic<span class="_ _d"> </span>strategy<span class="_ _b"></span>,<span class="_ _d"> </span>we<span class="_ _d"> </span>observed<span class="_ _8"> </span>that<span class="_ _d"> </span>for</div><div class="t m0 x2f h5 y166 ff2 fs3 fc0 sc0 ls0 ws0">small<span class="_ _3"> </span>loops<span class="_ _5"> </span>that<span class="_ _3"> </span>get<span class="_ _5"> </span>blacklisted,<span class="_ _3"> </span>the<span class="_ _5"> </span>system<span class="_ _3"> </span>can<span class="_ _5"> </span>spend<span class="_ _3"> </span>a<span class="_ _5"> </span>noticeable</div><div class="t m0 x2f h5 y167 ff2 fs3 fc0 sc0 ls0 ws0">amount<span class="_ _5"> </span>of<span class="_ _5"> </span>time<span class="_ _5"> </span>just<span class="_ _5"> </span>finding<span class="_ _5"> </span>the<span class="_ _5"> </span>loop<span class="_ _5"> </span>fragment<span class="_ _5"> </span>and<span class="_ _5"> </span>determining<span class="_ _5"> </span>that</div><div class="t m0 x2f h5 y168 ff2 fs3 fc0 sc0 ls0 ws0">it<span class="_ _5"> </span>has<span class="_ _5"> </span>been<span class="_ _5"> </span>blacklisted.<span class="_ _5"> </span>W<span class="_ _b"></span>e<span class="_ _5"> </span>now<span class="_ _5"> </span>a<span class="_ _2"></span>v<span class="_ _2"></span>oid<span class="_ _5"> </span>that<span class="_ _5"> </span>problem<span class="_ _5"> </span>by<span class="_ _5"> </span>patching<span class="_ _5"> </span>the</div><div class="t m0 x2f h5 y169 ff2 fs3 fc0 sc0 ls0 ws0">bytecode.<span class="_ _3"> </span>W<span class="_ _b"></span>e<span class="_ _3"> </span>define<span class="_ _3"> </span>an<span class="_ _5"> </span>extra<span class="_ _3"> </span>no-op<span class="_ _3"> </span>bytecode<span class="_ _3"> </span>that<span class="_ _5"> </span>indicates<span class="_ _3"> </span>a<span class="_ _3"> </span>loop</div><div class="t m0 x2f h5 y16a ff2 fs3 fc0 sc0 ls0 ws0">header<span class="_ _2"></span>.<span class="_ _3"> </span>The<span class="_ _3"> </span>VM<span class="_ _6"> </span>calls<span class="_ _3"> </span>into<span class="_ _6"> </span>the<span class="_ _3"> </span>trace<span class="_ _3"> </span>monitor<span class="_ _6"> </span>ev<span class="_ _2"></span>ery<span class="_ _3"> </span>time<span class="_ _6"> </span>the<span class="_ _3"> </span>inter-</div><div class="t m0 x2f h5 y16b ff2 fs3 fc0 sc0 ls0 ws0">preter<span class="_ _6"> </span>executes<span class="_ _3"> </span>a<span class="_ _6"> </span>loop<span class="_ _8"> </span>header<span class="_ _6"> </span>no-op.<span class="_ _6"> </span>T<span class="_ _b"></span>o<span class="_ _6"> </span>blacklist<span class="_ _6"> </span>a<span class="_ _6"> </span>fragment,<span class="_ _8"> </span>we</div><div class="t m0 x2f h5 y16c ff2 fs3 fc0 sc0 ls0 ws0">simply<span class="_ _3"> </span>replace<span class="_ _3"> </span>the<span class="_ _6"> </span>loop<span class="_ _3"> </span>header<span class="_ _3"> </span>no-op<span class="_ _6"> </span>with<span class="_ _3"> </span>a<span class="_ _3"> </span>regular<span class="_ _3"> </span>no-op.<span class="_ _3"> </span>Thus,</div><div class="t m0 x2f h5 y16d ff2 fs3 fc0 sc0 ls0 ws0">the<span class="_ _5"> </span>interpreter<span class="_ _5"> </span>will<span class="_ _3"> </span>ne<span class="_ _2"></span>v<span class="_ _2"></span>er<span class="_ _5"> </span>again<span class="_ _5"> </span>ev<span class="_ _2"></span>en<span class="_ _5"> </span>call<span class="_ _5"> </span>into<span class="_ _5"> </span>the<span class="_ _3"> </span>trace<span class="_ _5"> </span>monitor<span class="_ _b"></span>.</div><div class="t m0 x34 h5 y16e ff2 fs3 fc0 sc0 ls0 ws0">There<span class="_ _5"> </span>is<span class="_ _5"> </span>a<span class="_ _7"> </span>related<span class="_ _5"> </span>problem<span class="_ _5"> </span>we<span class="_ _7"> </span>have<span class="_ _5"> </span>not<span class="_ _7"> </span>yet<span class="_ _5"> </span>solved,<span class="_ _5"> </span>which<span class="_ _7"> </span>occurs</div><div class="t m0 x2f h5 y16f ff2 fs3 fc0 sc0 ls0 ws0">when<span class="_ _5"> </span>a<span class="_ _5"> </span>loop<span class="_ _3"> </span>meets<span class="_ _5"> </span>all<span class="_ _5"> </span>of<span class="_ _5"> </span>these<span class="_ _5"> </span>conditions:</div><div class="t m0 x36 h4 y170 ff3 fs2 fc0 sc0 ls0 ws0">•</div><div class="t m0 x37 h5 y12a ff2 fs3 fc0 sc0 ls0 ws0">The<span class="_ _5"> </span>VM<span class="_ _5"> </span>can<span class="_ _3"> </span>form<span class="_ _5"> </span>at<span class="_ _5"> </span>least<span class="_ _5"> </span>one<span class="_ _5"> </span>root<span class="_ _5"> </span>trace<span class="_ _5"> </span>for<span class="_ _3"> </span>the<span class="_ _5"> </span>loop.</div><div class="t m0 x36 h4 y171 ff3 fs2 fc0 sc0 ls0 ws0">•</div><div class="t m0 x37 h5 y25 ff2 fs3 fc0 sc0 ls0 ws0">There<span class="_ _8"> </span>is<span class="_ _8"> </span>at<span class="_ _8"> </span>least<span class="_ _d"> </span>one<span class="_ _6"> </span>hot<span class="_ _d"> </span>side<span class="_ _6"> </span>exit<span class="_ _8"> </span>for<span class="_ _8"> </span>which<span class="_ _d"> </span>the<span class="_ _6"> </span>VM<span class="_ _d"> </span>cannot</div><div class="t m0 x37 h5 y26 ff2 fs3 fc0 sc0 ls0 ws0">complete<span class="_ _5"> </span>a<span class="_ _5"> </span>trace.</div><div class="t m0 x36 h4 y172 ff3 fs2 fc0 sc0 ls0 ws0">•</div><div class="t m0 x37 h5 y173 ff2 fs3 fc0 sc0 ls0 ws0">The<span class="_ _5"> </span>loop<span class="_ _5"> </span>body<span class="_ _3"> </span>is<span class="_ _5"> </span>short.</div><div class="t m0 x34 h5 y174 ff2 fs3 fc0 sc0 ls0 ws0">In<span class="_ _5"> </span>this<span class="_ _7"> </span>case,<span class="_ _5"> </span>the<span class="_ _5"> </span>VM<span class="_ _7"> </span>will<span class="_ _5"> </span>repeatedly<span class="_ _5"> </span>pass<span class="_ _7"> </span>the<span class="_ _5"> </span>loop<span class="_ _5"> </span>header<span class="_ _2"></span>,<span class="_ _7"> </span>search</div><div class="t m0 x2f h5 y175 ff2 fs3 fc0 sc0 ls0 ws0">for<span class="_ _1"> </span>a<span class="_ _d"> </span>trace,<span class="_ _1"> </span>find<span class="_ _d"> </span>it,<span class="_ _1"> </span>e<span class="_ _2"></span>xecute<span class="_ _d"> </span>it,<span class="_ _1"> </span>and<span class="_ _d"> </span>fall<span class="_ _1"> </span>back<span class="_ _d"> </span>to<span class="_ _1"> </span>the<span class="_ _1"> </span>interpreter<span class="_ _b"></span>.</div><div class="t m0 x2f h5 y145 ff2 fs3 fc0 sc0 ls0 ws0">W<span class="_ _2"></span>ith<span class="_ _8"> </span>a<span class="_ _8"> </span>short<span class="_ _8"> </span>loop<span class="_ _d"> </span>body<span class="_ _b"></span>,<span class="_ _d"> </span>the<span class="_ _6"> </span>overhead<span class="_ _8"> </span>of<span class="_ _8"> </span>finding<span class="_ _d"> </span>and<span class="_ _6"> </span>calling<span class="_ _d"> </span>the</div><div class="t m0 x2f h5 y146 ff2 fs3 fc0 sc0 ls0 ws0">trace<span class="_ _6"> </span>is<span class="_ _3"> </span>high,<span class="_ _6"> </span>and<span class="_ _6"> </span>causes<span class="_ _6"> </span>performance<span class="_ _6"> </span>to<span class="_ _3"> </span>be<span class="_ _6"> </span>ev<span class="_ _2"></span>en<span class="_ _6"> </span>slo<span class="_ _2"></span>wer<span class="_ _6"> </span>than<span class="_ _3"> </span>the</div><div class="t m0 x2f h5 y147 ff2 fs3 fc0 sc0 ls0 ws0">basic<span class="_ _d"> </span>interpreter<span class="_ _b"></span>.<span class="_ _d"> </span>So<span class="_ _d"> </span>far<span class="_ _2"></span>,<span class="_ _8"> </span>in<span class="_ _8"> </span>this<span class="_ _d"> </span>situation<span class="_ _d"> </span>we<span class="_ _8"> </span>have<span class="_ _8"> </span>improved<span class="_ _8"> </span>the</div><div class="t m0 x2f h5 y148 ff2 fs3 fc0 sc0 ls0 ws0">implementation<span class="_ _d"> </span>so<span class="_ _d"> </span>that<span class="_ _d"> </span>the<span class="_ _d"> </span>VM<span class="_ _d"> </span>can<span class="_ _1"> </span>complete<span class="_ _8"> </span>the<span class="_ _1"> </span>branch<span class="_ _8"> </span>trace.</div><div class="t m0 x2f h5 y149 ff2 fs3 fc0 sc0 ls0 ws0">But<span class="_ _8"> </span>it<span class="_ _8"> </span>is<span class="_ _8"> </span>hard<span class="_ _8"> </span>to<span class="_ _8"> </span>guarantee<span class="_ _8"> </span>that<span class="_ _8"> </span>this<span class="_ _8"> </span>situation<span class="_ _8"> </span>will<span class="_ _8"> </span>never<span class="_ _6"> </span>happen.</div><div class="t m0 x2f h5 ya6 ff2 fs3 fc0 sc0 ls0 ws0">As<span class="_ _6"> </span>future<span class="_ _6"> </span>work,<span class="_ _6"> </span>this<span class="_ _6"> </span>situation<span class="_ _6"> </span>could<span class="_ _6"> </span>be<span class="_ _6"> </span>avoided<span class="_ _6"> </span>by<span class="_ _6"> </span>detecting<span class="_ _6"> </span>and</div><div class="t m0 x2f h5 y14b ff2 fs3 fc0 sc0 ls0 ws0">blacklisting<span class="_ _8"> </span>loops<span class="_ _d"> </span>for<span class="_ _8"> </span>which<span class="_ _8"> </span>the<span class="_ _d"> </span>av<span class="_ _2"></span>erage<span class="_ _8"> </span>trace<span class="_ _8"> </span>call<span class="_ _d"> </span>ex<span class="_ _2"></span>ecutes<span class="_ _8"> </span>few</div><div class="t m0 x2f h5 yae ff2 fs3 fc0 sc0 ls0 ws0">bytecodes<span class="_ _5"> </span>before<span class="_ _5"> </span>returning<span class="_ _3"> </span>to<span class="_ _5"> </span>the<span class="_ _5"> </span>interpreter<span class="_ _b"></span>.</div><div class="t m0 x2f h9 y103 ff1 fs1 fc0 sc0 ls0 ws0">4.<span class="_ _a"> </span>Nested<span class="_ _3"> </span>T<span class="_ _b"></span>race<span class="_ _3"> </span>T<span class="_ _b"></span>ree<span class="_ _3"> </span>F<span class="_ _2"></span>ormation</div><div class="t m0 x2f h5 y9a ff2 fs3 fc0 sc0 ls0 ws0">Figure<span class="_ _5"> </span>7<span class="_ _5"> </span>sho<span class="_ _2"></span>ws<span class="_ _7"> </span>basic<span class="_ _5"> </span>trace<span class="_ _5"> </span>tree<span class="_ _5"> </span>compilation<span class="_ _7"> </span>(11)<span class="_ _5"> </span>applied<span class="_ _5"> </span>to<span class="_ _7"> </span>a<span class="_ _5"> </span>nested</div><div class="t m0 x2f h5 y9b ff2 fs3 fc0 sc0 ls0 ws0">loop<span class="_ _6"> </span>where<span class="_ _6"> </span>the<span class="_ _8"> </span>inner<span class="_ _6"> </span>loop<span class="_ _6"> </span>contains<span class="_ _6"> </span>two<span class="_ _6"> </span>paths.<span class="_ _8"> </span>Usually<span class="_ _2"></span>,<span class="_ _3"> </span>the<span class="_ _8"> </span>inner</div><div class="t m0 x2f h5 y9c ff2 fs3 fc0 sc0 ls0 ws0">loop<span class="_ _5"> </span>(with<span class="_ _5"> </span>header<span class="_ _5"> </span>at<span class="_ _5"> </span><span class="fff">i</span></div><div class="t m0 x64 h8 y33 ff8 fs4 fc0 sc0 ls0 ws0">2</div><div class="t m0 x65 h5 y9c ff2 fs3 fc0 sc0 ls0 ws0">)<span class="_ _5"> </span>becomes<span class="_ _5"> </span>hot<span class="_ _5"> </span>first,<span class="_ _5"> </span>and<span class="_ _5"> </span>a<span class="_ _5"> </span>trace<span class="_ _5"> </span>tree<span class="_ _5"> </span>is<span class="_ _5"> </span>rooted</div><div class="t m0 x2f h5 y9d ff2 fs3 fc0 sc0 ls0 ws0">at<span class="_ _3"> </span>that<span class="_ _3"> </span>point.<span class="_ _3"> </span>For<span class="_ _3"> </span>example,<span class="_ _3"> </span>the<span class="_ _3"> </span>first<span class="_ _3"> </span>recorded<span class="_ _3"> </span>trace<span class="_ _3"> </span>may<span class="_ _3"> </span>be<span class="_ _3"> </span>a<span class="_ _3"> </span>cycle</div><div class="c x55 y176 w6 h13"><div class="t m0 x3f hc y55 ff11 fs3 fc0 sc0 ls0 ws0">T</div><div class="t m0 x40 h14 y177 ff11 fs7 fc0 sc0 ls0 ws0">TrunkT<span class="_ _2"></span>r<span class="_ _2"></span>ace</div><div class="t m0 x40 h14 y178 ff11 fs7 fc0 sc0 ls0 ws0">Tr<span class="_ _2"></span>eeAnchor</div><div class="t m0 x36 h14 y179 ff11 fs7 fc0 sc0 ls0 ws0">Tr<span class="_ _2"></span>aceAnchor</div><div class="t m0 x36 h14 y17a ff11 fs7 fc0 sc0 ls0 ws0">BranchT<span class="_ _2"></span>race</div><div class="t m0 x34 h14 y35 ff11 fs7 fc0 sc0 ls0 ws0">Guard</div><div class="t m0 x66 h14 y17b ff11 fs7 fc0 sc0 ls0 ws0">SideExit</div></div><div class="t m0 x32 h5 y6a ff1 fs3 fc0 sc0 ls0 ws0">Figure<span class="_ _8"> </span>5.<span class="_ _1"> </span><span class="ff2">A<span class="_ _8"> </span>tree<span class="_ _8"> </span>with<span class="_ _d"> </span>two<span class="_ _8"> </span>traces,<span class="_ _8"> </span>a<span class="_ _8"> </span>trunk<span class="_ _d"> </span>trace<span class="_ _8"> </span>and<span class="_ _8"> </span>one<span class="_ _d"> </span>branch</span></div><div class="t m0 x32 h5 y6b ff2 fs3 fc0 sc0 ls0 ws0">trace.<span class="_ _5"> </span>The<span class="_ _5"> </span>trunk<span class="_ _5"> </span>trace<span class="_ _5"> </span>contains<span class="_ _5"> </span>a<span class="_ _3"> </span>guard<span class="_ _5"> </span>to<span class="_ _5"> </span>which<span class="_ _5"> </span>a<span class="_ _5"> </span>branch<span class="_ _5"> </span>trace<span class="_ _5"> </span>was</div><div class="t m0 x32 h5 y6c ff2 fs3 fc0 sc0 ls0 ws0">attached.<span class="_ _5"> </span>The<span class="_ _5"> </span>branch<span class="_ _5"> </span>trace<span class="_ _5"> </span>contain<span class="_ _5"> </span>a<span class="_ _7"> </span>guard<span class="_ _5"> </span>that<span class="_ _5"> </span>may<span class="_ _5"> </span>fail<span class="_ _5"> </span>and<span class="_ _5"> </span>trigger</div><div class="t m0 x32 h5 y6d ff2 fs3 fc0 sc0 ls0 ws0">a<span class="_ _5"> </span>side<span class="_ _5"> </span>e<span class="_ _2"></span>xit.<span class="_ _5"> </span>Both<span class="_ _7"> </span>the<span class="_ _5"> </span>trunk<span class="_ _5"> </span>and<span class="_ _5"> </span>the<span class="_ _7"> </span>branch<span class="_ _5"> </span>trace<span class="_ _5"> </span>loop<span class="_ _5"> </span>back<span class="_ _7"> </span>to<span class="_ _5"> </span>the<span class="_ _5"> </span>tree</div><div class="t m0 x32 h5 y6e ff2 fs3 fc0 sc0 ls0 ws0">anchor<span class="_ _2"></span>,<span class="_ _5"> </span>which<span class="_ _5"> </span>is<span class="_ _5"> </span>the<span class="_ _3"> </span>be<span class="_ _2"></span>ginning<span class="_ _5"> </span>of<span class="_ _5"> </span>the<span class="_ _5"> </span>trace<span class="_ _5"> </span>tree.</div><div class="c x67 yf2 w7 h15"><div class="t m0 x68 h16 yd2 ff12 fs8 fc0 sc0 ls0 ws0">Tr<span class="_ _2"></span>ace2</div><div class="t m0 x69 h16 yd2 ff12 fs8 fc0 sc0 ls0 ws0">Tr<span class="_ _2"></span>ace1<span class="_ _1c"> </span>Tr<span class="_ _2"></span>ace2<span class="_ _1d"></span>Tr<span class="_ _2"></span>ace1</div><div class="t m0 x69 h16 yb1 ff12 fs8 fc0 sc0 ls0 ws0">Closed</div><div class="t m0 x68 h16 yb1 ff12 fs8 fc0 sc0 ls0 ws0">Linked<span class="_ _1e"> </span>Linked<span class="_ _1f"> </span>Linked</div><div class="t m0 x6a h6 y10a ff12 fs9 fc0 sc0 ls0 ws0">Number</div><div class="t m0 x6b h6 y17c ff12 fs9 fc0 sc0 ls0 ws0">Number</div><div class="t m0 x6c h6 y34 ff12 fs9 fc0 sc0 ls0 ws0">String</div><div class="t m0 x38 h6 y17c ff12 fs9 fc0 sc0 ls0 ws0">String</div><div class="t m0 x6c h6 y17d ff12 fs9 fc0 sc0 ls0 ws0">String</div><div class="t m0 x51 h6 y17e ff12 fs9 fc0 sc0 ls0 ws0">String</div><div class="t m0 x38 h6 yb6 ff12 fs9 fc0 sc0 ls0 ws0">Boolean</div><div class="t m0 x5d h16 y17f ff12 fs8 fc0 sc0 ls0 ws0">Tr<span class="_ _2"></span>ace2<span class="_ _20"></span>Tr<span class="_ _2"></span>ace1<span class="_ _21"> </span>Tr<span class="_ _2"></span>ace3</div><div class="t m0 x69 h16 yac ff12 fs8 fc0 sc0 ls0 ws0">Linked</div><div class="t m0 x2f h16 y180 ff12 fs8 fc0 sc0 ls0 ws0">Linked<span class="_ _22"> </span>Linked</div><div class="t m0 x47 h16 y180 ff12 fs8 fc0 sc0 ls0 ws0">Closed</div><div class="t m0 x6a h6 yfe ff12 fs9 fc0 sc0 ls0 ws0">Number</div><div class="t m0 x6a h6 y181 ff12 fs9 fc0 sc0 ls0 ws0">Number<span class="_ _23"> </span>Number</div><div class="t m0 x6d h6 yfe ff12 fs9 fc0 sc0 ls0 ws0">Boolean<span class="_ _24"> </span>Number</div><div class="t m0 x6e h6 y181 ff12 fs9 fc0 sc0 ls0 ws0">Boolean<span class="_ _23"> </span>Number</div><div class="t m0 x6f h6 yfe ff12 fs9 fc0 sc0 ls0 ws0">Boolean</div><div class="t m0 x70 h17 y30 ff12 fsa fc0 sc0 ls0 ws0">(a)</div><div class="t m0 x44 h17 y13e ff12 fsa fc0 sc0 ls0 ws0">(b)</div><div class="t m0 x31 h17 y182 ff12 fsa fc0 sc0 ls0 ws0">(c)</div></div><div class="t m0 x32 h5 y183 ff1 fs3 fc0 sc0 ls0 ws0">Figure<span class="_ _d"> </span>6.<span class="_ _1"> </span><span class="ff2">W<span class="_ _b"></span>e<span class="_ _d"> </span>handle<span class="_ _d"> </span>type-unstable<span class="_ _d"> </span>loops<span class="_ _d"> </span>by<span class="_ _d"> </span>allo<span class="_ _2"></span>wing<span class="_ _d"> </span>traces<span class="_ _d"> </span>to</span></div><div class="t m0 x32 h5 y184 ff2 fs3 fc0 sc0 ls0 ws0">compile<span class="_ _8"> </span>that<span class="_ _8"> </span>cannot<span class="_ _6"> </span>loop<span class="_ _8"> </span>back<span class="_ _8"> </span>to<span class="_ _8"> </span>themselves<span class="_ _8"> </span>due<span class="_ _8"> </span>to<span class="_ _8"> </span>a<span class="_ _8"> </span>type<span class="_ _8"> </span>mis-</div><div class="t m0 x32 h5 y185 ff2 fs3 fc0 sc0 ls0 ws0">match.<span class="_ _5"> </span>As<span class="_ _5"> </span>such<span class="_ _7"> </span>traces<span class="_ _5"> </span>accumulate,<span class="_ _5"> </span>we<span class="_ _5"> </span>attempt<span class="_ _7"> </span>to<span class="_ _5"> </span>connect<span class="_ _5"> </span>their<span class="_ _5"> </span>loop</div><div class="t m0 x32 h5 y171 ff2 fs3 fc0 sc0 ls0 ws0">edges<span class="_ _5"> </span>to<span class="_ _5"> </span>form<span class="_ _5"> </span>groups<span class="_ _5"> </span>of<span class="_ _5"> </span>trace<span class="_ _5"> </span>trees<span class="_ _5"> </span>that<span class="_ _5"> </span>can<span class="_ _5"> </span>e<span class="_ _2"></span>xecute<span class="_ _5"> </span>without<span class="_ _5"> </span>ha<span class="_ _2"></span>ving</div><div class="t m0 x32 h5 y186 ff2 fs3 fc0 sc0 ls0 ws0">to<span class="_ _3"> </span>side-exit<span class="_ _3"> </span>to<span class="_ _3"> </span>the<span class="_ _3"> </span>interpreter<span class="_ _3"> </span>to<span class="_ _3"> </span>cover<span class="_ _3"> </span>odd<span class="_ _3"> </span>type<span class="_ _3"> </span>cases.<span class="_ _3"> </span>This<span class="_ _3"> </span>is<span class="_ _3"> </span>par-</div><div class="t m0 x32 h5 y187 ff2 fs3 fc0 sc0 ls0 ws0">ticularly<span class="_ _5"> </span>important<span class="_ _5"> </span>for<span class="_ _7"> </span>nested<span class="_ _5"> </span>trace<span class="_ _5"> </span>trees<span class="_ _5"> </span>where<span class="_ _7"> </span>an<span class="_ _5"> </span>outer<span class="_ _5"> </span>tree<span class="_ _5"> </span>tries<span class="_ _5"> </span>to</div><div class="t m0 x32 h5 y188 ff2 fs3 fc0 sc0 ls0 ws0">call<span class="_ _5"> </span>an<span class="_ _5"> </span>inner<span class="_ _5"> </span>tree<span class="_ _5"> </span>(or<span class="_ _5"> </span>in<span class="_ _3"> </span>this<span class="_ _5"> </span>case<span class="_ _5"> </span>a<span class="_ _5"> </span>forest<span class="_ _5"> </span>of<span class="_ _5"> </span>inner<span class="_ _5"> </span>trees),<span class="_ _5"> </span>since<span class="_ _5"> </span>inner</div><div class="t m0 x32 h5 y174 ff2 fs3 fc0 sc0 ls0 ws0">loops<span class="_ _5"> </span>frequently<span class="_ _5"> </span>have<span class="_ _5"> </span>initially<span class="_ _5"> </span>undefined<span class="_ _5"> </span>v<span class="_ _2"></span>alues<span class="_ _5"> </span>which<span class="_ _5"> </span>change<span class="_ _5"> </span>type</div><div class="t m0 x32 h5 y175 ff2 fs3 fc0 sc0 ls0 ws0">to<span class="_ _5"> </span>a<span class="_ _5"> </span>concrete<span class="_ _3"> </span>v<span class="_ _2"></span>alue<span class="_ _5"> </span>after<span class="_ _5"> </span>the<span class="_ _5"> </span>first<span class="_ _5"> </span>iteration.</div><div class="t m0 x32 h7 yd1 ff2 fs3 fc0 sc0 ls0 ws0">through<span class="_ _8"> </span>the<span class="_ _d"> </span>inner<span class="_ _8"> </span>loop,<span class="_ _8"> </span><span class="ff6">{<span class="fff">i</span></span></div><div class="t m0 x71 h8 y92 ff8 fs4 fc0 sc0 ls0 ws0">2</div><div class="t m0 x72 h5 yd1 fff fs3 fc0 sc0 ls0 ws0">,<span class="_ _7"> </span>i</div><div class="t m0 x73 h8 y92 ff8 fs4 fc0 sc0 ls0 ws0">3</div><div class="t m0 x74 h5 yd1 fff fs3 fc0 sc0 ls0 ws0">,<span class="_ _7"> </span>i</div><div class="t m0 x75 h8 y92 ff8 fs4 fc0 sc0 ls0 ws0">5</div><div class="t m0 x76 h7 yd1 fff fs3 fc0 sc0 ls0 ws0">,<span class="_ _7"> </span>α<span class="ff6">}<span class="ff2">.<span class="_ _8"> </span>The<span class="_ _d"> </span></span></span>α<span class="_ _8"> </span><span class="ff2">symbol<span class="_ _d"> </span>is<span class="_ _8"> </span>used<span class="_ _8"> </span>to</span></div><div class="t m0 x32 h5 yd2 ff2 fs3 fc0 sc0 ls0 ws0">indicate<span class="_ _5"> </span>that<span class="_ _5"> </span>the<span class="_ _3"> </span>trace<span class="_ _5"> </span>loops<span class="_ _5"> </span>back<span class="_ _5"> </span>the<span class="_ _5"> </span>tree<span class="_ _5"> </span>anchor<span class="_ _2"></span>.</div><div class="t m0 x33 h5 yd3 ff2 fs3 fc0 sc0 ls0 ws0">When<span class="_ _5"> </span>execution<span class="_ _5"> </span>leaves<span class="_ _5"> </span>the<span class="_ _5"> </span>inner<span class="_ _3"> </span>loop,<span class="_ _5"> </span>the<span class="_ _5"> </span>basic<span class="_ _3"> </span>design<span class="_ _5"> </span>has<span class="_ _5"> </span>two</div><div class="t m0 x32 h5 y94 ff2 fs3 fc0 sc0 ls0 ws0">choices.<span class="_ _5"> </span>First,<span class="_ _7"> </span>the<span class="_ _5"> </span>system<span class="_ _7"> </span>can<span class="_ _5"> </span>stop<span class="_ _5"> </span>tracing<span class="_ _7"> </span>and<span class="_ _5"> </span>gi<span class="_ _2"></span>ve<span class="_ _7"> </span>up<span class="_ _5"> </span>on<span class="_ _5"> </span>compiling</div><div class="t m0 x32 h5 y95 ff2 fs3 fc0 sc0 ls0 ws0">the<span class="_ _3"> </span>outer<span class="_ _5"> </span>loop,<span class="_ _3"> </span>clearly<span class="_ _5"> </span>an<span class="_ _3"> </span>undesirable<span class="_ _5"> </span>solution.<span class="_ _3"> </span>The<span class="_ _5"> </span>other<span class="_ _3"> </span>choice<span class="_ _5"> </span>is</div><div class="t m0 x32 h5 y96 ff2 fs3 fc0 sc0 ls0 ws0">to<span class="_ _3"> </span>continue<span class="_ _6"> </span>tracing,<span class="_ _3"> </span>compiling<span class="_ _3"> </span>traces<span class="_ _3"> </span>for<span class="_ _6"> </span>the<span class="_ _3"> </span>outer<span class="_ _3"> </span>loop<span class="_ _6"> </span>inside<span class="_ _3"> </span>the</div><div class="t m0 x32 h5 y97 ff2 fs3 fc0 sc0 ls0 ws0">inner<span class="_ _5"> </span>loop<span class="_ _2"></span>s<span class="_ _5"> </span>trace<span class="_ _5"> </span>tree.</div><div class="t m0 x33 h5 y98 ff2 fs3 fc0 sc0 ls0 ws0">For<span class="_ _3"> </span>e<span class="_ _2"></span>xample,<span class="_ _3"> </span>the<span class="_ _5"> </span>program<span class="_ _3"> </span>might<span class="_ _3"> </span>exit<span class="_ _3"> </span>at<span class="_ _5"> </span><span class="fff">i</span></div><div class="t m0 x77 h8 y189 ff8 fs4 fc0 sc0 ls0 ws0">5</div><div class="t m0 x78 h5 y98 ff2 fs3 fc0 sc0 ls0 ws0">and<span class="_ _3"> </span>record<span class="_ _3"> </span>a<span class="_ _5"> </span>branch</div><div class="t m0 x32 h7 y99 ff2 fs3 fc0 sc0 ls0 ws0">trace<span class="_ _e"> </span>that<span class="_ _e"> </span>incorporates<span class="_ _1b"> </span>the<span class="_ _e"> </span>outer<span class="_ _e"> </span>loop:<span class="_ _e"> </span><span class="ff6">{<span class="fff">i</span></span></div><div class="t m0 x79 h8 y18a ff8 fs4 fc0 sc0 ls0 ws0">5</div><div class="t m0 xb h5 y99 fff fs3 fc0 sc0 ls0 ws0">,<span class="_ _7"> </span>i</div><div class="t m0 x7a h8 y18a ff8 fs4 fc0 sc0 ls0 ws0">7</div><div class="t m0 x7b h5 y99 fff fs3 fc0 sc0 ls0 ws0">,<span class="_ _7"> </span>i</div><div class="t m0 x7c h8 y18a ff8 fs4 fc0 sc0 ls0 ws0">1</div><div class="t m0 x7d h5 y99 fff fs3 fc0 sc0 ls0 ws0">,<span class="_ _7"> </span>i</div><div class="t m0 x7e h8 y18a ff8 fs4 fc0 sc0 ls0 ws0">6</div><div class="t m0 x7f h5 y99 fff fs3 fc0 sc0 ls0 ws0">,<span class="_ _7"> </span>i</div><div class="t m0 x80 h8 y18a ff8 fs4 fc0 sc0 ls0 ws0">7</div><div class="t m0 x81 h5 y99 fff fs3 fc0 sc0 ls0 ws0">,<span class="_ _7"> </span>i</div><div class="t m0 x22 h8 y18a ff8 fs4 fc0 sc0 ls0 ws0">1</div><div class="t m0 x82 h7 y99 fff fs3 fc0 sc0 ls0 ws0">,<span class="_ _7"> </span>α<span class="ff6">}<span class="ff2">.</span></span></div><div class="t m0 x32 h5 y9a ff2 fs3 fc0 sc0 ls0 ws0">Later<span class="_ _2"></span>,<span class="_ _d"> </span>the<span class="_ _1"> </span>program<span class="_ _d"> </span>might<span class="_ _d"> </span>take<span class="_ _1"> </span>the<span class="_ _d"> </span>other<span class="_ _d"> </span>branch<span class="_ _1"> </span>at<span class="_ _d"> </span><span class="fff">i</span></div><div class="t m0 x7f h8 y18b ff8 fs4 fc0 sc0 ls0 ws0">2</div><div class="t m0 x80 h5 y9a ff2 fs3 fc0 sc0 ls0 ws0">and<span class="_ _d"> </span>then</div><div class="t m0 x32 h5 y9b ff2 fs3 fc0 sc0 ls0 ws0">exit,<span class="_ _3"> </span>recording<span class="_ _6"> </span>another<span class="_ _6"> </span>branch<span class="_ _3"> </span>trace<span class="_ _6"> </span>incorporating<span class="_ _6"> </span>the<span class="_ _6"> </span>outer<span class="_ _3"> </span>loop:</div><div class="t m0 x32 h7 y9c ff6 fs3 fc0 sc0 ls0 ws0">{<span class="fff">i</span></div><div class="t m0 x83 h8 y33 ff8 fs4 fc0 sc0 ls0 ws0">2</div><div class="t m0 x33 h5 y9c fff fs3 fc0 sc0 ls0 ws0">,<span class="_ _7"> </span>i</div><div class="t m0 x27 h8 y33 ff8 fs4 fc0 sc0 ls0 ws0">4</div><div class="t m0 x84 h5 y9c fff fs3 fc0 sc0 ls0 ws0">,<span class="_ _7"> </span>i</div><div class="t m0 x85 h8 y33 ff8 fs4 fc0 sc0 ls0 ws0">5</div><div class="t m0 x67 h5 y9c fff fs3 fc0 sc0 ls0 ws0">,<span class="_ _7"> </span>i</div><div class="t m0 x86 h8 y33 ff8 fs4 fc0 sc0 ls0 ws0">7</div><div class="t m0 x87 h5 y9c fff fs3 fc0 sc0 ls0 ws0">,<span class="_ _7"> </span>i</div><div class="t m0 x88 h8 y33 ff8 fs4 fc0 sc0 ls0 ws0">1</div><div class="t m0 x89 h5 y9c fff fs3 fc0 sc0 ls0 ws0">,<span class="_ _7"> </span>i</div><div class="t m0 x8a h8 y33 ff8 fs4 fc0 sc0 ls0 ws0">6</div><div class="t m0 x8b h5 y9c fff fs3 fc0 sc0 ls0 ws0">,<span class="_ _7"> </span>i</div><div class="t m0 x8c h8 y33 ff8 fs4 fc0 sc0 ls0 ws0">7</div><div class="t m0 x56 h5 y9c fff fs3 fc0 sc0 ls0 ws0">,<span class="_ _7"> </span>i</div><div class="t m0 xa h8 y33 ff8 fs4 fc0 sc0 ls0 ws0">1</div><div class="t m0 x8d h7 y9c fff fs3 fc0 sc0 ls0 ws0">,<span class="_ _7"> </span>α<span class="ff6">}<span class="ff2">.<span class="_ _5"> </span>Thus,<span class="_ _5"> </span>the<span class="_ _5"> </span>outer<span class="_ _5"> </span>loop<span class="_ _5"> </span>is<span class="_ _5"> </span>recorded<span class="_ _5"> </span>and</span></span></div><div class="t m0 x32 h5 y9d ff2 fs3 fc0 sc0 ls0 ws0">compiled<span class="_ _5"> </span>twice,<span class="_ _7"> </span>and<span class="_ _7"> </span>both<span class="_ _5"> </span>copies<span class="_ _7"> </span>must<span class="_ _5"> </span>be<span class="_ _7"> </span>retained<span class="_ _7"> </span>in<span class="_ _5"> </span>the<span class="_ _7"> </span>trace<span class="_ _5"> </span>cache.</div></div><div class="pi" data-data='{"ctm":[1.673203,0.000000,0.000000,1.673203,0.000000,0.000000]}'></div></div></div>