mirror of
https://github.com/pdf2htmlEX/pdf2htmlEX.git
synced 2024-12-22 13:00:08 +00:00
2 lines
64 KiB
Plaintext
2 lines
64 KiB
Plaintext
<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">Trunk
T<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>ee
Anchor</div><div class="t m0 x36 h14 y179 ff11 fs7 fc0 sc0 ls0 ws0">Tr<span class="_ _2"></span>ace
Anchor</div><div class="t m0 x36 h14 y17a ff11 fs7 fc0 sc0 ls0 ws0">Branch
T<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">Side
Exit</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>ace
2</div><div class="t m0 x69 h16 yd2 ff12 fs8 fc0 sc0 ls0 ws0">Tr<span class="_ _2"></span>ace
1<span class="_ _1c"> </span>Tr<span class="_ _2"></span>ace
2<span class="_ _1d"></span>Tr<span class="_ _2"></span>ace
1</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>ace
2<span class="_ _20"></span>Tr<span class="_ _2"></span>ace
1<span class="_ _21"> </span>Tr<span class="_ _2"></span>ace
3</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>
|