[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