[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