Hi, I want to use LLVM as replacement code generator for an existing self hosting compiler. I hope to replace the existing BURS code generator with LLVM in order to take advantage of LLVM's JIT, optimizations and wider range of targets. I'm planning on ditching my existing IR completely and using my language's native call mechanism to call the LLVM C bindings. I've got a couple of questions I'd be grateful if anyone can answer: My language in general and the compiler in particular rely heavily on Boehm GC. I'm assuming that LLVM is OK with being linked into a process that's using libgc? I really don't want to write a garbage collector! My existing IR has no structured type information. All structures are layed out exactly for the target machine before intermediate code is generated and array and intermediate code for class/struct field accesses are all pointer operations. I'm assuming this approach will work with LLVM provided sizes match the target machine and I cast everything correctly? -- James -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100105/b78e5a7a/attachment.html>
2010/1/5 James Williams <junk at giantblob.com>> Hi, > > I want to use LLVM as replacement code generator for an existing self > hosting compiler. I hope to replace the existing BURS code generator with > LLVM in order to take advantage of LLVM's JIT, optimizations and wider range > of targets. I'm planning on ditching my existing IR completely and using my > language's native call mechanism to call the LLVM C bindings. > > I've got a couple of questions I'd be grateful if anyone can answer: > > My language in general and the compiler in particular rely heavily on Boehm > GC. I'm assuming that LLVM is OK with being linked into a process that's > using libgc? I really don't want to write a garbage collector! > > My existing IR has no structured type information. All structures are layed > out exactly for the target machine before intermediate code is generated and > array and intermediate code for class/struct field accesses are all pointer > operations. I'm assuming this approach will work with LLVM provided sizes > match the target machine and I cast everything correctly? >Oops, mistyped this. I intended to say: My existing IR has no structured type information. All structures are layed out exactly for the target machine before intermediate code is generated *and intermediate code for array and class/struct field *accesses are all pointer operations. I'm assuming this approach will work with LLVM provided sizes match the target machine and I cast everything correctly?> > -- James > > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100105/107fcc9d/attachment.html>
Hi, I've got a couple of questions I'd be grateful if anyone can answer:> > My language in general and the compiler in particular rely heavily on Boehm > GC. I'm assuming that LLVM is OK with being linked into a process that's > using libgc? I really don't want to write a garbage collector! > >mono uses llvm and Boehm GC, and the two seems to coexist fine. Zoltan -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100106/07e55cb7/attachment.html>