[vmkit-commits] [vmkit] r199635 - Prepare the removal of the bb field from J3CodeGen.
Gael Thomas
gael.thomas at lip6.fr
Mon Jan 20 02:04:21 PST 2014
Author: gthomas
Date: Mon Jan 20 04:04:21 2014
New Revision: 199635
URL: http://llvm.org/viewvc/llvm-project?rev=199635&view=rev
Log:
Prepare the removal of the bb field from J3CodeGen.
Modified:
vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc
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=199635&r1=199634&r2=199635&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc Mon Jan 20 04:04:21 2014
@@ -96,10 +96,6 @@ J3CodeGen::J3CodeGen(vmkit::BumpAllocato
#endif
if(withMethod) {
- bb = newBB("entry");
-
- builder.SetInsertPoint(bb);
-
if(J3Cst::isNative(method->access()))
generateNative();
else
@@ -372,7 +368,7 @@ llvm::Value* J3CodeGen::nullCheck(llvm::
builder.CreateCondBr(builder.CreateIsNotNull(obj), succeed, bbNullCheckFailed);
bb = succeed;
- builder.SetInsertPoint(bb);
+ builder.SetInsertPoint(succeed);
}
return obj;
@@ -399,7 +395,7 @@ void J3CodeGen::invoke(uint32_t access,
llvm::BasicBlock* after = newBB("invoke-after");
res = builder.CreateInvoke(func, after, exceptions.nodes[curExceptionNode]->landingPad, args);
bb = after;
- builder.SetInsertPoint(bb);
+ builder.SetInsertPoint(after);
} else {
res = builder.CreateCall(func, args);
}
@@ -642,8 +638,6 @@ void J3CodeGen::checkCast(llvm::Value* o
llvm::Value* res = isAssignableTo(obj, type);
builder.CreateCondBr(res, succeed, bbCheckCastFailed);
-
- builder.SetInsertPoint(bb);
}
void J3CodeGen::floatToInteger(J3Type* ftype, J3Type* itype) {
@@ -865,7 +859,6 @@ void J3CodeGen::translate() {
exceptions.dump(vm->options()->debugTranslate-1);
stack.topStack = 0;
- builder.SetInsertPoint(bb);
_onEndPoint();
closeBB = 1;
@@ -907,7 +900,7 @@ void J3CodeGen::translate() {
if(opInfos[javaPC].bb) {
bb = opInfos[javaPC].bb;
- builder.SetInsertPoint(bb);
+ builder.SetInsertPoint(opInfos[javaPC].bb);
//printf("Meta stack before: %p\n", metaStack);
if(opInfos[javaPC].metaStack) {
stack.metaStack = opInfos[javaPC].metaStack;
@@ -919,10 +912,10 @@ void J3CodeGen::translate() {
//printf("Meta stack after: %p\n", metaStack);
}
- if(opInfos[javaPC].bb || bb->empty())
- opInfos[javaPC].insn = bb->begin();
+ if(opInfos[javaPC].bb || builder.GetInsertBlock()->empty())
+ opInfos[javaPC].insn = builder.GetInsertBlock()->begin();
else
- opInfos[javaPC].insn = bb->end()->getPrevNode();
+ opInfos[javaPC].insn = builder.GetInsertBlock()->end()->getPrevNode();
bc = codeReader->readU1();
@@ -1662,6 +1655,11 @@ void J3CodeGen::z_translate() {
}
void J3CodeGen::generateJava() {
+ llvm::BasicBlock* entry = newBB("entry");
+ builder.SetInsertPoint(entry);
+
+ bb = entry;
+
J3Attribute* attr = method->attributes()->lookup(vm->codeAttribute);
if(!attr)
@@ -1743,6 +1741,9 @@ void J3CodeGen::generateJava() {
exceptions.read(&reader, codeLength);
pendingBranchs[topPendingBranchs++] = codeReader->tell();
+
+ builder.SetInsertPoint(entry);
+
translate();
locals.killUnused();
@@ -1803,6 +1804,9 @@ llvm::Function* J3CodeGen::lookupNative(
}
void J3CodeGen::generateNative() {
+ bb = newBB("entry");
+ builder.SetInsertPoint(bb);
+
std::vector<llvm::Value*> args;
llvm::Function* nat = lookupNative();
More information about the vmkit-commits
mailing list