[llvm-commits] [vmkit] r51333 - in /vmkit/trunk/lib/JnJVM/VMCore: JavaJIT.cpp JavaJIT.h JavaJITOpcodes.cpp JavaThread.cpp JavaThread.h

Nicolas Geoffray nicolas.geoffray at lip6.fr
Tue May 20 13:45:19 PDT 2008


Author: geoffray
Date: Tue May 20 15:45:19 2008
New Revision: 51333

URL: http://llvm.org/viewvc/llvm-project?rev=51333&view=rev
Log:
Inline simple functions.


Modified:
    vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.h
    vmkit/trunk/lib/JnJVM/VMCore/JavaJITOpcodes.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JavaThread.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JavaThread.h

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp Tue May 20 15:45:19 2008
@@ -38,7 +38,6 @@
 #include "JavaTypes.h"
 #include "JavaUpcalls.h"
 #include "Jnjvm.h"
-#include "JnjvmModule.h"
 #include "JnjvmModuleProvider.h"
 #include "NativeUtil.h"
 #include "Reader.h"
@@ -51,56 +50,6 @@
 using namespace jnjvm;
 using namespace llvm;
 
-BasicBlock* JavaJIT::createBasicBlock(const char* name) {
-  return llvm::BasicBlock::Create(name, llvmFunction);
-}
-
-Value* JavaJIT::top() {
-  return stack.back().first;
-}
-
-Value* JavaJIT::pop() {
-  llvm::Value * ret = top();
-  stack.pop_back();
-  return ret;
-}
-
-Value* JavaJIT::popAsInt() {
-  llvm::Value * ret = top();
-  const AssessorDesc* ass = topFunc();
-  stack.pop_back();
-
-  if (ret->getType() != Type::Int32Ty) {
-    if (ass == AssessorDesc::dChar) {
-      ret = new ZExtInst(ret, Type::Int32Ty, "", currentBlock);
-    } else {
-      ret = new SExtInst(ret, Type::Int32Ty, "", currentBlock);
-    }
-  }
-
-  return ret;
-}
-
-void JavaJIT::push(llvm::Value* val, const AssessorDesc* ass) {
-  assert(LLVMAssessorInfo::AssessorInfo[ass->numId].llvmType == val->getType());
-  stack.push_back(std::make_pair(val, ass));
-}
-
-void JavaJIT::push(std::pair<llvm::Value*, const AssessorDesc*> pair) {
-  assert(LLVMAssessorInfo::AssessorInfo[pair.second->numId].llvmType == 
-      pair.first->getType());
-  stack.push_back(pair);
-}
-
-
-const AssessorDesc* JavaJIT::topFunc() {
-  return stack.back().second;
-}
-
-uint32 JavaJIT::stackSize() {
-  return stack.size();
-}
-  
 void JavaJIT::invokeVirtual(uint16 index) {
   
   JavaCtpInfo* ctpInfo = compilingClass->ctpInfo;
@@ -187,12 +136,6 @@
 #endif
 }
 
-std::pair<llvm::Value*, const AssessorDesc*> JavaJIT::popPair() {
-  std::pair<Value*, const AssessorDesc*> ret = stack.back();
-  stack.pop_back();
-  return ret;
-}
-
 llvm::Function* JavaJIT::nativeCompile(void* natPtr) {
   
   PRINT_DEBUG(JNJVM_COMPILE, 1, COLOR_NORMAL, "native compile %s\n",
@@ -1711,8 +1654,31 @@
   }
 }
 
