[llvm-commits] CVS: llvm/include/llvm/Transforms/RSProfiling.h LinkAllPasses.h Instrumentation.h
Andrew Lenharth
alenhar2 at cs.uiuc.edu
Mon Nov 28 10:00:48 PST 2005
Changes in directory llvm/include/llvm/Transforms:
RSProfiling.h added (r1.1)
LinkAllPasses.h updated: 1.26 -> 1.27
Instrumentation.h updated: 1.9 -> 1.10
---
Log message:
Added documented rsprofiler interface. Also remove new profiler passes, the
old ones have been updated to implement the interface.
---
Diffs of the changes: (+30 -4)
Instrumentation.h | 2 --
LinkAllPasses.h | 2 --
RSProfiling.h | 30 ++++++++++++++++++++++++++++++
3 files changed, 30 insertions(+), 4 deletions(-)
Index: llvm/include/llvm/Transforms/RSProfiling.h
diff -c /dev/null llvm/include/llvm/Transforms/RSProfiling.h:1.1
*** /dev/null Mon Nov 28 12:00:38 2005
--- llvm/include/llvm/Transforms/RSProfiling.h Mon Nov 28 12:00:28 2005
***************
*** 0 ****
--- 1,30 ----
+ //===- RSProfiling.cpp - Various profiling using random sampling ----------===//
+ //
+ // The LLVM Compiler Infrastructure
+ //
+ // This file was developed by the LLVM research group and is distributed under
+ // the University of Illinois Open Source License. See LICENSE.TXT for details.
+ //
+ //===----------------------------------------------------------------------===//
+ //
+ // This file defines the abstract interface that a profiler must implement to
+ // support the random profiling transform.
+ //
+ //===----------------------------------------------------------------------===//
+
+ namespace llvm {
+ //===--------------------------------------------------------------------===//
+ /// RSProfilers - The basic Random Sampling Profiler Interface Any profiler
+ /// that implements this interface can be transformed by the random sampling
+ /// pass to be sample based rather than always on.
+ ///
+ /// The only exposed function can be queried to find out if an instruction
+ /// was original or if it was inserted by the profiler. Implementations of
+ /// this interface are expected to chain to other implementations, such that
+ /// multiple profilers can be support simultaniously.
+ struct RSProfilers : public ModulePass {
+ /// isProfiling - This method returns true if the value passed it was
+ /// inserted by the profiler.
+ virtual bool isProfiling(Value* v) = 0;
+ };
+ };
Index: llvm/include/llvm/Transforms/LinkAllPasses.h
diff -u llvm/include/llvm/Transforms/LinkAllPasses.h:1.26 llvm/include/llvm/Transforms/LinkAllPasses.h:1.27
--- llvm/include/llvm/Transforms/LinkAllPasses.h:1.26 Sun Nov 27 18:58:09 2005
+++ llvm/include/llvm/Transforms/LinkAllPasses.h Mon Nov 28 12:00:28 2005
@@ -106,8 +106,6 @@
(void) llvm::createTraceValuesPassForFunction();
(void) llvm::createUnifyFunctionExitNodesPass();
(void) llvm::createCondPropagationPass();
- (void) llvm::createBlockProfilerRSPass();
- (void) llvm::createFunctionProfilerRSPass();
(void) llvm::createNullProfilerRSPass();
(void) llvm::createRSProfilingPass();
Index: llvm/include/llvm/Transforms/Instrumentation.h
diff -u llvm/include/llvm/Transforms/Instrumentation.h:1.9 llvm/include/llvm/Transforms/Instrumentation.h:1.10
--- llvm/include/llvm/Transforms/Instrumentation.h:1.9 Sun Nov 27 18:58:09 2005
+++ llvm/include/llvm/Transforms/Instrumentation.h Mon Nov 28 12:00:28 2005
@@ -44,8 +44,6 @@
FunctionPass *createProfilePathsPass();
// Random Sampling Profiling Framework
-ModulePass* createBlockProfilerRSPass();
-ModulePass* createFunctionProfilerRSPass();
ModulePass* createNullProfilerRSPass();
FunctionPass* createRSProfilingPass();
More information about the llvm-commits
mailing list