brintos

brintos / llvm-project-archived public Read only

0
0
Text · 883 B · f22880b Raw
27 lines · cpp
1//===- CountVisits.cpp ----------------------------------------------------===//2//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-exception6//7//===----------------------------------------------------------------------===//8 9#include "llvm/Transforms/Utils/CountVisits.h"10#include "llvm/ADT/Statistic.h"11#include "llvm/IR/Function.h"12#include "llvm/IR/PassManager.h"13 14using namespace llvm;15 16#define DEBUG_TYPE "count-visits"17 18STATISTIC(MaxVisited, "Max number of times we visited a function");19 20PreservedAnalyses CountVisitsPass::run(Function &F, FunctionAnalysisManager &) {21  uint32_t Count = Counts[F.getName()] + 1;22  Counts[F.getName()] = Count;23  if (Count > MaxVisited)24    MaxVisited = Count;25  return PreservedAnalyses::all();26}27