Author: Antonio Cuni <anto.c...@gmail.com> Branch: extradoc Changeset: r4225:c63941891cfe Date: 2012-06-30 12:13 +0200 http://bitbucket.org/pypy/extradoc/changeset/c63941891cfe/
Log: start to explain tracing, and add a diagram diff --git a/talk/ep2012/jit/talk/Makefile b/talk/ep2012/jit/talk/Makefile --- a/talk/ep2012/jit/talk/Makefile +++ b/talk/ep2012/jit/talk/Makefile @@ -4,7 +4,7 @@ # WARNING: to work, it needs this patch for docutils # https://sourceforge.net/tracker/?func=detail&atid=422032&aid=1459707&group_id=38414 -talk.pdf: talk.rst author.latex title.latex stylesheet.latex +talk.pdf: talk.rst author.latex title.latex stylesheet.latex diagrams/tracing-phases-p0.pdf rst2beamer.py --stylesheet=stylesheet.latex --documentoptions=14pt talk.rst talk.latex || exit sed 's/\\date{}/\\input{author.latex}/' -i talk.latex || exit #sed 's/\\maketitle/\\input{title.latex}/' -i talk.latex || exit @@ -15,3 +15,7 @@ xpdf: talk.pdf xpdf talk.pdf & + + +diagrams/tracing-phases-p0.pdf: diagrams/tracing-phases.svg + cd diagrams && inkscapeslide.py tracing-phases.svg diff --git a/talk/ep2012/jit/talk/diagrams/tracing-phases.svg b/talk/ep2012/jit/talk/diagrams/tracing-phases.svg new file mode 100644 --- /dev/null +++ b/talk/ep2012/jit/talk/diagrams/tracing-phases.svg @@ -0,0 +1,426 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="svg2" + version="1.1" + inkscape:version="0.48.2 r9819" + width="397.1475" + height="228.3725" + xml:space="preserve" + sodipodi:docname="tracing_phases.svg"><metadata + id="metadata8"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs + id="defs6" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1491" + inkscape:window-height="753" + id="namedview4" + showgrid="false" + inkscape:zoom="2" + inkscape:cx="65.562336" + inkscape:cy="181.16747" + inkscape:window-x="2050" + inkscape:window-y="68" + inkscape:window-maximized="0" + inkscape:current-layer="layer11" /><g + inkscape:groupmode="layer" + id="layer11" + inkscape:label="content"><text + xml:space="preserve" + style="font-size:11px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="-191.5" + y="-44.627502" + id="text5362" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan5364" + x="-191.5" + y="-44.627502">interp</tspan><tspan + sodipodi:role="line" + x="-191.5" + y="-19.627502" + id="tspan5366">+tracing</tspan><tspan + sodipodi:role="line" + x="-191.5" + y="5.3724976" + id="tspan5368">+compilation</tspan><tspan + sodipodi:role="line" + x="-191.5" + y="30.372498" + id="tspan5370">+running</tspan><tspan + sodipodi:role="line" + x="-191.5" + y="55.372498" + id="tspan5372">+cold_guard</tspan><tspan + sodipodi:role="line" + x="-191.5" + y="80.372498" + id="tspan5374">+compiled_loop</tspan><tspan + sodipodi:role="line" + x="-191.5" + y="105.3725" + id="tspan5376">+bridge</tspan><tspan + sodipodi:role="line" + x="-191.5" + y="130.3725" + id="tspan5378">+hot_guard</tspan></text> +</g><g + id="g10" + inkscape:groupmode="layer" + inkscape:label="interp" + transform="matrix(1.25,0,0,-1.25,56.76125,122.78375)" + style="display:inline"><g + style="display:inline" + id="g18"><g + id="g20"><path + d="M 29.89998,0 C 29.89998,16.5135 16.5135,29.89998 0,29.89998 -16.5135,29.89998 -29.89998,16.5135 -29.89998,0 c 0,-16.5135 13.38648,-29.89998 29.89998,-29.89998 16.5135,0 29.89998,13.38648 29.89998,29.89998 z" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.59776002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none" + id="path22" + inkscape:connector-curvature="0" /></g><g + id="g24" + transform="translate(-25.879,-1.948)"><g + id="g26"><g + id="g28" + transform="translate(-19.53,-82.523)"><text + transform="matrix(1,0,0,-1,19.53,82.523)" + id="text30"><tspan + style="font-size:7.97009993px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:CMR8;-inkscape-font-specification:CMR8" + x="0 3.0493603 7.5229774 10.816223 14.579704 17.880123 22.584873 25.88529 29.648771 32.942017 37.176533 40.469776 42.821754 47.056267" + y="0" + sodipodi:role="line" + id="tspan32">Interpretation</tspan></text> +<g + id="g34" + transform="translate(19.53,82.523)" /></g></g><g + id="g36" + transform="translate(25.879,1.948)" /></g></g></g><g + inkscape:groupmode="layer" + id="layer4" + inkscape:label="tracing" + style="display:inline"><g + transform="matrix(1.25,0,0,-1.25,56.76125,122.78375)" + style="display:inline" + id="g38"><g + id="g40"><path + d="m 95.35454,70.44759 c 0,13.7559 -11.15105,24.90695 -24.90695,24.90695 -13.75591,0 -24.90696,-11.15105 -24.90696,-24.90695 0,-13.75591 11.15105,-24.90696 24.90696,-24.90696 13.7559,0 24.90695,11.15105 24.90695,24.90696 z" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.59776002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none" + id="path42" + inkscape:connector-curvature="0" /></g><g + id="g44" + transform="translate(56.447,68.499)"><g + id="g46"><g + id="g48" + transform="translate(-101.856,-152.97)"><text + transform="matrix(1,0,0,-1,101.856,152.97)" + id="text50"><tspan + style="font-size:7.97009993px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:CMR8;-inkscape-font-specification:CMR8" + x="0 5.4069157 8.7073345 12.941849 16.70533 19.057306 23.762056" + y="0" + sodipodi:role="line" + id="tspan52">Tracing</tspan></text> +<g + id="g54" + transform="translate(101.856,152.97)" /></g></g><g + id="g56" + transform="translate(-56.447,-68.499)" /></g></g><g + transform="matrix(1.25,0,0,-1.25,56.76125,122.78375)" + style="display:inline" + id="g98"><path + d="m 7.8308,29.22702 c 6.14624,19.1698 18.54745,30.42239 36.0576,34.21565" + style="fill:none;stroke:#000000;stroke-width:0.59776002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none" + id="path100" + inkscape:connector-curvature="0" /><g + id="g102" + transform="matrix(0.97865,0.21199,-0.21199,0.97865,43.8884,63.44267)"><g + id="g104"><path + d="m 0.91655,0 c -1.14568,0.22913 -2.29138,0.68741 -3.66621,1.4894 1.37483,-1.03113 1.37483,-1.94767 0,-2.9788 1.37483,0.80199 2.52053,1.26027 3.66621,1.4894 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.59776002;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none" + id="path106" + inkscape:connector-curvature="0" /></g></g><g + id="g108"><g + id="g110" + transform="translate(-41.588,57.135)"><g + id="g112"><g + id="g114" + transform="translate(-3.821,-141.606)"><text + transform="matrix(1,0,0,-1,3.821,141.606)" + id="text116"><tspan + style="font-size:6.97380018px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:CMTI7;-inkscape-font-specification:CMTI7" + x="0 4.2065964 8.4131927 14.163788 16.32218 20.117321 24.323917 31.508326 35.71492 39.512157 42.284939 45.670719 49.467953 52.240734 55.633488" + y="0" + sodipodi:role="line" + id="tspan118">hotloopdetected</tspan></text> +<g + id="g120" + transform="translate(3.821,141.606)" /></g></g><g + id="g122" + transform="translate(41.588,-57.135)" /></g></g></g></g><g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="compilation" + style="display:inline"><g + transform="matrix(1.25,0,0,-1.25,56.76125,122.78375)" + style="display:inline" + id="g58"><g + id="g60"><path + d="m 197.05687,70.44759 c 0,14.90161 -12.07983,26.98144 -26.98145,26.98144 -14.90161,0 -26.98144,-12.07983 -26.98144,-26.98144 0,-14.90162 12.07983,-26.98145 26.98144,-26.98145 14.90162,0 26.98145,12.07983 26.98145,26.98145 z" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.59776002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none" + id="path62" + inkscape:connector-curvature="0" /></g><g + id="g64" + transform="translate(147.255,68.455)"><g + id="g66"><g + id="g68" + transform="translate(-192.664,-152.926)"><text + transform="matrix(1,0,0,-1,192.664,152.926)" + id="text70"><tspan + style="font-size:7.97009993px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:CMR8;-inkscape-font-specification:CMR8" + x="0 6.1162548 10.350769 17.407495 22.112246 24.464222 26.816198 31.050713 34.34396 36.695934 40.93045" + y="0" + sodipodi:role="line" + id="tspan72">Compilation</tspan></text> +<g + id="g74" + transform="translate(192.664,152.926)" /></g></g><g + id="g76" + transform="translate(-147.255,-68.455)" /></g></g><g + transform="matrix(1.25,0,0,-1.25,56.76125,122.78375)" + style="display:inline" + id="g150"><path + d="m 92.34576,83.0905 c 18.11411,10.92772 35.50846,11.2639 52.09127,2.11029" + style="fill:none;stroke:#000000;stroke-width:0.59776002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none" + id="path152" + inkscape:connector-curvature="0" /><g + id="g154" + transform="matrix(0.87622,-0.48367,0.48367,0.87622,144.43703,85.20079)"><g + id="g156"><path + d="m 0.91655,0 c -1.14568,0.22913 -2.29138,0.68741 -3.66621,1.4894 1.37483,-1.03113 1.37483,-1.94767 0,-2.9788 1.37483,0.80199 2.52053,1.26027 3.66621,1.4894 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.59776002;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none" + id="path158" + inkscape:connector-curvature="0" /></g></g></g></g><g + inkscape:groupmode="layer" + id="layer6" + inkscape:label="running" + style="display:inline"><g + transform="matrix(1.25,0,0,-1.25,56.76125,122.78375)" + style="display:inline" + id="g78"><g + id="g80"><path + d="m 265.42998,0 c 0,13.7559 -11.15105,24.90694 -24.90695,24.90694 -13.75591,0 -24.90696,-11.15104 -24.90696,-24.90694 0,-13.7559 11.15105,-24.90694 24.90696,-24.90694 13.7559,0 24.90695,11.15104 24.90695,24.90694 z" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.59776002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none" + id="path82" + inkscape:connector-curvature="0" /></g><g + id="g84" + transform="translate(224.702,-1.948)"><g + id="g86"><g + id="g88" + transform="translate(-270.111,-82.523)"><text + transform="matrix(1,0,0,-1,270.111,82.523)" + id="text90"><tspan + style="font-size:7.97009993px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:CMR8;-inkscape-font-specification:CMR8" + x="0 6.2294302 10.93418 15.63893 20.343679 22.695656 27.400406" + y="0" + sodipodi:role="line" + id="tspan92">Running</tspan></text> +<g + id="g94" + transform="translate(270.111,82.523)" /></g></g><g + id="g96" + transform="translate(-224.702,1.948)" /></g></g><g + transform="matrix(1.25,0,0,-1.25,56.76125,122.78375)" + style="display:inline" + id="g160"><path + d="m 196.47784,63.3736 c 20.31107,-5.86295 32.43097,-18.45757 36.97692,-36.8283" + style="fill:none;stroke:#000000;stroke-width:0.59776002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none" + id="path162" + inkscape:connector-curvature="0" /><g + id="g164" + transform="matrix(0.24063,-0.97238,0.97238,0.24063,233.45476,26.5453)"><g + id="g166"><path + d="m 0.91655,0 c -1.14568,0.22913 -2.29138,0.68741 -3.66621,1.4894 1.37483,-1.03113 1.37483,-1.94767 0,-2.9788 1.37483,0.80199 2.52053,1.26027 3.66621,1.4894 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.59776002;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none" + id="path168" + inkscape:connector-curvature="0" /></g></g></g></g><g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="cold_guard" + style="display:inline"><g + transform="matrix(1.25,0,0,-1.25,56.76125,122.78375)" + style="display:inline" + id="g170"><path + d="M 224.24709,-19.39551 C 173.87463,-81.7608 72.17174,-83.67355 20.95428,-24.90617" + style="fill:none;stroke:#000000;stroke-width:0.59776002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none" + id="path172" + inkscape:connector-curvature="0" /><g + id="g174" + transform="matrix(-0.65752,0.75444,-0.75444,-0.65752,20.95428,-24.90617)"><g + id="g176"><path + d="m 0.91655,0 c -1.14568,0.22913 -2.29138,0.68741 -3.66621,1.4894 1.37483,-1.03113 1.37483,-1.94767 0,-2.9788 1.37483,0.80199 2.52053,1.26027 3.66621,1.4894 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.59776002;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none" + id="path178" + inkscape:connector-curvature="0" /></g></g><g + id="g180"><g + id="g182" + transform="translate(93.378,-75.828)"><g + id="g184"><g + id="g186" + transform="translate(-138.787,-8.643)"><text + transform="matrix(1,0,0,-1,138.787,8.643)" + id="text188"><tspan + style="font-size:6.97380018px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:CMTI7;-inkscape-font-specification:CMTI7" + x="0 3.3857799 7.5923762 9.7507668 16.935177 20.73241 25.144035 29.350632 32.428867 39.613277 42.181728 46.388325 48.956772 51.115166 54.507919" + y="0" + sodipodi:role="line" + id="tspan190">coldguardfailed</tspan></text> +<g + id="g192" + transform="translate(138.787,8.643)" /></g></g><g + id="g194" + transform="translate(-93.378,75.828)" /></g></g></g></g><g + inkscape:groupmode="layer" + id="layer8" + inkscape:label="compiled_loop" + style="display:inline"><g + transform="matrix(1.25,0,0,-1.25,56.76125,122.78375)" + style="display:inline" + id="g124"><path + d="M 215.66725,-9.05807 C 147.99724,-34.38509 97.67914,-34.84343 29.35406,-10.67384" + style="fill:none;stroke:#000000;stroke-width:0.59776002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none" + id="path126" + inkscape:connector-curvature="0" /><g + id="g128" + transform="matrix(0.93787,0.35104,-0.35104,0.93787,215.66725,-9.05807)"><g + id="g130"><path + d="m 0.91655,0 c -1.14568,0.22913 -2.29138,0.68741 -3.66621,1.4894 1.37483,-1.03113 1.37483,-1.94767 0,-2.9788 1.37483,0.80199 2.52053,1.26027 3.66621,1.4894 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.59776002;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none" + id="path132" + inkscape:connector-curvature="0" /></g></g><g + id="g134"><g + id="g136" + transform="translate(82.498,-36.794)"><g + id="g138"><g + id="g140" + transform="translate(-127.907,-47.677)"><text + transform="matrix(1,0,0,-1,127.907,47.677)" + id="text142"><tspan + style="font-size:6.97380018px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:CMTI7;-inkscape-font-specification:CMTI7" + x="0 3.7972341 8.4131927 11.185975 14.98321 18.472898 21.041349 25.657307 32.432354 35.818134 40.024731 46.688892 50.895489 53.46394 55.62233 59.00811 66.19252 68.350914 72.15303 76.359627" + y="0" + sodipodi:role="line" + id="tspan144">enteringcompiledloop</tspan></text> +<g + id="g146" + transform="translate(127.907,47.677)" /></g></g><g + id="g148" + transform="translate(-82.498,36.794)" /></g></g></g></g><g + inkscape:groupmode="layer" + id="layer9" + inkscape:label="bridge" + style="display:inline"><g + transform="matrix(1.25,0,0,-1.25,56.76125,122.78375)" + style="display:inline" + id="g196"><path + d="M 215.52757,3.29033 C 163.03967,10.19096 132.52094,22.82886 92.27628,53.69821" + style="fill:none;stroke:#000000;stroke-width:0.59776002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none" + id="path198" + inkscape:connector-curvature="0" /><g + id="g200" + transform="matrix(-0.79616,0.61072,-0.61072,-0.79616,92.27628,53.69821)"><g + id="g202"><path + d="m 0.91655,0 c -1.14568,0.22913 -2.29138,0.68741 -3.66621,1.4894 1.37483,-1.03113 1.37483,-1.94767 0,-2.9788 1.37483,0.80199 2.52053,1.26027 3.66621,1.4894 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.59776002;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none" + id="path204" + inkscape:connector-curvature="0" /></g></g><g + id="g206"><g + id="g208" + transform="translate(74.916,11.213)"><g + id="g210"><g + id="g212" + transform="translate(-120.325,-95.684)"><text + transform="matrix(1,0,0,-1,120.325,95.684)" + id="text214"><tspan + style="font-size:6.97380018px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:CMTI7;-inkscape-font-specification:CMTI7" + x="0 3.7972341 8.2088604 12.415456 15.493691 22.678101 25.246552 29.453146 32.021599 34.179989 38.591614 41.669849" + y="0" + sodipodi:role="line" + id="tspan216">guardfailure</tspan></text> +<text + transform="matrix(1,0,0,-1,168.772,95.684)" + id="text218"><tspan + style="font-size:6.97380018px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:CMSY7;-inkscape-font-specification:CMSY7" + x="0" + y="0" + id="tspan220">→</tspan></text> +<text + transform="matrix(1,0,0,-1,179.692,95.684)" + id="text222"><tspan + style="font-size:6.97380018px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:CMTI7;-inkscape-font-specification:CMTI7" + x="0 4.2065964 8.4131927" + y="0" + sodipodi:role="line" + id="tspan224">hot</tspan></text> +<g + id="g226" + transform="translate(120.325,95.684)" /></g></g><g + id="g228" + transform="translate(-74.916,-11.213)" /></g></g></g></g><g + inkscape:groupmode="layer" + id="layer10" + inkscape:label="hot_guard" + style="display:inline"><g + transform="matrix(1.25,0,0,-1.25,56.76125,122.78375)" + style="display:inline" + id="g12"><g + id="g14" /><g + id="g16" /></g><g + transform="matrix(1.25,0,0,-1.25,56.76125,122.78375)" + style="display:inline" + id="g230"><g + id="g234" + transform="matrix(0.25931,0.96782,-0.96782,0.25931,233.41267,-26.53523)"><g + id="g236"><path + d="m 0.91655,0 c -1.14568,0.22913 -2.29138,0.68741 -3.66621,1.4894 1.37483,-1.03113 1.37483,-1.94767 0,-2.9788 1.37483,0.80199 2.52053,1.26027 3.66621,1.4894 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.59776002;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none" + id="path238" + inkscape:connector-curvature="0" /></g></g></g><path + transform="matrix(1.25,0,0,-1.25,56.76125,122.78375)" + d="m 247.05948,-24.39468 c 10.55665,-39.39658 -23.62958,-39.39658 -13.64681,-2.14055" + style="fill:none;stroke:#000000;stroke-width:0.59776002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;display:inline" + id="path232" + inkscape:connector-curvature="0" /><g + transform="matrix(1.25,0,0,-1.25,56.76125,122.78375)" + style="display:inline" + id="g240"><g + id="g242" + transform="translate(212.551,-62.403)"><g + id="g244"><g + id="g246" + transform="translate(-257.96,-22.068)"><text + transform="matrix(1,0,0,-1,257.96,22.068)" + id="text248"><tspan + style="font-size:6.97380018px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:CMTI7;-inkscape-font-specification:CMTI7" + x="0 4.2065964 8.4131927 14.163788 17.961021 22.372648 26.579245 29.657478 36.841888 39.410339 43.616936 46.185387 48.343777 51.729557" + y="0" + sodipodi:role="line" + id="tspan250">hotguardfailed</tspan></text> +<g + id="g252" + transform="translate(257.96,22.068)" /></g></g><g + id="g254" + transform="translate(-212.551,62.403)" /></g></g></g></svg> \ No newline at end of file diff --git a/talk/ep2012/jit/talk/talk.rst b/talk/ep2012/jit/talk/talk.rst --- a/talk/ep2012/jit/talk/talk.rst +++ b/talk/ep2012/jit/talk/talk.rst @@ -71,3 +71,53 @@ |pause| * PyPy: JIT, Dynamic, Tracing + + +Assumptions +----------- + +* Pareto Principle (80-20 rule) + + - the 20% of the program accounts for the 80% of the runtime + + - **hot-spots** + +* Fast Path principle + + - optimize only what is necessary + + - fall back for uncommon cases + +|pause| + +* Most of runtime spent in **loops** + +* Always the same code paths (likely) + + +Tracing JIT +----------- + +* Interpret the program as usual + +* Detect **hot** loops + +* Tracing phase + + - **linear** trace + +* Compiling + +* Execute + + - guards to ensure correctness + +* Profit :-) + + +Tracing JIT phases +------------------- + +.. animage:: diagrams/tracing-phases-p*.pdf + :align: center + :scale: 100% _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit