51 bool AreFunctionAnalysesPreserved =
62 if (
auto *OuterProxy =
64 for (
const auto &OuterInvalidationPair :
65 OuterProxy->getOuterInvalidations()) {
66 AnalysisKey *OuterAnalysisID = OuterInvalidationPair.first;
67 const auto &InnerAnalysisIDs = OuterInvalidationPair.second;
71 for (
AnalysisKey *InnerAnalysisID : InnerAnalysisIDs)
72 FunctionPA->
abandon(InnerAnalysisID);
79 InnerAM->invalidate(
F, *FunctionPA);
85 if (!AreFunctionAnalysesPreserved)
86 InnerAM->invalidate(
F, PA);
void abandon()
Mark an analysis as abandoned.
bool invalidate(IRUnitT &IR, const PreservedAnalyses &PA)
Trigger the invalidation of some other analysis pass if not already handled and return whether it was...
A Module instance is used to store all the information related to an LLVM module. ...
A set of analyses that are preserved following a run of a transformation pass.
PreservedAnalysisChecker getChecker() const
Build a checker for this PreservedAnalyses and the specified analysis type.
bool areAllPreserved() const
Test whether all analyses are preserved (and none are abandoned).
An analysis over an "inner" IR unit that provides access to an analysis manager over a "outer" IR uni...
bool invalidate(IRUnitT &IR, const PreservedAnalyses &PA, typename AnalysisManager< IRUnitT, ExtraArgTs...>::Invalidator &Inv)
Handler for invalidation of the outer IR unit, IRUnitT.
A special type used to provide an address that identifies a set of related analyses.
Manages a sequence of passes over a particular unit of IR.
API to communicate dependencies between analyses during invalidation.
This templated class represents "all analyses that operate over \<a particular IR unit\>" (e...
bool allAnalysesInSetPreserved() const
Directly test whether a set of analyses is preserved.
A container for analyses that lazily runs them and caches their results.
This header defines various interfaces for pass management in LLVM.
A special type used by analysis passes to provide an address that identifies that particular analysis...
An analysis over an "outer" IR unit that provides access to an analysis manager over an "inner" IR un...