<br><br><div class="gmail_quote">On Fri, Aug 3, 2012 at 2:12 PM, Stack Pointer <span dir="ltr"><<a href="mailto:stackpointer@me.com" target="_blank">stackpointer@me.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I want to understand the details of how llvm is used as the backend in mono. I've been going through the code in mono/mono/mini and here's what I understand:<br>
<br>
1. I need mono's llvm branch from <a href="http://github.com/mono/llvm/mono" target="_blank">github.com/mono/llvm/mono</a> for this to work. The llvm that comes with say, OSX 10.8 won't work?<br></blockquote><div>
<br></div><div>Yes, you need llvm from our branch. This is required as llvm usually requires you to customize it for your particular usage.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
2. llvm only really works in aot mode. The code generated from llvm can't be pushed back in the code cache for dynamic jit. Is this limitation from mono or llvm?<br></blockquote><div><br></div><div>You can use llvm in JIT mode. The limitation is its slowness.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
What data structure in mono/mono/mini represents the code cache? If I wanted to push something to that and test how it behaves?<br></blockquote><div><br></div><div>The code cache is implemented in mono/metadata/domain.c, look for mono_jit_info_table_find.</div>
<div><br></div><div><br></div></div>