<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jun 26, 2009, at 3:11 PM, Anna Zaks wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">
<div>
<!-- Converted from text/plain format --><p><font size="2">Hi Evan,<br>
<br>
Sorry for the delayed reply. We've compiled llvm on Linux with only the x86 target, which produced an lli executable that's about 5.5MB. The LLVMX86CodeGen.o alone is 1.7MB. We've configured with<br>
<br>
--disable-assertions --enable-optimized --enable-targets=x86 --disable-debug-runtime --enable-bindings=none --disable-ltdl-install --disable-shared --enable-static<br>
<br>
Are there any tips on making them even smaller? It seems that the ARM backend would be smaller but I am not sure if we could get it under 2MB. Also I guess, the interpreter could be removed, but it is quite small (145KB).<br></font></p></div></blockquote><div><br></div>Size of lli is a poor indicator for dynamic memory footprint. You really have to measure in a JIT environment. That said, there are definitely possibilities for reducing the size. But I don't think there is anyone actively working on it.</div><div><br></div><div>Evan<br><blockquote type="cite"><div><p><font size="2">
<br>
Thank you,<br>
Anna.<br>
<br>
<br>
> Hi,<br>
><br>
> I am researching a possibility of running LLVM components (such as <br>
> JIT) on an embedded device, where the memory footprint and RAM usage <br>
> are the main concerns. So I was wondering if anyone could share <br>
> their experience with running LLVM on an embedded device. What is <br>
> the approximate code footprint that we are looking at? For example, <br>
> on an x86 with a minimum set of optimizations and with only the x86 <br>
> backend, it seems difficult to get the LLVM JIT occupy less than <br>
> 5MB. Is there any performance and memory usage data available?<br>
<br>
That seems too high. I would think it's more in the 2MB range. How did <br>
you come about that figure? x86 instruction selector itself is quite <br>
large due to the complex selection patterns. I would expect ARM's <br>
footprint to be smaller.<br>
<br>
There are ways to reduce memory foot print further. But it will <br>
require someone to drive the effort. One of the (very rough) idea is <br>
to switch to a table driven instruction selector.<br>
<br>
Evan<br>
<br>
><br>
> Thank you!<br>
> Anna.<br>
><br>
<br>
</font>
</p>

</div>
_______________________________________________<br>LLVM Developers mailing list<br><a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br></blockquote></div><br></body></html>