<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi,<div><br><div><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;">• <b>Emit LLVM assembly from your compiler's native language.</b><br><i>for:</i> very straightforward to get started<br><i>against:</i> the .ll parser is slower than the bitcode reader when interfacing to the middle end<br><i>against:</i> you'll have to re-engineer the LLVM IR object model and asm writer in your language<br><i>against:</i> it may be harder to track changes to the IR<br></blockquote></div></blockquote></div><br></div><div>One more problem with this: in order to emit float constants you have to convert them to hexadecimal notation which I found nontrivial. My pet language is still lacking proper float support because of this. I'm not aware whether there are more pitfalls like this lurking around. (Time to finally move to the ocaml bindings.. :))</div><div><br class="webkit-block-placeholder"></div><div>HTH,</div><div>Jan</div><div><br class="webkit-block-placeholder"></div></body></html>