require("jit.dump").on("six", "t1.dlog")--require("jit.v").on("t1.log")-----local function f1(v) if v == 0 then return 0 end f1(v - 1)endfor i = 1, 40 do f1(i)end
[TRACE 1 t1.lua:3 up-recursion][TRACE --- (1/3) t1.lua:4 -- down-recursion, restarting at t1.lua:6][TRACE 2 t1.lua:6 down-recursion]
---- TRACE 1 start t1.lua:3---- TRACE 1 IR.... SNAP #0 [ ---- ---- ]0001 > num SLOAD #1 T.... SNAP #1 [ ---- ---- ]0002 > num NE 0001 +0.... SNAP #2 [ ---- ---- ]0003 fun SLOAD #0 R0004 > fun EQ 0003 t1.lua:30005 num SUB 0001 +1.... SNAP #3 [ t1.lua:3|---- t1.lua:3|---- ]0006 > num NE 0005 +00007 num SUB 0005 +1.... SNAP #4 [ t1.lua:3|---- t1.lua:3|0005 t1.lua:3|---- ]0008 > num NE 0007 +00009 num SUB 0007 +1.... SNAP #5 [ t1.lua:3|---- t1.lua:3|0005 t1.lua:3|0007 t1.lua:3|0009 ]---- TRACE 1 stop -> up-recursion---- TRACE 1 exit 3---- TRACE 1 exit 1---- TRACE 1 exit 3---- TRACE 1 exit 4---- TRACE 1 exit 1---- TRACE 1 exit 3---- TRACE 1 exit 4---- TRACE 1 exit 1---- TRACE 1 exit 3---- TRACE 1 exit 4---- TRACE 1 exit 1---- TRACE 1 exit 3---- TRACE 1 exit 4---- TRACE 1 exit 1---- TRACE 1 exit 3---- TRACE 1 exit 4---- TRACE 1 exit 1---- TRACE 1 exit 3---- TRACE 1 exit 4---- TRACE 1 exit 1---- TRACE 1 exit 3---- TRACE 1 exit 4---- TRACE 1 exit 1---- TRACE 1 exit 3---- TRACE 1 exit 4---- TRACE 1 exit 1---- TRACE 1 exit 3---- TRACE 2 start 1/3 t1.lua:4---- TRACE 2 abort t1.lua:6 -- down-recursion, restarting---- TRACE 2 start t1.lua:6---- TRACE 2 IR.... SNAP #0 [ ---- ].... SNAP #1 [ ---- ]0002 > p32 RETF proto: 0x109482c8 [0x10948328].... SNAP #2 [ ---- ---- ]0003 > p32 RETF proto: 0x109482c8 [0x10948328].... SNAP #3 [ ---- ---- ]0004 > p32 RETF proto: 0x109482c8 [0x10948328].... SNAP #4 [ ---- ]---- TRACE 2 stop -> down-recursion---- TRACE 2 exit 3