[llvm-commits] Code refactoring of MCELFStreamer.cpp and ELFObjectWriter.cpp

Jan Sjodin jan_sjodin at yahoo.com
Mon Feb 28 13:52:53 PST 2011


I got help. Thank you Daniel. Committed the patch, revision 126686.

- Jan




----- Original Message ----
> From: Jan Sjodin <jan_sjodin at yahoo.com>
> To: Rafael Ávila de Espíndola <rafael.espindola at gmail.com>
> Cc: llvm-commits at cs.uiuc.edu
> Sent: Mon, February 28, 2011 12:49:22 PM
> Subject: Re: [llvm-commits] Code refactoring of MCELFStreamer.cpp and 
>ELFObjectWriter.cpp
> 
> I was trying to commit my change, but something is wrong. It was the first time 
>
> I tried to commit anything so something was bound to not work. :) I will try  
>to 
>
> get some help, but if you want to commit it, go ahead.
> 
> -  Jan
> 
> 
> 
> ----- Original Message ----
> > From: Rafael Ávila de  Espíndola <rafael.espindola at gmail.com>
> >  To: Jan Sjodin <jan_sjodin at yahoo.com>
> > Cc: llvm-commits at cs.uiuc.edu
> >  Sent: Sat, February 26, 2011 10:10:16 AM
> > Subject: Re: [llvm-commits]  Code refactoring of MCELFStreamer.cpp and 
> >ELFObjectWriter.cpp
> > 
> > On 11-02-25 8:54 PM, Jan Sjodin wrote:
> > > The JIT  implementation I am  working on (MCJIT which was renamed to  
>JunkJIT)
> > > became a lot nicer when  I decided to inherit  MCELFStreamer and 
> >ELFObjectWriter.
> > > This was needed  to  make the debug information available to gdb since it 
> >expects
> >  > ELF  format. I basically reuse everything, the only thing that differs  is 
>
> >that  I
> > > use a mem_raw_outstream to emit code to  memory and make sure that all  
> >sections
> > > are created  before or during the post layout binding so that  when
> > >  RecordRelocation is called all symbol addresses are known. In  the
> >  > ELFObjectWriter, the code in WriteObject that creates sections is   moved 
>to 
>
> >the
> > > post layout binding, and the code that emits  the object  stays in place. 
>This 
>
> >is
> > > perhaps not very  clean, since it is not  formalized in the interface, but 
>it
> > >  works okay and I only need to  shuffle around the code a little. You  
>could
> > > imagine that if section  creation was restricted by the  interface to only
> > > happenen before/during  post layout, then a  generic JunkJIT could be 
>written 
>
> >for
> > > any object   format. Each object writer would be required to compute 
>offsets 
>
> >for
> > > the  sections. I am currently not aiming to do  this since the MCJIT 
>proposal  
>
> >by
> > > Daniel separates the  Streamer/ObjectWriter from figuring out  relocations 

> and
> > >  external symbols. However, the code refactoring patches  I have/will 
>submit 
>
> >are
> > > fairly benign and enable a JIT (without lazy   compilation) using the MC
> > > framework.
> > 
> > Cool. The  rafactoring patch  is OK.
> > 
> > > - Jan
> > >
> > 
> > Cheers,
> > Rafael
> > 
> 
> _______________________________________________
> llvm-commits mailing  list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 




More information about the llvm-commits mailing list