<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jul 15, 2014 at 5:12 PM, Reid Kleckner <span dir="ltr"><<a href="mailto:rnk@google.com" target="_blank">rnk@google.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">
<div class="">On Tue, Jul 15, 2014 at 2:00 PM, Gaoyao Xiao <span dir="ltr"><<a href="mailto:windxing2007@gmail.com" target="_blank">windxing2007@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">
<div>On Tue, Jul 15, 2014 at 10:46 AM, John Criswell <span dir="ltr"><<a href="mailto:jtcriswel@gmail.com" target="_blank">jtcriswel@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000"><div>
    <div>On 7/15/14, 9:32 AM, Gaoyao Xiao wrote:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr">Hi,
        <div><br>
        </div>
        <div><br>
        </div>
        <div>I have some IR files which can  be compiled using llc-3.0
          and gcc-4.6.3. I want to instrument these IR files. My
          instrumentation pass is implemented under LLVM-3.5 and some
          data structures in LLVM-3.5 are not available on LLVM-3.0,
          such as <i>AttributeSet</i> in <i>Attribute.h</i>. I tried
          to compile my instrumentation pass under LLVM-3.0 and it
          failed due to missing data types. So I am asking whether it is
          possible to use LLVM-3.5 to instrument the IR files?  If not,
          is there any walk around?</div>
      </div>
    </blockquote>
    <br></div>
    I believe LLVM 3.5 is supposed to be able to read bitcode files from
    LLVM 3.0.  It is possible, though, that bugs may prevent this from
    working.  If it doesn't work, you should probably file a bug report
    with (if possible) a reduced test case.<br>
    <br>
    If reading the old bitcode files directly into opt/clang/whatever
    doesn't work, try disassembling the bitcode into an assembly file
    with llvm-dis from LLVM 3.0 and re-assembling the output using
    llvm-as from LLVM 3.5:<br></div></blockquote></div><div>opt and clang can read the bitcode but the produced binary cannot run.<br></div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">


<div bgcolor="#FFFFFF" text="#000000">
    <br>
    llvm-dis-3.0 -f -o - file.bc | llvm-as-3.5 -f -o newfile.bc<br></div></blockquote></div><div>I tried this and the newfile.bc is incorrect. newfile.bc can be compiled to binary but cannot run.<br></div></div></div></div>

</blockquote><div><br></div></div><div>This would be good to debug.  There isn't enough info here to know what went wrong.</div></div></div></div></blockquote><div>The only error from the compiled bzip2 binary is:</div>
<div><i>Could not translate address: 0xa0048000</i></div><div><br></div><div> I tried several other spec2006 programs and the error is similar with different addresses. Since my instrumentation is quite simple, I am thinking rewrite it for llvm-3.0 and that might be quicker. Do you have any hint based on the short error message?</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">
<div class=""><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div></div><div>I also tried to this: 
    <br><i><div>llvm-dis-3.0 -f -o - file.bc | llvm-as-3.5 -f -o newfile.bc<br></div>llvm-dis-3.5 -f -o newfile.bc | llvm-as-3.0 -o newnewfile.bc</i></div></div></div></div></blockquote><div><br></div></div><div>This obviously won't work.  We will generate newer LLVM assembly than the old llvm-as can read.</div>

</div></div></div>
</blockquote></div><br></div></div>