-extern void convertValue(Value*& val, const Type* t1, BasicBlock* currentBlock,
-                         bool usign);
+void JavaJIT::convertValue(Value*& val, const Type* t1, BasicBlock* currentBlock,
+                           bool usign) {
+  const Type* t2 = val->getType();
+  if (t1 != t2) {
+    if (t1->isInteger() && t2->isInteger()) {
+      if (t2->getPrimitiveSizeInBits() < t1->getPrimitiveSizeInBits()) {
+        if (usign) {
+          val = new ZExtInst(val, t1, "", currentBlock);
+        } else {
+          val = new SExtInst(val, t1, "", currentBlock);
+        }
+      } else {
+        val = new TruncInst(val, t1, "", currentBlock);
+      }    
+    } else if (t1->isFloatingPoint() && t2->isFloatingPoint()) {
+      if (t2->getPrimitiveSizeInBits() < t1->getPrimitiveSizeInBits()) {
+        val = new FPExtInst(val, t1, "", currentBlock);
+      } else {
+        val = new FPTruncInst(val, t1, "", currentBlock);
+      }    
+    } else if (isa<PointerType>(t1) && isa<PointerType>(t2)) {
+      val = new BitCastInst(val, t1, "", currentBlock);
+    }    
+  }
+}
  
 
 void JavaJIT::setStaticField(uint16 index) {

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.h Tue May 20 15:45:19 2008
@@ -28,9 +28,11 @@
 #include "mvm/Object.h"
 #include "mvm/PrintBuffer.h"
 
+#include "JavaTypes.h"
+#include "JnjvmModule.h"
+
 namespace jnjvm {
 
-class AssessorDesc;
 class CacheNode;
 class Class;
 class JavaField;
@@ -107,14 +109,58 @@
   
   // stack manipulation
   std::vector< std::pair<llvm::Value*, const AssessorDesc*> > stack;
-  void push(llvm::Value* val, const AssessorDesc* ass);
-  void push(std::pair<llvm::Value*, const AssessorDesc*> pair);
-  llvm::Value* pop();
-  llvm::Value* popAsInt();
-  llvm::Value* top();
-  const AssessorDesc* topFunc();
-  std::pair<llvm::Value*, const AssessorDesc*> popPair();
-  uint32 stackSize();
+  void push(llvm::Value* val, const AssessorDesc* ass) {
+    assert(LLVMAssessorInfo::AssessorInfo[ass->numId].llvmType == 
+        val->getType());
+    stack.push_back(std::make_pair(val, ass));
+  }
+
+  void push(std::pair<llvm::Value*, const AssessorDesc*> pair) {
+    assert(LLVMAssessorInfo::AssessorInfo[pair.second->numId].llvmType == 
+      pair.first->getType());
+    stack.push_back(pair);
+  }
+  
+  llvm::Value* pop() {
+    llvm::Value * ret = top();
+    stack.pop_back();
+    return ret; 
+  }
+
+  llvm::Value* top() {
+    return stack.back().first;
+  }
+  
+  const AssessorDesc* topFunc() {
+    return stack.back().second;  
+  }
+  
+  uint32 stackSize() {
+    return stack.size();    
+  }
+  
+  llvm::Value* popAsInt() {
+    llvm::Value * ret = top();
+    const AssessorDesc* ass = topFunc();
+    stack.pop_back();
+
+    if (ret->getType() != llvm::Type::Int32Ty) {
+      if (ass == AssessorDesc::dChar || ass == AssessorDesc::dBool) {
+        ret = new llvm::ZExtInst(ret, llvm::Type::Int32Ty, "", currentBlock);
+      } else {
+        ret = new llvm::SExtInst(ret, llvm::Type::Int32Ty, "", currentBlock);
+      }
+    }
+
+    return ret;
+
+  }
+
+  std::pair<llvm::Value*, const AssessorDesc*> popPair() {
+    std::pair<llvm::Value*, const AssessorDesc*> ret = stack.back();
+    stack.pop_back();
+    return ret;
+  }
   
   // exceptions
   std::vector<llvm::BasicBlock*> jsrs;
@@ -128,7 +174,9 @@
 
   // block manipulation
   llvm::BasicBlock* currentBlock;
-  llvm::BasicBlock* createBasicBlock(const char* name = "");
+  llvm::BasicBlock* createBasicBlock(const char* name = "") {
+    return llvm::BasicBlock::Create(name, llvmFunction);  
+  }
   void setCurrentBlock(llvm::BasicBlock* block);
 
   // branches
@@ -196,6 +244,10 @@
                             llvm::BasicBlock *InsertAtEnd);
 
   
+  void convertValue(llvm::Value*& val, const llvm::Type* t1,
+                    llvm::BasicBlock* currentBlock, bool usign);
+
+
   // wide status
   bool wide;
   uint32 WREAD_U1(uint8* bytecodes, bool init, uint32 &i);

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaJITOpcodes.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaJITOpcodes.cpp Tue May 20 15:45:19 2008
@@ -33,7 +33,6 @@
 #include "JavaThread.h"
 #include "JavaTypes.h"
 #include "Jnjvm.h"
-#include "JnjvmModule.h"
 
 #include "OpcodeNames.def"
 
@@ -100,32 +99,6 @@
   }
 }
 
