Exemplo n.º 1
0
bool FunctionAnalysisManagerModuleProxy::Result::invalidate(
    Module &M, const PreservedAnalyses &PA) {
  // If this proxy isn't marked as preserved, then we can't even invalidate
  // individual function analyses, there may be an invalid set of Function
  // objects in the cache making it impossible to incrementally preserve them.
  // Just clear the entire manager.
  if (!PA.preserved(ID()))
    FAM->clear();

  // Return false to indicate that this result is still a valid proxy.
  return false;
}
Exemplo n.º 2
0
bool LoopAnalysisManagerFunctionProxy::Result::invalidate(
    Function &F, const PreservedAnalyses &PA,
    FunctionAnalysisManager::Invalidator &Inv) {
    // If this proxy isn't marked as preserved, the set of Function objects in
    // the module may have changed. We therefore can't call
    // InnerAM->invalidate(), because any pointers to Functions it has may be
    // stale.
    if (!PA.preserved(LoopAnalysisManagerFunctionProxy::ID()))
        InnerAM->clear();

    // FIXME: Proper suppor for invalidation isn't yet implemented for the LPM.

    // Return false to indicate that this result is still a valid proxy.
    return false;
}