| //===- 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 |