> Hi Cliff, > It was great meeting you at the JVM Summit - I learned a lot, thanks! > I know the test is over, but wanted to get you a version of your simple test > that demonstrates Clojure's ability to get to the metal on primitive numerics > when given type hints. > Attached is a new clojure.jar and a simple.clj > Run with: > java -server -cp clojure.jar clojure.lang.Script simple.clj > Regards, > Rich
Hi Rich - nice meeting you too - and Clojure is very impressive. Here is 1 copy of the inner loop HotSpot generates on Azul, the full thing is unrolled 32 times. R6 - the original 'i' at the start of all 32 copies R0 - 'sum' for iteration#2 R5 - large masking constant 0x3FFFFFFF R1 - 'sum' for iteration#3 0.07% 31 0x131870c0 add4 r9, r6, 2 // r9 = i+2 - this is the 2nd unrolled body 0.10% 45 0x131870c4 xor r2, r0, r9 // r2 = sum ^ (i+2) 0.09% 41 0x131870c8 beq r9, 0, 0x01318750c // div-by-zero check 0.15% 66 0x131870cc div4 r7, r2, r9 // r7 = (sum^(i+2)/(i+2) 2.33% 1,028 0x131870d0 add4 r3, r7, r0 // r3 = sum + (sum^i)/i 0.07% 30 0x131870d4 xor r2, r3, r0 // ??? - guess overflow check for prior sum 0.05% 22 0x131870d8 blt0 r2, 0x0131874f8 // ??? - guess overflow check for prior sum 0.07% 30 0x131870dc and r1, r3, r5 // sum = (....) & 0x3FFFFFFF Cliff --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---