We used to inline the lookup calls such that the runtime had "known"
access offsets when it was shipped. With the new static library build it
doesn't as the lookup is an indirection we cannot look through. This
should help us optimize the code better until we can do LTO for the
runtime again.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
LG assuming it works.
This is an unfortunate side-effect of moving to our new build system. With ordinary host LTO we get a single LLVM IR output, making it trivial to do some extra bitcode linking. The problem with the device LTO is that we need to wrap the device IR in a binary format so we know what it is, and then wrap that in a host object file. So to do extra linking we'd need to extract this and then put them back in. The two solutions that could work for this is to support relocatable linking via the linker wrapper, or do all the extraction and linking manually.