]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - contrib/llvm/lib/Transforms/Instrumentation/ProfilingUtils.h
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / contrib / llvm / lib / Transforms / Instrumentation / ProfilingUtils.h
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