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

Prem Chintalapudi via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sat Oct 7 11:15:13 PDT 2023


pchintalapudi added a comment.

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

The way I see it, any pipeline state that can't be reused between runs is encapsulated within either the module or the analysis managers, with the analysis managers containing derived state that's expensive to compute about the module. Under that interpretation, the optimization passes are essentially stateless, so there's no reason they can't be run on multiple IR units (and CGSCC/Function/Loop passes must deal with this fact already since there's possibly more than one present per module). I don't know how much penalty there is for requiring passes to clean up after themselves, but I can't imagine that it's a very high cost.


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