1 //===- CountVisits.cpp ----------------------------------------------------===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 #include "llvm/Transforms/Utils/CountVisits.h"
10 #include "llvm/ADT/Statistic.h"
11 #include "llvm/IR/PassManager.h"
15 #define DEBUG_TYPE "count-visits"
17 STATISTIC(MaxVisited
, "Max number of times we visited a function");
19 PreservedAnalyses
CountVisitsPass::run(Function
&F
, FunctionAnalysisManager
&) {
20 uint32_t Count
= Counts
[F
.getName()] + 1;
21 Counts
[F
.getName()] = Count
;
22 if (Count
> MaxVisited
)
24 return PreservedAnalyses::all();