[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