[vmkit-commits] [vmkit] r196290 - J3CodeGen is only used to translate a Java bytecode into a llvm bitcode
Gael Thomas
gael.thomas at lip6.fr
Tue Dec 3 07:52:53 PST 2013
Author: gthomas
Date: Tue Dec 3 09:52:52 2013
New Revision: 196290
URL: http://llvm.org/viewvc/llvm-project?rev=196290&view=rev
Log:
J3CodeGen is only used to translate a Java bytecode into a llvm bitcode
Modified:
vmkit/branches/mcjit/include/j3/j3codegen.h
vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc
vmkit/branches/mcjit/lib/j3/vm/j3method.cc
Modified: vmkit/branches/mcjit/include/j3/j3codegen.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3codegen.h?rev=196290&r1=196289&r2=196290&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3codegen.h (original)
+++ vmkit/branches/mcjit/include/j3/j3codegen.h Tue Dec 3 09:52:52 2013
@@ -56,45 +56,45 @@ namespace j3 {
class J3CodeGen {
friend class J3CodeGenVar;
- vmkit::BumpAllocator* allocator;
- llvm::Module* module;
- llvm::BasicBlock* bb;
- llvm::IRBuilder<>* builder;
- llvm::Function* _llvmFunction;
-
- J3* vm;
- J3Class* cl;
- J3ClassLoader* loader;
- J3Method* method;
- J3MethodType* methodType;
- J3Reader* codeReader;
-
- llvm::BasicBlock* bbCheckCastFailed;
- llvm::BasicBlock* bbNullCheckFailed;
- llvm::BasicBlock* bbRet;
-
- J3ExceptionEntry* exceptionEntries;
- J3ExceptionNode** exceptionNodes;
- uint32_t nbExceptionEntries;
- uint32_t nbExceptionNodes;
- uint32_t curExceptionNode;
-
- J3OpInfo* opInfos;
- uint32_t* pendingBranchs;
- uint32_t topPendingBranchs;
-
- llvm::Value* nullValue;
-
- llvm::MDNode* dbgInfo;
- uint32_t javaPC;
-
- J3CodeGenVar locals;
- J3CodeGenVar stack;
- J3CodeGenVar ret;
+ vmkit::BumpAllocator* allocator;
+ llvm::Module* module;
+ llvm::BasicBlock* bb;
+ llvm::IRBuilder<>* builder;
+ llvm::Function* _llvmFunction;
+
+ J3* vm;
+ J3Class* cl;
+ J3ClassLoader* loader;
+ J3Method* method;
+ J3MethodType* methodType;
+ J3Reader* codeReader;
+
+ llvm::BasicBlock* bbCheckCastFailed;
+ llvm::BasicBlock* bbNullCheckFailed;
+ llvm::BasicBlock* bbRet;
+
+ J3ExceptionEntry* exceptionEntries;
+ J3ExceptionNode** exceptionNodes;
+ uint32_t nbExceptionEntries;
+ uint32_t nbExceptionNodes;
+ uint32_t curExceptionNode;
+
+ J3OpInfo* opInfos;
+ uint32_t* pendingBranchs;
+ uint32_t topPendingBranchs;
+
+ llvm::Value* nullValue;
+
+ llvm::MDNode* dbgInfo;
+ uint32_t javaPC;
+
+ J3CodeGenVar locals;
+ J3CodeGenVar stack;
+ J3CodeGenVar ret;
- bool closeBB;
+ bool closeBB;
- bool isWide;
+ bool isWide;
uint32_t wideReadU1();
uint32_t wideReadS1();
@@ -203,7 +203,6 @@ namespace j3 {
static void destroy(J3CodeGen* codeGen);
llvm::Function* llvmFunction() { return _llvmFunction; }
- uint8_t* fnPtr();
};
}
Modified: vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc?rev=196290&r1=196289&r2=196290&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc Tue Dec 3 09:52:52 2013
@@ -101,9 +101,6 @@ J3CodeGen::J3CodeGen(vmkit::BumpAllocato
generateNative();
else
generateJava();
-
- loader->pm()->run(*llvmFunction());
- vm->ee()->recompileAndRelinkFunction(llvmFunction());
}
J3CodeGen::~J3CodeGen() {
@@ -127,10 +124,6 @@ void J3CodeGen::destroy(J3CodeGen* codeG
vmkit::BumpAllocator::destroy(allocator);
}
-uint8_t* J3CodeGen::fnPtr() {
- return (uint8_t*)vm->ee()->getPointerToFunction(llvmFunction());
-}
-
uint32_t J3CodeGen::wideReadU1() {
if(isWide) {
isWide = 0;
Modified: vmkit/branches/mcjit/lib/j3/vm/j3method.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3method.cc?rev=196290&r1=196289&r2=196290&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3method.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3method.cc Tue Dec 3 09:52:52 2013
@@ -60,8 +60,11 @@ void* J3Method::fnPtr() {
J3CodeGen* codeGen = J3CodeGen::create(this);
_llvmFunction = codeGen->llvmFunction();
- _fnPtr = codeGen->fnPtr();
J3CodeGen::destroy(codeGen);
+
+ cl()->loader()->pm()->run(*_llvmFunction);
+ llvm::ExecutionEngine* ee = cl()->loader()->vm()->ee();
+ _fnPtr = (uint8_t*)ee->recompileAndRelinkFunction(_llvmFunction);
}
return _fnPtr;
More information about the vmkit-commits
mailing list