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...
This class represents lattice values for constants.
A Module instance is used to store all the information related to an LLVM module. ...
bool invalidate(IRUnitT &IR, const PreservedAnalyses &PA, typename AnalysisManager< IRUnitT, ExtraArgTs... >::Invalidator &Inv)
Handler for invalidation of the outer IR unit, IRUnitT.
PreservedAnalysisChecker getChecker() const
Build a checker for this PreservedAnalyses and the specified analysis type.
A set of analyses that are preserved following a run of a transformation pass.
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...
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...
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...
bool allAnalysesInSetPreserved() const
Directly test whether a set of analyses is preserved.
An analysis over an "outer" IR unit that provides access to an analysis manager over an "inner" IR un...