[pypy-svn] r70166 - pypy/extradoc/talk/jitdec09

pedronis at codespeak.net pedronis at codespeak.net
Thu Dec 17 10:08:45 CET 2009


Author: pedronis
Date: Thu Dec 17 10:08:44 2009
New Revision: 70166

Added:
   pypy/extradoc/talk/jitdec09/graph.dot
Modified:
   pypy/extradoc/talk/jitdec09/talk.html
   pypy/extradoc/talk/jitdec09/talk.txt
Log:
links, example dot file

Added: pypy/extradoc/talk/jitdec09/graph.dot
==============================================================================
--- (empty file)
+++ pypy/extradoc/talk/jitdec09/graph.dot	Thu Dec 17 10:08:44 2009
@@ -0,0 +1,32 @@
+digraph _resop {
+clusterrank="local"
+subgraph cluster0 {
+_graph0 [shape="octagon", label="Loop #0\n[p0, p1, p2, p3, i4, p5, p6, p7, p8, p9, p10, p11, p12, i13, p14]", color="black", fillcolor="#f084c2", style="filled", width="0.75"];
+_g0op0 [shape="box", label="debug_merge_point(Const(\"<code object f, file 'pypyjit_demo.py', line 25> #3 LOAD_FAST\"))\ldebug_merge_point(Const(\"<code object f, file 'pypyjit_demo.py', line 25> #6 LOAD_FAST\"))\lLOAD_FAST__AccessDirect_star_1:4   guard_nonnull_class(p12, Const(253), descr=<pypy.jit.metainterp.compile.ResumeGuardDescr object at 0x1c03266c>)\l", color="black", fillcolor="white", style="filled", width="0.75"];
+_g0op3 [shape="box", label="debug_merge_point(Const(\"<code object f, file 'pypyjit_demo.py', line 25> #9 COMPARE_OP\"))\llt__Int_Int:6   i15 = getfield_gc_pure(p12, descr=<Descr \"281, 'i', 'inst_intval'\">)\llt__Int_Int:9   i16 = int_lt(i13, i15)\lObjSpace.newbool:0   guard_true(i16, descr=<pypy.jit.metainterp.compile.ResumeGuardDescr object at 0x1c120eec>)\l", color="black", fillcolor="white", style="filled", width="0.75"];
+_g0op39 [shape="box", label="debug_merge_point(Const(\"<code object g, file 'pypyjit_demo.py', line 22> #0 LOAD_FAST\"))\ldebug_merge_point(Const(\"<code object g, file 'pypyjit_demo.py', line 22> #3 LOAD_FAST\"))\ldebug_merge_point(Const(\"<code object g, file 'pypyjit_demo.py', line 22> #6 BINARY_ADD\"))\ladd__Int_Int:16   i17 = int_add_ovf(i13, Const(1))\ladd__Int_Int:16   guard_no_overflow(, descr=<pypy.jit.metainterp.compile.ResumeGuardDescr object at 0x1c31aeec>)\l", color="black", fillcolor="white", style="filled", width="0.75"];
+_g0op7 [shape="box", label="debug_merge_point(Const(\"<code object f, file 'pypyjit_demo.py', line 25> #12 JUMP_IF_FALSE\"))\ldebug_merge_point(Const(\"<code object f, file 'pypyjit_demo.py', line 25> #15 POP_TOP\"))\ldebug_merge_point(Const(\"<code object f, file 'pypyjit_demo.py', line 25> #16 LOAD_GLOBAL\"))\lLOAD_GLOBAL__AccessDirect_star_1:3   p18 = getfield_gc(p0, descr=<Descr \"757, 'r', 'inst_cache_for_globals'\">)\lLOAD_GLOBAL__AccessDirect_star_1:11   p19 = getarrayitem_gc(p18, Const(0), descr=<Descr \"3, 'r'\">)\lLOAD_GLOBAL__AccessDirect_star_1:14   p20 = getfield_gc(p19, descr=<Descr \"364, 'r', 'inst_w_value'\">)\lLOAD_GLOBAL__AccessDirect_star_1:14   guard_nonnull_class(p20, Const(42), descr=<pypy.jit.metainterp.compile.ResumeGuardDescr object at 0x1c088e6c>)\l", color="black", fillcolor="white", style="filled", width="0.75"];
+_g0op44 [shape="box", label="debug_merge_point(Const(\"<code object g, file 'pypyjit_demo.py', line 22> #7 RETURN_VALUE\"))\lExecutionContext.leave:3   i21 = getfield_gc(p22, descr=<Descr \"347, 'i', 'inst_profilefunc'\">)\lExecutionContext.leave:3   guard_isnull(i21, descr=<pypy.jit.metainterp.compile.ResumeGuardDescr object at 0x1c3207ec>)\l_extract_back_from_frame:33   i23 = oois(p24, p0)\l_extract_back_from_frame:30   guard_true(i23, descr=<pypy.jit.metainterp.compile.ResumeGuardDescr object at 0x1c3246ec>)\lExecutionContext._unchain:29   i25 = int_sub(i26, Const(1))\lExecutionContext._unchain:33   setfield_gc(p22, i25, descr=<Descr \"351, 'i', 'inst_framestackdepth'\">)\lExecutionContext.leave:29   p27 = getfield_gc(p22, descr=<Descr \"348, 'r', 'inst_w_tracefunc'\">)\lExecutionContext.leave:29   guard_isnull(p27, descr=<pypy.jit.metainterp.compile.ResumeGuardDescr object at 0x1c3240ac>)\l", color="black", fillcolor="white", style="filled", width="0.75"];
+_g0op14 [shape="box", label="debug_merge_point(Const(\"<code object f, file 'pypyjit_demo.py', line 25> #19 LOAD_FAST\"))\ldebug_merge_point(Const(\"<code object f, file 'pypyjit_demo.py', line 25> #22 LOAD_CONST\"))\ldebug_merge_point(Const(\"<code object f, file 'pypyjit_demo.py', line 25> #25 LOAD_CONST\"))\ldebug_merge_point(Const(\"<code object f, file 'pypyjit_demo.py', line 25> #28 CALL_FUNCTION\"))\lFunction.getcode:24   p28 = getfield_gc(p20, descr=<Descr \"664, 'r', 'inst_code'\">)\lFunction.getcode:26   guard_value(p28, Const(*pypy.interpreter.pycode.PyCode), descr=<pypy.jit.metainterp.compile.ResumeGuardDescr object at 0x1c07a90c>)\lPyCode.funcrun:3   p29 = getfield_gc(p20, descr=<Descr \"42, 'r', 'inst_w_func_globals'\">)\lPyCode.funcrun:6   p30 = getfield_gc(p20, descr=<Descr \"43, 'r', 'inst_closure'\">)\lPyCode.funcrun:21   p31 = getfield_gc(p20, descr=<Descr \"487, 'r', 'inst_name'\">)\lPyCode.funcrun:24   p32 = getfield_gc(p20, descr=<Descr \"532, 'r', 'inst_defs_w'\">)\lArguments._match_signature:620   i33 = arraylen_gc(p32, descr=<Descr \"3, 'r'\">)\lArguments._match_signature:623   i34 = int_sub(Const(2), i33)\lThreadLocals.getvalue:3   p22 = getfield_gc(Const(*pypy.interpreter.miscutils.ThreadLocals), descr=<Descr \"438, 'r', 'inst__value'\">)\lObjSpace.getexecutioncontext:4   guard_nonnull(p22, descr=<pypy.jit.metainterp.compile.ResumeGuardDescr object at 0x1c30654c>)\lExecutionContext.enter:3   i35 = getfield_gc(p22, descr=<Descr \"351, 'i', 'inst_framestackdepth'\">)\lExecutionContext.enter:6   i36 = getfield_gc(Const(*pypy.module.sys.Module), descr=<Descr \"432, 'i', 'inst_recursionlimit'\">)\lExecutionContext.enter:9   i37 = int_gt(i35, i36)\lExecutionContext.enter:9   guard_false(i37, descr=<pypy.jit.metainterp.compile.ResumeGuardDescr object at 0x1c30670c>)\lExecutionContext._chain:6   i26 = int_add(i35, Const(1))\lExecutionContext._chain:10   setfield_gc(p22, i26, descr=<Descr \"351, 'i', 'inst_framestackdepth'\">)\lExecutionContext._chain:13   p24 = getfield_gc(p22, descr=<Descr \"350, 'r', 'inst_some_frame'\">)\lExecutionContext.gettopframe:3   guard_nonnull(p24, descr=<pypy.jit.metainterp.compile.ResumeGuardDescr object at 0x1c306bac>)\lExecutionContext.gettopframe:16   i38 = oois(p24, p0)\lExecutionContext.gettopframe:13   guard_true(i38, descr=<pypy.jit.metainterp.compile.ResumeGuardDescr object at 0x1c306d0c>)\lExecutionContext.gettopframe:16   guard_isnull(p2, descr=<pypy.jit.metainterp.compile.ResumeGuardDescr object at 0x1c306dac>)\l", color="black", fillcolor="white", style="filled", width="0.75"];
+_g0op53 [shape="box", label="debug_merge_point(Const(\"<code object f, file 'pypyjit_demo.py', line 25> #31 STORE_FAST\"))\ldebug_merge_point(Const(\"<code object f, file 'pypyjit_demo.py', line 25> #34 JUMP_ABSOLUTE\"))\lActionFlag.get:3   i39 = getfield_gc(Const(*pypy.interpreter.executioncontext.ActionFlag), descr=<Descr \"17, 'i', 'inst__flags'\">)\lbytecode_trace__AccessDirect_None:7   i40 = int_and(i39, Const(6291456))\lbytecode_trace__AccessDirect_None:9   i41 = int_is_true(i40)\lbytecode_trace__AccessDirect_None:9   guard_false(i41, descr=<pypy.jit.metainterp.compile.ResumeGuardDescr object at 0x1c06fe2c>)\l", color="black", fillcolor="white", style="filled", width="0.75"];
+_g0op59 [shape="box", label="debug_merge_point(Const(\"<code object f, file 'pypyjit_demo.py', line 25> #3 LOAD_FAST\"))\ljump(p0, p1, Const(* None), p3, Const(3), Const(* None), Const(* None), Const(* None), Const(* None), p9, p10, p11, p12, i17, p14, descr=<pypy.jit.metainterp.history.LoopToken object at 0x1c32dd2c>)\l", color="black", fillcolor="white", style="filled", width="0.75"];
+}
+edge [label="", style="dashed", color="black", dir="forward", weight="5"];
+_graph0 -> _g0op0
+edge [label="", style="dashed", color="black", dir="forward", weight="5"];
+_g0op0 -> _g0op3
+edge [label="", style="dashed", color="black", dir="forward", weight="5"];
+_g0op3 -> _g0op7
+edge [label="", style="dashed", color="black", dir="forward", weight="5"];
+_g0op39 -> _g0op44
+edge [label="", style="dashed", color="black", dir="forward", weight="5"];
+_g0op7 -> _g0op14
+edge [label="", style="dashed", color="black", dir="forward", weight="5"];
+_g0op44 -> _g0op53
+edge [label="", style="dashed", color="black", dir="forward", weight="5"];
+_g0op14 -> _g0op39
+edge [label="", style="dashed", color="black", dir="forward", weight="5"];
+_g0op53 -> _g0op59
+edge [label="", style="dashed", color="black", dir="forward", weight="0"];
+_g0op59 -> _g0op0
+}
\ No newline at end of file

