15#ifndef LLVM_CLANG_SCALABLESTATICANALYSISFRAMEWORK_CORE_WHOLEPROGRAMANALYSIS_ANALYSISBASE_H
16#define LLVM_CLANG_SCALABLESTATICANALYSISFRAMEWORK_CORE_WHOLEPROGRAMANALYSIS_ANALYSISBASE_H
37 enum class Kind { Summary, Derived };
55 virtual std::unique_ptr<AnalysisResult>
result() && = 0;
friend class SummaryAnalysisBase
friend class DerivedAnalysisBase
virtual ~AnalysisBase()=default
virtual AnalysisName analysisName() const =0
Name of this analysis.
virtual const std::vector< AnalysisName > & dependencyNames() const =0
AnalysisNames of all AnalysisResult dependencies.
virtual std::unique_ptr< AnalysisResult > result() &&=0
Transfers ownership of the built result.
friend class AnalysisDriver
Orchestrates whole-program analysis over an LUSummary.
Uniquely identifies a whole-program analysis and the AnalysisResult it produces.
Base class for whole-program analysis results.
Type-erased base for derived analyses.
Type-erased base for summary analyses.