• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //===- ProfilingUtils.h - Helper functions shared by profilers --*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file defines a few helper functions which are used by profile
11 // instrumentation code to instrument the code.  This allows the profiler pass
12 // to worry about *what* to insert, and these functions take care of *how* to do
13 // it.
14 //
15 //===----------------------------------------------------------------------===//
16 
17 #ifndef PROFILINGUTILS_H
18 #define PROFILINGUTILS_H
19 
20 namespace llvm {
21   class BasicBlock;
22   class Function;
23   class GlobalValue;
24   class Module;
25   class PointerType;
26 
27   void InsertProfilingInitCall(Function *MainFn, const char *FnName,
28                                GlobalValue *Arr = 0,
29                                PointerType *arrayType = 0);
30   void IncrementCounterInBlock(BasicBlock *BB, unsigned CounterNum,
31                                GlobalValue *CounterArray,
32                                bool beginning = true);
33   void InsertProfilingShutdownCall(Function *Callee, Module *Mod);
34 }
35 
36 #endif
37