[vmkit-commits] [vmkit] r200851 - Cleanup the code.

Gael Thomas gael.thomas at lip6.fr
Wed Feb 5 08:38:29 PST 2014


Author: gthomas
Date: Wed Feb  5 10:38:29 2014
New Revision: 200851

URL: http://llvm.org/viewvc/llvm-project?rev=200851&view=rev
Log:
Cleanup the code.

Modified:
    vmkit/branches/mcjit/include/j3/j3codegen.h
    vmkit/branches/mcjit/include/j3/j3object.h
    vmkit/branches/mcjit/include/vmkit/thread.h
    vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc
    vmkit/branches/mcjit/lib/j3/vm/j3codegenexception.cc
    vmkit/branches/mcjit/lib/vmkit/inliner.cc

Modified: vmkit/branches/mcjit/include/j3/j3codegen.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3codegen.h?rev=200851&r1=200850&r2=200851&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3codegen.h (original)
+++ vmkit/branches/mcjit/include/j3/j3codegen.h Wed Feb  5 10:38:29 2014
@@ -132,7 +132,6 @@ namespace j3 {
 		void                monitorExit(llvm::Value* obj);
 
 		llvm::CallInst*     isAssignableTo(llvm::Value* obj, J3ObjectType* type);
-		void                inlineCall(llvm::CallInst* call);
 		void                instanceof(llvm::Value* obj, J3ObjectType* type);
 		void                checkCast(llvm::Value* obj, J3ObjectType* type);
 
@@ -177,7 +176,6 @@ namespace j3 {
 		void                selectExceptionNode(uint32_t idx);
 
 		void                translate();
-		void                z_translate();
 
 		void                initExceptionNode(J3ExceptionNode** pnode, uint32_t pc, J3ExceptionNode* node);
 		void                addToExceptionNode(J3ExceptionNode* node, J3ExceptionEntry* entry);

Modified: vmkit/branches/mcjit/include/j3/j3object.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3object.h?rev=200851&r1=200850&r2=200851&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3object.h (original)
+++ vmkit/branches/mcjit/include/j3/j3object.h Wed Feb  5 10:38:29 2014
@@ -112,18 +112,17 @@ namespace j3 {
 
 		J3Object(); /* never directly allocate an object */
 
+		static bool          isUnlocked(uintptr_t header) __attribute__((always_inline)) { return (header & 7) == 1; }
+		static bool          isInflated(uintptr_t header) __attribute__((always_inline)) { return (header & 3) == 2; }
+		static bool          isStackLocked(uintptr_t header) __attribute__((always_inline)) { return !(header & 3); }
+		static J3LockRecord* asLockRecord(uintptr_t header) __attribute__((always_inline)) { return (J3LockRecord*)header; }
+		static J3Monitor*    asMonitor(uintptr_t header) __attribute__((always_inline)) { return (J3Monitor*)(header & ~3); }
+
 		bool       isLockOwner();
 		J3Monitor* inflate();
 		uint32_t   hashCode();
-
-		static bool          isUnlocked(uintptr_t header) { return (header & 7) == 1; }
-		static bool          isInflated(uintptr_t header) { return (header & 3) == 2; }
-		static bool          isStackLocked(uintptr_t header) { return !(header & 3); }
-		static J3LockRecord* asLockRecord(uintptr_t header) { return (J3LockRecord*)header; }
-		static J3Monitor*    asMonitor(uintptr_t header) { return (J3Monitor*)(header & ~3); }
-
-		void monitorEnter(J3LockRecord* lockRecord) __attribute__((always_inline));
-		void monitorExit() __attribute__((always_inline));
+		void       monitorEnter(J3LockRecord* lockRecord) __attribute__((always_inline));
+		void       monitorExit() __attribute__((always_inline));
 
 		static J3Object* allocate(J3VirtualTable* vt, uintptr_t n);
 		static J3Object* doNew(J3Class* cl);

Modified: vmkit/branches/mcjit/include/vmkit/thread.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/vmkit/thread.h?rev=200851&r1=200850&r2=200851&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/vmkit/thread.h (original)
+++ vmkit/branches/mcjit/include/vmkit/thread.h Wed Feb  5 10:38:29 2014
@@ -33,9 +33,9 @@ namespace vmkit {
 
 		VMKit* vm() { return _vm; }
 
-		static uintptr_t getThreadMask();
-		static Thread*   get(void* ptr);
-		static Thread*   get();
+		static uintptr_t getThreadMask() __attribute__((always_inline));
+		static Thread*   get(void* ptr) __attribute__((always_inline));
+		static Thread*   get() __attribute__((always_inline));
 
 		bool registerSignal(int n, sa_action_t handler);
 

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=200851&r1=200850&r2=200851&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc Wed Feb  5 10:38:29 2014
@@ -357,7 +357,7 @@ void J3CodeGen::invokeVirtual(uint32_t i
 	J3Method*     target = cl->methodAt(idx, 0);
 
 	if(J3Cst::isFinal(target->cl()->access()) || J3Cst::isFinal(target->cl()->access()))
-		invoke(0, target, buildFunction(target)); /* do not remove this optimization */
+		invoke(0, target, buildFunction(target)); /* do not remove this optimization, mandatory for mmtk */
 	else {
 		J3Signature*  type = target->signature();
 		llvm::Value*  funcEntry = funcEntry = builder.getInt32(target->index());
@@ -536,11 +536,6 @@ llvm::CallInst* J3CodeGen::isAssignableT
 															 vtType);
 }
 
-void J3CodeGen::inlineCall(llvm::CallInst* call) {
-	//llvm::InlineFunctionInfo ifi;
-	//llvm::InlineFunction(call, ifi, 0);
-}
-
 void J3CodeGen::instanceof(llvm::Value* obj, J3ObjectType* type) {
 	llvm::BasicBlock* after = forwardBranch("instanceof-after", codeReader->tell(), 0, 0);
 	llvm::BasicBlock* nok = newBB("instanceof-null");
@@ -557,7 +552,6 @@ void J3CodeGen::instanceof(llvm::Value*
 	llvm::CallInst* is = isAssignableTo(obj, type);
 	stack.push(builder.CreateZExt(is, builder.getInt32Ty()));
 	builder.CreateBr(after);
-	inlineCall(is);
 }
 
 void J3CodeGen::checkCast(llvm::Value* obj, J3ObjectType* type) {
@@ -578,7 +572,6 @@ void J3CodeGen::checkCast(llvm::Value* o
 
 		llvm::CallInst* is = isAssignableTo(obj, type);
 		builder.CreateCondBr(is, succeed, bbCheckCastFailed);
-		inlineCall(is);
 	}
 }
 
@@ -1558,39 +1551,6 @@ void J3CodeGen::explore() {
 }
 #endif
 
-void J3CodeGen::z_translate() {
-	bbRet = newBB("ret");
-	llvm::BasicBlock* landingPad = newBB("landing-pad");
-	llvm::Value* val = builder.CreateIntToPtr(llvm::ConstantInt::get(uintPtrTy, (uintptr_t)0x42),
-																						 vm->typeJ3ObjectPtr);	
-	builder.CreateInvoke(funcThrowException, bbRet, landingPad,
-												builder.CreateBitCast(val, funcThrowException->getFunctionType()->getParamType(0)));
-
-	builder.SetInsertPoint(landingPad);
-	llvm::LandingPadInst *caughtResult = builder.CreateLandingPad(vm->typeGXXException, 
-																																 funcGXXPersonality, 
-																																 1, 
-																																 "landing-pad");
-	caughtResult->addClause(gvTypeInfo);
-
-	llvm::Value* excp = builder.CreateBitCast(builder.CreateCall(funcCXABeginCatch, 
-																																 builder.CreateExtractValue(caughtResult, 0)),
-																						 vm->typeJ3ObjectPtr);
-	
-	builder.CreateCall(funcCXAEndCatch);
-
-	builder.CreateCall3(funcEchoDebugExecute, 
-											 builder.getInt32(-1), /* just to see my first exception :) */
-											 buildString("catching exception %p!\n"),
-											 excp);
-	builder.CreateBr(bbRet);
-
-	builder.SetInsertPoint(bbRet);
-	builder.CreateRetVoid();
-
-	llvmFunction->dump();
-}
-
 void J3CodeGen::generateJava() {
 	llvm::BasicBlock* entry = newBB("entry");
 	builder.SetInsertPoint(entry);

Modified: vmkit/branches/mcjit/lib/j3/vm/j3codegenexception.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3codegenexception.cc?rev=200851&r1=200850&r2=200851&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3codegenexception.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3codegenexception.cc Wed Feb  5 10:38:29 2014
@@ -59,7 +59,6 @@ void J3ExceptionNode::addEntry(J3CodeGen
 			llvm::CallInst* is = codeGen->isAssignableTo(codeGen->stack.top(0), 
 																									 codeGen->cl->classAt(entry->catchType));
 			codeGen->builder.CreateCondBr(is, entry->bb, curCheck);
-			codeGen->inlineCall(is);
 		} else {
 			codeGen->builder.CreateBr(entry->bb);
 			curCheck = 0;

Modified: vmkit/branches/mcjit/lib/vmkit/inliner.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/vmkit/inliner.cc?rev=200851&r1=200850&r2=200851&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/vmkit/inliner.cc (original)
+++ vmkit/branches/mcjit/lib/vmkit/inliner.cc Wed Feb  5 10:38:29 2014
@@ -261,6 +261,6 @@ namespace vmkit {
 #endif
 
 	llvm::FunctionPass* createFunctionInlinerPass(CompilationUnit* compiler, bool onlyAlwaysInline) {
-		return new FunctionInlinerPass(compiler, 25*256, onlyAlwaysInline); /* aka 25 instructions */
+		return new FunctionInlinerPass(compiler, 50*256, onlyAlwaysInline); /* aka 50 llvm instructions */
 	}
 }





More information about the vmkit-commits mailing list