Robinson, Paul
2014-Nov-04 15:04 UTC
[LLVMdev] Using the unused "version" field in the bitcode wrapper (redux)
> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Sean Silva > > You haven't established that you really need this. AFAIK Apple's linker > doesn't need this version information and they have shipped LTO for a > while now.Does Apple support library/middleware providers shipping bitcode instead of object code? That's the most nervous-making scenario for compatibility. LTO by itself needs bitcode only as an ephemeral stage between source and object; it's supporting bitcode as a long-lived on-disk format that keeps us awake at night. I acknowledge the compatibility promise but I've been whacked upside the head too often by QA over the years to take an unverified promise at face value. I would like worked examples and industry experience reports. --paulr
Chris Lattner
2014-Nov-04 22:57 UTC
[LLVMdev] Using the unused "version" field in the bitcode wrapper (redux)
On Nov 4, 2014, at 7:04 AM, Robinson, Paul <Paul_Robinson at playstation.sony.com> wrote:>> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Sean Silva >> >> You haven't established that you really need this. AFAIK Apple's linker >> doesn't need this version information and they have shipped LTO for a >> while now. > > Does Apple support library/middleware providers shipping bitcode instead > of object code?No. -Chris
Sean Silva
2014-Nov-05 01:30 UTC
[LLVMdev] Using the unused "version" field in the bitcode wrapper (redux)
On Tue, Nov 4, 2014 at 2:57 PM, Chris Lattner <clattner at apple.com> wrote:> > On Nov 4, 2014, at 7:04 AM, Robinson, Paul < > Paul_Robinson at playstation.sony.com> wrote: > > >> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] > On Behalf Of Sean Silva > >> > >> You haven't established that you really need this. AFAIK Apple's linker > >> doesn't need this version information and they have shipped LTO for a > >> while now. > > > > Does Apple support library/middleware providers shipping bitcode instead > > of object code? > > No. >Are there ever any plans to do so? (this question also goes out to every other vendor that is shipping an LTO toolchain or plans to. Chad?) I'm just trying to figure out how much of a Sony-specific issue this is. Our customers are very performance-hungry and so we would like to provide the option to middleware vendors (e.g. a physics library). If there is a strong general desire in the community to not support this use case, we will want to factor this into our internal decisions. -- Sean Silva> > -Chris > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20141104/e6f98bf9/attachment.html>
Herbie Robinson
2014-Nov-06 17:04 UTC
[LLVMdev] Using the unused "version" field in the bitcode wrapper (redux)
On 11/4/14 5:57 PM, Chris Lattner wrote:> On Nov 4, 2014, at 7:04 AM, Robinson, Paul <Paul_Robinson at playstation.sony.com> wrote: > >>> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Sean Silva >>> >>> You haven't established that you really need this. AFAIK Apple's linker >>> doesn't need this version information and they have shipped LTO for a >>> while now. >> Does Apple support library/middleware providers shipping bitcode instead >> of object code? > No. > > -Chris >It would be practically impossible without some versioning scheme to ensure the old toolchains reject newer (as in new enough to be incompatible) bitcode. Also, the mechanism would have to be pretty obvious; so, things like installers can check easily.
Possibly Parallel Threads
- [LLVMdev] Using the unused "version" field in the bitcode wrapper (redux)
- [LLVMdev] Using the unused "version" field in the bitcode wrapper (redux)
- [LLVMdev] Using the unused "version" field in the bitcode wrapper (redux)
- [LLVMdev] Using the unused "version" field in the bitcode wrapper (redux)
- [LLVMdev] Using the unused "version" field in the bitcode wrapper (redux)