Backward compatibility with llvm bitcode files

Hello All,

Because of some requirements, I have to use tools (like llvm-dis, opt, clang) from the latest llvm version on *.bc files obtained from a previous version of llvm (version 3.5) and am able to do that without any visible problems. Is this backward compatibility guaranteed or are there any cases/constructs of llvm 3.5 which are not supported by the latest tools?

Please help.

Hi Sandeep,

Because of some requirements, I have to use tools (like llvm-dis, opt,
clang) from the latest llvm version on *.bc files obtained from a previous
version of llvm (version 3.5) and am able to do that without any visible
problems. Is this backward compatibility guaranteed or are there any
cases/constructs of llvm 3.5 which are not supported by the latest tools?

This should be fine. We make sure newer LLVM tools can read older
files (currently anything produced by 3.x) and produce correct code
from them. We're allowed to drop metadata that only helps performance,
but anything correctness-related we have to convert to the newer style
when reading.

There are no real plans to change this (even 4.x will be able to read
3.x), but we have discussed a hypothetical compatibility break in the
future -- we'd give warning (at least a release) if that was going to
happen though.

Tim.