llvm 3.7 and llvm3.1 bitcode compatibility problem

Hi, all

We are using both llvm 3.1 and llvm 3.7 in research. For our purpose, we need make bitcode generated by 3.7 to be compatible to llvm 3.1’s JIT for interpretation. However, we found they are incompatible. After disassembling the bitcode (generated by 3.7), we found there are more type information, comments, and other meta data compared to the bitcode generated by llvm 3.1.

So, my question is: how to make llvm3.7 generated bitcode acceptable to llvm 3.1’s JIT ? If we make modifications inside llvm 3.7, how much engineering effort would it be ?

Any advice and comments are welcomed.

Thanks a lot.

Best,
Tao

Hi,

As you may already know, our policy is to preserve backwards bitcode compatibility
in point releases. We make no guarantees about forwards-compatibility:

  http://llvm.org/docs/DeveloperPolicy.html#ir-backwards-compatibility

I'm not sure how much work it will be to port the 3.1 bitcode writer to 3.7. I
suspect that this will take at _least_ a few days worth of effort, and you may only
have marginal success at that :(.

If there's any way for you to avoid this, I'd recommend avoiding it.

best,
vedant