aboutsummaryrefslogtreecommitdiff
path: root/lib/Transforms/Instrumentation/RSProfiling.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Transforms/Instrumentation/RSProfiling.cpp')
-rw-r--r--lib/Transforms/Instrumentation/RSProfiling.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/Transforms/Instrumentation/RSProfiling.cpp b/lib/Transforms/Instrumentation/RSProfiling.cpp
index d6d152dfbf..fc464c00ec 100644
--- a/lib/Transforms/Instrumentation/RSProfiling.cpp
+++ b/lib/Transforms/Instrumentation/RSProfiling.cpp
@@ -40,6 +40,7 @@
#include "llvm/Transforms/Scalar.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Transforms/Instrumentation.h"
#include "RSProfiling.h"
@@ -66,7 +67,7 @@ namespace {
/// NullProfilerRS - The basic profiler that does nothing. It is the default
/// profiler and thus terminates RSProfiler chains. It is useful for
/// measuring framework overhead
- class NullProfilerRS : public RSProfilers {
+ class VISIBILITY_HIDDEN NullProfilerRS : public RSProfilers {
public:
bool isProfiling(Value* v) {
return false;
@@ -85,7 +86,7 @@ namespace {
static RegisterAnalysisGroup<RSProfilers, true> NPT(NP);
/// Chooser - Something that chooses when to make a sample of the profiled code
- class Chooser {
+ class VISIBILITY_HIDDEN Chooser {
public:
/// ProcessChoicePoint - is called for each basic block inserted to choose
/// between normal and sample code
@@ -99,7 +100,7 @@ namespace {
//Things that implement sampling policies
//A global value that is read-mod-stored to choose when to sample.
//A sample is taken when the global counter hits 0
- class GlobalRandomCounter : public Chooser {
+ class VISIBILITY_HIDDEN GlobalRandomCounter : public Chooser {
GlobalVariable* Counter;
Value* ResetValue;
const Type* T;
@@ -111,7 +112,7 @@ namespace {
};
//Same is GRC, but allow register allocation of the global counter
- class GlobalRandomCounterOpt : public Chooser {
+ class VISIBILITY_HIDDEN GlobalRandomCounterOpt : public Chooser {
GlobalVariable* Counter;
Value* ResetValue;
AllocaInst* AI;
@@ -125,7 +126,7 @@ namespace {
//Use the cycle counter intrinsic as a source of pseudo randomness when
//deciding when to sample.
- class CycleCounter : public Chooser {
+ class VISIBILITY_HIDDEN CycleCounter : public Chooser {
uint64_t rm;
Constant *F;
public:
@@ -136,7 +137,7 @@ namespace {
};
/// ProfilerRS - Insert the random sampling framework
- struct ProfilerRS : public FunctionPass {
+ struct VISIBILITY_HIDDEN ProfilerRS : public FunctionPass {
std::map<Value*, Value*> TransCache;
std::set<BasicBlock*> ChoicePoints;
Chooser* c;