|  | //===- ProfilingUtils.h - Helper functions shared by profilers --*- C++ -*-===// | 
|  | // | 
|  | //                     The LLVM Compiler Infrastructure | 
|  | // | 
|  | // This file is distributed under the University of Illinois Open Source | 
|  | // License. See LICENSE.TXT for details. | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  | // | 
|  | // This file defines a few helper functions which are used by profile | 
|  | // instrumentation code to instrument the code.  This allows the profiler pass | 
|  | // to worry about *what* to insert, and these functions take care of *how* to do | 
|  | // it. | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | #ifndef PROFILINGUTILS_H | 
|  | #define PROFILINGUTILS_H | 
|  |  | 
|  | namespace llvm { | 
|  | class BasicBlock; | 
|  | class Function; | 
|  | class GlobalValue; | 
|  | class Module; | 
|  | class PointerType; | 
|  |  | 
|  | void InsertProfilingInitCall(Function *MainFn, const char *FnName, | 
|  | GlobalValue *Arr = 0, | 
|  | PointerType *arrayType = 0); | 
|  | void IncrementCounterInBlock(BasicBlock *BB, unsigned CounterNum, | 
|  | GlobalValue *CounterArray, | 
|  | bool beginning = true); | 
|  | void InsertProfilingShutdownCall(Function *Callee, Module *Mod); | 
|  | } | 
|  |  | 
|  | #endif |