Hi all,<br><br>I have attached the complete test suite. it has different directories for gcc, llvm-gcc , clang and lli-clang. Source code , makefile and run script (contains number of times the program should execute) for each case are available inside each directory.<br>
<br><b><br>FOLLOWING ARE THE STATISTICS WHILE USING LLI FOR SINGLE ITERATION</b><br><br>===-------------------------------------------------------------------------===<br> ... Statistics Collected ...<br>
===-------------------------------------------------------------------------===<br><br> 58 dagcombine - Number of dag nodes combined<br>16384 jit - Number of bytes of global vars initialized<br> 357 jit - Number of bytes of machine code compiled<br>
2 jit - Number of global vars initialized<br> 27 jit - Number of relocations applied<br> 3 jit - Number of slabs of memory allocated by the JIT<br> 105 liveintervals - Number of original intervals<br>
21 loop-reduce - Number of IV uses strength reduced<br> 4 loop-reduce - Number of PHIs inserted<br> 2 loop-reduce - Number of loop terminating conds optimized<br> 1 machine-licm - Number of machine instructions hoisted out of loops<br>
4 phielim - Number of atomic phis lowered<br> 2 regalloc - Number of copies coalesced<br> 27 regalloc - Number of iterations performed<br> 3 regcoalescing - Number of cross class joins performed<br>
44 regcoalescing - Number of identity moves eliminated after coalescing<br> 1 regcoalescing - Number of instructions re-materialized<br> 40 regcoalescing - Number of interval joins performed<br> 2 scalar-evolution - Number of loops with predictable loop counts<br>
4 twoaddrinstr - Number of instructions aggressively commuted<br> 6 twoaddrinstr - Number of instructions commuted to coalesce<br> 3 twoaddrinstr - Number of instructions re-materialized<br> 23 twoaddrinstr - Number of two-address instructions<br>
2 virtregrewriter - Number of copies elided<br> 1 x86-codegen - Number of floating point instructions<br> 84 x86-emitter - Number of machine instructions emitted<br><br><br>real 0m0.043s<br>user 0m0.027s<br>
sys 0m0.010s<br><br><br><b>FOLLOWING ARE THE STATISTICS WHILE FORCING LLI TO USE INTERPRETER FOR SINGLE ITERATION</b> <br><br>===-------------------------------------------------------------------------===<br> ... Statistics Collected ...<br>
===-------------------------------------------------------------------------===<br><br>147495 interpreter - Number of dynamic instructions executed<br> 17735 jit - Number of bytes of global vars initialized<br> 49 jit - Number of global vars initialized<br>
<br><br>real 0m0.083s<br>user 0m0.078s<br>sys 0m0.003s<br><br><br>Even for single iteration the time take for execution is pretty high when compared to gcc, llvm-gcc and clang. <br>What should be the expected behavior while using lli? As per my
understanding as lli does runtime optimizations it should be faster
than clang and llvm-gcc. am i right? <br>
<br><b>My machine details are</b><br><i>Linux localhost.localdomain 2.6.25-14.fc9.i686 #1 SMP Thu May 1 06:28:41 EDT 2008 i686 i686 i386 GNU/Linux</i><br><i>Memory : 1GB DDR2<br>CPU: Intel Pentium Dual-core @ 2.00 GHz</i><br>
<br><br>Please let me know how can i proceed with this test. <br><br><br><br>Thanks and Regards,<br clear="all">Prasanth J<br><br><br>
<br><br><div class="gmail_quote">On Mon, Nov 16, 2009 at 1:06 AM, Eric Christopher <span dir="ltr"><<a href="mailto:echristo@apple.com">echristo@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im"><br>
On Nov 14, 2009, at 11:52 PM, Prasanth J wrote:<br>
<br>
> step 4:<br>
> running monolith.bc for 10000 iterations using lli tool and measured the time.<br>
<br>
</div>How are you doing this?<br>
<font color="#888888"><br>
-eric</font></blockquote></div><br>