-void convertValue(Value*& val, const Type* t1, BasicBlock* currentBlock,
-                  bool usign) {
-  const Type* t2 = val->getType();
-  if (t1 != t2) {
-    if (t1->isInteger() && t2->isInteger()) {
-      if (t2->getPrimitiveSizeInBits() < t1->getPrimitiveSizeInBits()) {
-        if (usign) {
-          val = new ZExtInst(val, t1, "", currentBlock);
-        } else {
-          val = new SExtInst(val, t1, "", currentBlock);
-        }
-      } else {
-        val = new TruncInst(val, t1, "", currentBlock);
-      }    
-    } else if (t1->isFloatingPoint() && t2->isFloatingPoint()) {
-      if (t2->getPrimitiveSizeInBits() < t1->getPrimitiveSizeInBits()) {
-        val = new FPExtInst(val, t1, "", currentBlock);
-      } else {
-        val = new FPTruncInst(val, t1, "", currentBlock);
-      }    
-    } else if (isa<PointerType>(t1) && isa<PointerType>(t2)) {
-      val = new BitCastInst(val, t1, "", currentBlock);
-    }    
-  }
-}
-
 void JavaJIT::compileOpcodes(uint8* bytecodes, uint32 codeLength) {
   wide = false;
   uint32 jsrIndex = 0;

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaThread.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaThread.cpp Tue May 20 15:45:19 2008
@@ -34,43 +34,3 @@
   delete lock;
   delete varcond;
 }
-
-JavaThread* JavaThread::get() {
-  return (JavaThread*)Thread::threadKey->get();
-}
-
-void JavaThread::initialise(JavaObject* thread, Jnjvm* isolate) {
-  this->javaThread = thread;
-  this->isolate = isolate;
-  this->lock = mvm::Lock::allocNormal();
-  this->varcond = mvm::Cond::allocCond();
-  this->interruptFlag = 0;
-  this->state = StateRunning;
-  this->self = mvm::Thread::self();
-  this->pendingException = 0;
-}
-
-JavaObject* JavaThread::currentThread() {
-  JavaThread* result = get();
-  if (result != 0)
-    return result->javaThread;
-  else
-    return 0;
-}
-
-void JavaThread::throwPendingException() {
-  JavaThread* th = JavaThread::get();
-  assert(th->pendingException);
-  void* exc = __cxa_allocate_exception(0);
-  th->internalPendingException = exc;
-  __cxa_throw(exc, 0, 0);
-}
-
-void JavaThread::returnFromNative() {
-  assert(sjlj_buffers.size());
-#if defined(__MACH__)
-  longjmp((int*)sjlj_buffers.back(), 1);
-#else
-  longjmp((__jmp_buf_tag*)sjlj_buffers.back(), 1);
-#endif
-}

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaThread.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaThread.h Tue May 20 15:45:19 2008
@@ -51,9 +51,27 @@
   virtual void TRACER;
   virtual void destroyer(size_t sz);
   
-  void initialise(JavaObject* thread, Jnjvm* isolate);
-  static JavaThread* get();
-  static JavaObject* currentThread();
+  void initialise(JavaObject* thread, Jnjvm* isolate) {
+    this->javaThread = thread;
+    this->isolate = isolate;
+    this->lock = mvm::Lock::allocNormal();
+    this->varcond = mvm::Cond::allocCond();
+    this->interruptFlag = 0;
+    this->state = StateRunning;
+    this->self = mvm::Thread::self();
+    this->pendingException = 0;
+  }
+
+  static JavaThread* get() {
+    return (JavaThread*)Thread::threadKey->get();
+  }
+  static JavaObject* currentThread() {
+    JavaThread* result = get();
+    if (result != 0)
+      return result->javaThread;
+    else
+      return 0;
+  }
   
   static void* getException() {
     return (void*)
@@ -69,7 +87,13 @@
     __cxa_throw(exc, 0, 0);
   }
 
-  static void throwPendingException();
+  static void throwPendingException() {
+    JavaThread* th = JavaThread::get();
+    assert(th->pendingException);
+    void* exc = __cxa_allocate_exception(0);
+    th->internalPendingException = exc;
+    __cxa_throw(exc, 0, 0);
+  }
   
   static void clearException() {
     JavaThread* th = JavaThread::get();
@@ -88,7 +112,14 @@
     return JavaThread::get()->pendingException;
   }
 
-  void returnFromNative();
+  void returnFromNative() {
+    assert(sjlj_buffers.size());
+#if defined(__MACH__)
+    longjmp((int*)sjlj_buffers.back(), 1);
+#else
+    longjmp((__jmp_buf_tag*)sjlj_buffers.back(), 1);
+#endif
+  }
 };
 
 } // end namespace jnjvm





More information about the llvm-commits mailing list