[LLVMdev] Intro to the MC Project

Daniel Dunbar daniel_dunbar at apple.com
Fri Apr 16 13:58:10 PDT 2010


I do have an opinion, but don't have enough time to comment in much depth. The approximate approach I had in mind sounds like what you describe, though, the JITObjectWriter is the core piece, the other pieces probably fall into place as it becomes obvious if they are needed.

It should be pretty straightforward to bring up something which works for running code with no external symbols, if you want to start this, I would recommend just trying to write the JITObjectWriter (and matching MCJITStreamer), and see where it goes. You can clone most of the Mach-O streamer for use by the JITStreamer, and gut the obviously unneeded parts. Once we have something working, we can factor out a common MCObjectStreamer class. I have been meaning to do this, but won't have time for a couple weeks I suspect.

 - Daniel

On Apr 15, 2010, at 1:40 PM, Chris Lattner wrote:

> 
> On Apr 11, 2010, at 10:35 AM, Olivier Meurant wrote:
> 
>> Hi Chris,
>> 
>> Thanks for taking time to communicate on this.
> 
> Sorry I missed responding to this email sooner.
> 
>> In your open points, you speak about upgrading the JIT code path. If I want to take a look (or at least try...) on it, what would be the "roadmap" ?
>> 
>> I assume, a MCJITStreamer is needed.
>> And probably a JITObjectWriter (inherits from MCObjectWriter) and an associated TargetAsmBackend specific to the JIT (JITX86AsmBackend) ?
>> 
>> What would be the chaining of calls ? The JITObjectWriter::WriteObject is called via the AsmPrinter::doFinalization. But how the AsmPrinter will be created ?
> 
> I'm not sure the best path forward on this, Daniel may have an opinion.  The two options are to implement a new mcstreamer, or to implement a new ".o file" in the assembler backend.  Of the two, I would think the later option is best, but I'm not really sure what it would entail.
> 
>> What was on your mind on this subject ? Anyone has already begin to work on this ?
> 
> No one is working on it!  It would be great for this to start,
> 
> -Chris





More information about the llvm-dev mailing list