[vmkit-commits] [vmkit] r82138 - in /vmkit/trunk/lib/JnJVM/Compiler: GCInfoPass.cpp JnjvmModule.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Thu Sep 17 02:27:58 PDT 2009


Author: geoffray
Date: Thu Sep 17 04:27:58 2009
New Revision: 82138

URL: http://llvm.org/viewvc/llvm-project?rev=82138&view=rev
Log:
No need for a GC info pass: we can get the GC info
from the GC strategy object.


Removed:
    vmkit/trunk/lib/JnJVM/Compiler/GCInfoPass.cpp
Modified:
    vmkit/trunk/lib/JnJVM/Compiler/JnjvmModule.cpp

Removed: vmkit/trunk/lib/JnJVM/Compiler/GCInfoPass.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/GCInfoPass.cpp?rev=82137&view=auto

==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/GCInfoPass.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/GCInfoPass.cpp (removed)
@@ -1,57 +0,0 @@
-//===---- GCInfoPass.cpp - Get GC info for JIT-generated functions --------===//
-//
-//                     The VMKit project
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-
-#include "llvm/Function.h"
-#include "llvm/Pass.h"
-#include "llvm/CodeGen/GCMetadata.h"
-#include "llvm/Support/Compiler.h"
-
-#include "jnjvm/JnjvmModule.h"
-
-using namespace jnjvm;
-using namespace llvm;
-
-namespace {
-  class VISIBILITY_HIDDEN GCInfoPass : public FunctionPass {
-  public:
-    static char ID;
-    JavaLLVMCompiler* Comp;
-    GCInfoPass(JavaLLVMCompiler* C) : FunctionPass(&ID) {
-      Comp = C;
-    }
-
-    void getAnalysisUsage(AnalysisUsage &AU) const {
-      FunctionPass::getAnalysisUsage(AU);      
-      AU.setPreservesAll();
-      AU.addRequired<GCModuleInfo>();
-    }
-
-    bool runOnFunction(Function &F) {
-      // Quick exit for functions that do not use GC.
-      assert(F.hasGC() && "Function without GC");
-      GCFunctionInfo &FI = getAnalysis<GCModuleInfo>().getFunctionInfo(F);
-      JavaMethod* meth = Comp->getJavaMethod(&F);
-      assert(meth && "Function without a Java method");
-      
-      LLVMMethodInfo* LMI = Comp->getMethodInfo(meth);
-      LMI->GCInfo = &FI;
-      return false;
-    }
-  };
-}
-
-char GCInfoPass::ID = 0;
-
-namespace jnjvm {
-  FunctionPass* createGCInfo(JavaLLVMCompiler* C) {
-    return new GCInfoPass(C);
-  }
-}
-

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JnjvmModule.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JnjvmModule.cpp Thu Sep 17 04:27:58 2009
@@ -377,7 +377,6 @@
 
 namespace jnjvm {
   llvm::FunctionPass* createLowerConstantCallsPass(JnjvmModule* M);
-  llvm::FunctionPass* createGCInfo(JavaLLVMCompiler* Comp);
 }
 
 void JavaLLVMCompiler::addJavaPasses() {
@@ -386,8 +385,6 @@
   // Lower constant calls to lower things like getClass used
   // on synchronized methods.
   JavaNativeFunctionPasses->add(createLowerConstantCallsPass(getIntrinsics()));
-  if (cooperativeGC)
-    JavaNativeFunctionPasses->add(createGCInfo(this));
   
   JavaFunctionPasses = new FunctionPassManager(TheModuleProvider);
   JavaFunctionPasses->add(new TargetData(TheModule));
@@ -398,6 +395,4 @@
   // be given to the GC.
   //JavaFunctionPasses->add(mvm::createEscapeAnalysisPass());
   JavaFunctionPasses->add(createLowerConstantCallsPass(getIntrinsics()));
-  if (cooperativeGC)
-    JavaFunctionPasses->add(createGCInfo(this));
 }





More information about the vmkit-commits mailing list