Here's the count-to-a-million test code in Scheme/Irken:
(let loop ((n 1000000)) (if (zero? n) "done" (loop (- n 1))))
Here's the C output:
FUN_loop_8: r0 = varref (0,0); if PXLL_IS_TRUE(PXLL_TEST(unbox(r0)==0)) { r0 = (object*) &constructed_0; PXLL_RETURN(0); } else { r0 = varref (0,0); r1 = (object *) 3; r0 = box(unbox(r0)-unbox(r1)); lenv[2] = r0; goto FUN_loop_8; } PXLL_RETURN(0); L1: r1 = allocate (TC_CLOSURE, 2); r1[1] = &&FUN_loop_8; r1[2] = lenv; r0[2] = r1; r0 = allocate (TC_TUPLE, 2); r1 = (object *) 2000001; r0[2] = r1; r1 = top[2]; r0[1] = r1[2]; lenv = r0; goto FUN_loop_8;
And the relevant LLVM IR:
"<bb 12>": ; preds = %"<bb 17>", %"<bb 13>", %"<bb 24>" %D.5560_160 = phi i8* [ inttoptr (i64 2000001 to i8*), %"<bb 24>" ], [ %D.5560_160, %"<bb 13>" ], [ %4, %"<bb 17>" ] ; <i8*> [#uses=3] %3 = icmp ult i8* %D.5560_160, inttoptr (i64 2 to i8*) ; <i1> [#uses=1] br i1 %3, label %"<bb 13>", label %"<bb 17>" "<bb 13>": ; preds = %"<bb 12>" %D.4871_48 = load i8** %2, align 8 ; <i8*> [#uses=1] indirectbr i8* %D.4871_48, [label %"<bb 12>", label %Lreturn] "<bb 17>": ; preds = %"<bb 12>" %n.85_162 = ptrtoint i8* %D.5560_160 to i64 ; <i64> [#uses=1] %D.5572_16323 = add i64 %n.85_162, -2 ; <i64> [#uses=1] %D.5579_167 = or i64 %D.5572_16323, 1 ; <i64> [#uses=1] %4 = inttoptr i64 %D.5579_167 to i8* ; <i8*> [#uses=2] store i8* %4, i8** %11, align 8 br label %"<bb 12>"
Although teenage playing is illegal the law|is unlawful} in most countries, the incidence of downside playing in adolescents is higher than that seen in adults . IOG websites rely on advertising to draw customers, typically using a “recommendation” system during which new 바카라 members are invited by original members. However, as this method cannot usher in a large number of|numerous|a lot of} customers and illegal services cannot be marketed publicly, IOG websites additionally use smartphone functions to send out text messages.
ReplyDelete