Hi Chris, Thanks for taking time to communicate on this. 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 ? What was on your mind on this subject ? Anyone has already begin to work on this ? Olivier. On Sat, Apr 10, 2010 at 10:56 PM, Rick Mann <rmann at latencyzero.com> wrote:> > On Apr 9, 2010, at 23:32:12, Chris Lattner wrote: > > > Several people have asked what the MC project is all about, and it is now > getting to a point where it is pretty interesting and there are lots of > potential projects for people who are interested. I wrote a big post about > what it is here: > > http://blog.llvm.org/2010/04/intro-to-llvm-mc-project.html > > Thanks for the post, Chris. It definitely helped to fill in some gaps in > what I've learned so far, and I wasn't aware of the blog before. It's good > to read some documentation that I know is current! > > -- > Rick > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100411/89b29e12/attachment.html>
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
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