{"head":"42e025b9bd910c572ed4f183b63e59836ffa8e69","size":1,"push_id":43972953,"shas":[["42e025b9bd910c572ed4f183b63e59836ffa8e69","eaab1934d88d3b5322163f4bd192f2a09b6eab87@gmail.com","  Enabled Tail Recursion Analysis:\n\n\t(let ((x (random))\n\t\t  (main (lambda (y) (begin (display \"PIU \") (putint x) (newline) (if (> y 0) (main (- y 1)) 0 ) ) ;;\n\t\t\t\t\t\t\t))\n\t\t  )\n\n\t\t (main 10)\n\t)\n\n\tfun_main_8_8 (2) slotnum:1\n\tL6:\n\t\tspill R0 0\n\t\tsconst \"PIU \" R3\n\t\tcall-foreign L9 display R3 ; -> R4\n\tL9:\n\t\tcall-foreign L10 putint R2 ; void\n\tL10:\n\t\tcall-foreign L11 newline  ; -> R6\n\tL11:\n\t\ticonst 0 R7\n\t\tcall-foreign L13 gt R1, R7 ; -> R8\n\tL13:\n\t\tbranch-true R8 L14\n\t\ticonst 0 R9\n\t\tbranch  L16\n\tL14:\n\t\ticonst 1 R10\n\t\tcall-foreign L18 minus R1, R10 ; -> R11\n\tL18:\n\t\tunspill 0 R0\n\t\tmove R11 R1\n\t\tbranch  L6  ; <<< TAIL RECURSION\n\tL16:\n\t\tmove R9 R1\n\t\tunspill 0 R0\n\t\treturn\n\nThe difference:\n\n\t-fun_main_8_8 (2) slotnum:2\n\t+fun_main_8_8 (2) slotnum:1\n\t L6:\n\t\t spill R0 0\n\t\t sconst \"PIU \" R3\n\t@@ -18,12 +18,9 @@\n\t\t iconst 1 R10\n\t\t call-foreign L18 minus R1, R10 ; -> R11\n\t L18:\n\t-    spill R9 1\n\t-    call-local L23 fun_main_8_8 R11, R2 ; -> R12\n\t-L23:\n\t-    move R1 R12\n\t-    unspill 1 R9\n\t-    move R12 R9\n\t+    unspill 0 R0\n\t+    move R11 R1\n\t+    branch  L6\n\t L16:\n\t\t move R9 R1\n\t\t unspill 0 R0","Dmitry Zuikov"]],"ref":"refs/heads/master"}