pass machinemoduleinfo down into getSymbolForDwarfGlobalReference,
[llvm/avr.git] / lib / Transforms / Instrumentation / RSProfiling.h
blob8bbe7c7b28fe53d99a130588e47db4fa7f32a9de
1 //===- RSProfiling.h - Various profiling using random sampling ----------===//
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 // See notes in RSProfiling.cpp
12 //===----------------------------------------------------------------------===//
13 #include "llvm/Transforms/RSProfiling.h"
14 #include <set>
16 namespace llvm {
17 /// RSProfilers_std - a simple support class for profilers that handles most
18 /// of the work of chaining and tracking inserted code.
19 struct RSProfilers_std : public RSProfilers {
20 static char ID;
21 std::set<Value*> profcode;
22 // Lookup up values in profcode
23 virtual bool isProfiling(Value* v);
24 // handles required chaining
25 virtual void getAnalysisUsage(AnalysisUsage &AU) const;
26 // places counter updates in basic blocks and recordes added instructions in
27 // profcode
28 void IncrementCounterInBlock(BasicBlock *BB, unsigned CounterNum,
29 GlobalValue *CounterArray);