[LLVMdev] Does LLVM 3.5 works with IR from LLVM 3.0?

Reid Kleckner rnk at google.com
Tue Jul 15 14:12:35 PDT 2014


On Tue, Jul 15, 2014 at 2:00 PM, Gaoyao Xiao <windxing2007 at gmail.com> wrote:

> On Tue, Jul 15, 2014 at 10:46 AM, John Criswell <jtcriswel at gmail.com>
> wrote:
>
>>  On 7/15/14, 9:32 AM, Gaoyao Xiao wrote:
>>
>> Hi,
>>
>>
>>  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 *AttributeSet* in *Attribute.h*. 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?
>>
>>
>> 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.
>>
>> 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:
>>
> opt and clang can read the bitcode but the produced binary cannot run.
>
>>
>> llvm-dis-3.0 -f -o - file.bc | llvm-as-3.5 -f -o newfile.bc
>>
> I tried this and the newfile.bc is incorrect. newfile.bc can be compiled
> to binary but cannot run.
>

This would be good to debug.  There isn't enough info here to know what
went wrong.


> I also tried to this:
>
> *llvm-dis-3.0 -f -o - file.bc | llvm-as-3.5 -f -o newfile.bcllvm-dis-3.5
> -f -o newfile.bc | llvm-as-3.0 -o newnewfile.bc*
>

This obviously won't work.  We will generate newer LLVM assembly than the
old llvm-as can read.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140715/5c1a31a3/attachment.html>


More information about the llvm-dev mailing list