[PATCH] D137149: Use PassGate from LLVMContext if any otherwise global one

Arthur Eubanks via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 9 09:31:18 PDT 2023


aeubanks added a comment.

In D137149#4653381 <https://reviews.llvm.org/D137149#4653381>, @vchuravy wrote:

> In D137149#4653308 <https://reviews.llvm.org/D137149#4653308>, @aeubanks wrote:
>
>> we don't currently support reusing a pipeline so I'm surprised that you're able to share/reuse pipelines without running into any issues
>
> In addition to @pchintalapudi's comment. Reuse of pipelines is something that we (JuliaLang) had come to expect from old PM. This is why opt had a `-run-twice` option to help flush
> out bugs that arose out of the idea that passes would only be used once. @loladiro might remember those discussions.
>
> So when we ported Julia to NewPM I didn't think twice and @pchintalapudi implemented our NewPM usage such that only the AnalysisManager
> would be created fresh.

Passes can store state that might break between runs (especially module passes since they typically only run once). I'm not saying it's impossible to reuse a pipeline, just that it's not tested, e.g. `-run-twice` isn't hooked up to the new PM. There was a discussion about this before somewhere, can't remember where. We'd need a lot more testing before we can claim to support reusing pipelines.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D137149/new/

https://reviews.llvm.org/D137149



More information about the cfe-commits mailing list