Pitch: Support LTO for Swift

I'm super excited to see this! We're very interested in being able to ship our large iOS app with LTO at some point. Is the core goal of this pitch to improve the UX for LTO features that already exist, or is there also work planned on lower level parts of Swift's LTO support? One thing that we saw recently for example is that -experimental-hermetic-seal-at-link hasn't been well tested with ObjC interop in general (source)

As a performance data point, today our iOS application takes ~1.5 hours to link when testing with -lto=llvm-full on a M1 Max MBP with 64gbs of ram. The resulting binary crashes at runtime though, so I'm curious how many show-stopping bugs are out there.

Also worth noting that as a testbed bazel supports building with today's LTO support by emitting bitcode already.

4 Likes