[PATCH] D143229: [AutoUpgrade] Add flag to disable auto-upgrade
Nikita Popov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 6 09:19:32 PST 2023
nikic added a comment.
In D143229#4172040 <https://reviews.llvm.org/D143229#4172040>, @aeubanks wrote:
> In D143229#4169077 <https://reviews.llvm.org/D143229#4169077>, @nikic wrote:
>
>> In D143229#4168667 <https://reviews.llvm.org/D143229#4168667>, @aeubanks wrote:
>>
>>> In D143229#4168182 <https://reviews.llvm.org/D143229#4168182>, @nikic wrote:
>>>
>>>>> I may be wrong, but I believe rust does inter-crate (Thin)LTO, all bitcode produced from the same rustc frontend, which could also use this.
>>>>
>>>> Conceptually yes, we don't need verification for compiler-driven LTO (which is the default). We wouldn't be able to use it as implemented though, because we do need to auto-upgrade intrinsics in the initial IR, while this effectively "breaks" UpgradeCallsToIntrinsic().
>>>
>>> Why does rust need to auto upgrade intrinsics during in the post link LTO step?
>>
>> Rust upgrades intrinsics after initial IR generation (i.e. before the pre-link pipeline). The pre-link and post-link pipeline are part of the same process, so they can't use different `opt` options.
>
> Then the next question is, why does Rust need to upgrade intrinsics after initial IR generation, rather than constructing initially up-to-date intrinsic calls?
`std::arch` defines bindings to LLVM target intrinsics, and these need to work across multiple supported LLVM versions.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D143229/new/
https://reviews.llvm.org/D143229
More information about the llvm-commits
mailing list