File indexing completed on 2026-05-10 08:43:11
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024 #ifndef LLVM_ANALYSIS_ALIASANALYSISEVALUATOR_H
0025 #define LLVM_ANALYSIS_ALIASANALYSISEVALUATOR_H
0026
0027 #include "llvm/IR/PassManager.h"
0028
0029 namespace llvm {
0030 class AAResults;
0031 class Function;
0032
0033 class AAEvaluator : public PassInfoMixin<AAEvaluator> {
0034 int64_t FunctionCount = 0;
0035 int64_t NoAliasCount = 0, MayAliasCount = 0, PartialAliasCount = 0;
0036 int64_t MustAliasCount = 0;
0037 int64_t NoModRefCount = 0, ModCount = 0, RefCount = 0, ModRefCount = 0;
0038
0039 public:
0040 AAEvaluator() = default;
0041 AAEvaluator(AAEvaluator &&Arg)
0042 : FunctionCount(Arg.FunctionCount), NoAliasCount(Arg.NoAliasCount),
0043 MayAliasCount(Arg.MayAliasCount),
0044 PartialAliasCount(Arg.PartialAliasCount),
0045 MustAliasCount(Arg.MustAliasCount), NoModRefCount(Arg.NoModRefCount),
0046 ModCount(Arg.ModCount), RefCount(Arg.RefCount),
0047 ModRefCount(Arg.ModRefCount) {
0048 Arg.FunctionCount = 0;
0049 }
0050 ~AAEvaluator();
0051
0052
0053 PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
0054
0055 private:
0056 void runInternal(Function &F, AAResults &AA);
0057 };
0058 }
0059
0060 #endif