Modified: pypy/extradoc/talk/jitdec09/talk.html
==============================================================================
--- pypy/extradoc/talk/jitdec09/talk.html	(original)
+++ pypy/extradoc/talk/jitdec09/talk.html	Thu Dec 17 10:08:44 2009
@@ -409,6 +409,13 @@
 <li>Intel x86-64</li>
 </ul>
 </div>
+<div class="slide" id="links">
+<h1>Links</h1>
+<p>Status blog
+<a class="reference external" href="http://morepypy.blogspot.com">http://morepypy.blogspot.com</a></p>
+<p>Website
+<a class="reference external" href="http://codespeak.net/pypy">http://codespeak.net/pypy</a></p>
+</div>
 </div>
 </body>
 </html>

Modified: pypy/extradoc/talk/jitdec09/talk.txt
==============================================================================
--- pypy/extradoc/talk/jitdec09/talk.txt	(original)
+++ pypy/extradoc/talk/jitdec09/talk.txt	Thu Dec 17 10:08:44 2009
@@ -72,3 +72,12 @@
 - Make the interpreter more JIT-friendly
 - Interpreter-level algorithmic improvements
 - Intel x86-64
+
+Links
+============
+
+Status blog
+http://morepypy.blogspot.com
+
+Website
+http://codespeak.net/pypy



More information about the Pypy-commit mailing list