[vmkit-commits] [vmkit] r60021 - in /vmkit/trunk/lib/JnJVM/VMCore: JnjvmModule.cpp JnjvmModule.h JnjvmModuleProvider.cpp JnjvmModuleProvider.h

Nicolas Geoffray nicolas.geoffray at lip6.fr
Tue Nov 25 06:09:43 PST 2008


Author: geoffray
Date: Tue Nov 25 08:09:35 2008
New Revision: 60021

URL: http://llvm.org/viewvc/llvm-project?rev=60021&view=rev
Log:
Functions for printing compilation statistics.


Modified:
    vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h
    vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.h

Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp?rev=60021&r1=60020&r2=60021&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp Tue Nov 25 08:09:35 2008
@@ -20,6 +20,7 @@
 #include "JnjvmModule.h"
 #include "JnjvmModuleProvider.h"
 
+#include <cstdio>
 
 using namespace jnjvm;
 using namespace llvm;
@@ -1013,6 +1014,19 @@
   func->setLinkage(llvm::GlobalValue::ExternalLinkage);
 }
 
+void JnjvmModule::printStats() {
+  fprintf(stderr, "----------------- Info from the module -----------------\n");
+  fprintf(stderr, "Number of native classes   : %d\n", nativeClasses.size());
+  fprintf(stderr, "Number of Java classes     : %d\n", javaClasses.size());
+  fprintf(stderr, "Number of virtual tables   : %d\n", virtualTables.size());
+  fprintf(stderr, "Number of static instances : %d\n", staticInstances.size());
+  fprintf(stderr, "Number of constant pools   : %d\n", constantPools.size());
+  fprintf(stderr, "Number of strings          : %d\n", strings.size());
+  fprintf(stderr, "Number of enveloppes       : %d\n", enveloppes.size());
+  fprintf(stderr, "Number of native functions : %d\n", nativeFunctions.size());
+}
+
+
 void* JnjvmModule::getMethod(JavaMethod* meth) {
   return getMethodInfo(meth)->getMethod();
 }

Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h?rev=60021&r1=60020&r2=60021&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h Tue Nov 25 08:09:35 2008
@@ -373,6 +373,7 @@
   
   explicit JnjvmModule(const std::string &ModuleID, bool sc = false);
   void initialise();
+  void printStats();
 
   llvm::Value* getNativeClass(CommonClass* cl);
   llvm::Value* getJavaClass(CommonClass* cl);
@@ -391,7 +392,7 @@
   
   llvm::Value* getIsolate(Jnjvm* vm);
 #endif
-
+  
 private:
   static llvm::Module* initialModule;
 

Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp?rev=60021&r1=60020&r2=60021&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp Tue Nov 25 08:09:35 2008
@@ -158,6 +158,7 @@
                             TheModule);
   }
   
+  ++nbCallbacks;
   CallbackInfo* A = new CallbackInfo(cl, index);
   func->addAnnotation(A);
   
@@ -192,6 +193,7 @@
   JavaFunctionPasses->add(mvm::createEscapeAnalysisPass(func));
   JavaFunctionPasses->add(mvm::createLowerConstantCallsPass());
   JavaFunctionPasses->add(mvm::createLowerForcedCallsPass());
+  nbCallbacks = 0;
 }
 
 JnjvmModuleProvider::~JnjvmModuleProvider() {
@@ -202,3 +204,8 @@
   delete JavaNativeFunctionPasses;
   delete JavaFunctionPasses;
 }
+
+void JnjvmModuleProvider::printStats() {
+  fprintf(stderr, "------------ Info from the module provider -------------\n");
+  fprintf(stderr, "Number of callbacks        : %d\n", nbCallbacks);
+}

Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.h?rev=60021&r1=60020&r2=60021&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.h Tue Nov 25 08:09:35 2008
@@ -28,6 +28,8 @@
   
   llvm::FunctionPassManager* JavaFunctionPasses;
   llvm::FunctionPassManager* JavaNativeFunctionPasses;
+  
+  uint32 nbCallbacks;
 
 public:
   
@@ -42,6 +44,8 @@
   llvm::Function* parseFunction(JavaMethod* meth);
 
   Module* materializeModule(std::string *ErrInfo = 0) { return TheModule; }
+
+  void printStats();
 };
 
 } // End jnjvm namespace





More information about the vmkit-commits mailing list