[vmkit-commits] [vmkit] r200856 - Run the inlining pass even in AOT mode.

Gael Thomas gael.thomas at lip6.fr
Wed Feb 5 09:24:50 PST 2014


Author: gthomas
Date: Wed Feb  5 11:24:50 2014
New Revision: 200856

URL: http://llvm.org/viewvc/llvm-project?rev=200856&view=rev
Log:
Run the inlining pass even in AOT mode.

Modified:
    vmkit/branches/mcjit/include/j3/j3object.h
    vmkit/branches/mcjit/include/vmkit/compiler.h
    vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc
    vmkit/branches/mcjit/lib/j3/vm/j3codegenexception.cc
    vmkit/branches/mcjit/lib/j3/vm/j3method.cc
    vmkit/branches/mcjit/lib/mmtk/magic/lower-java-runtime.cc
    vmkit/branches/mcjit/lib/vmkit/compiler.cc

Modified: vmkit/branches/mcjit/include/j3/j3object.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3object.h?rev=200856&r1=200855&r2=200856&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3object.h (original)
+++ vmkit/branches/mcjit/include/j3/j3object.h Wed Feb  5 11:24:50 2014
@@ -80,9 +80,9 @@ namespace j3 {
 		uint32_t      offset() { return checker.offset; }
 		bool          isPrimaryChecker() { return checker.offset < J3TypeChecker::cacheOffset; }
 
-		bool          slowIsAssignableTo(J3VirtualTable* parent) __attribute__((always_inline));
-		bool          fastIsAssignableToPrimaryChecker(J3VirtualTable* parent, uint32_t parentOffset);
-		bool          fastIsAssignableToNonPrimaryChecker(J3VirtualTable* parent);
+		bool          slowIsAssignableTo(J3VirtualTable* parent) __attribute__((noinline));
+		bool          fastIsAssignableToPrimaryChecker(J3VirtualTable* parent, uint32_t parentOffset) __attribute__((always_inline));
+		bool          fastIsAssignableToNonPrimaryChecker(J3VirtualTable* parent) __attribute__((noinline));
 		bool          isAssignableTo(J3VirtualTable* parent);
 
 		J3Type*       type() const { return _type; }

Modified: vmkit/branches/mcjit/include/vmkit/compiler.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/vmkit/compiler.h?rev=200856&r1=200855&r2=200856&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/vmkit/compiler.h (original)
+++ vmkit/branches/mcjit/include/vmkit/compiler.h Wed Feb  5 11:24:50 2014
@@ -73,6 +73,7 @@ namespace vmkit {
 		BumpAllocator*          allocator() { return _allocator; }
 		llvm::ExecutionEngine*  ee() { return _ee; }
 
+		void                    prepareModule(llvm::Module* module);
 		void                    compileModule(llvm::Module* module);
 	};
 }

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=200856&r1=200855&r2=200856&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc Wed Feb  5 11:24:50 2014
@@ -118,6 +118,8 @@ J3CodeGen::J3CodeGen(vmkit::BumpAllocato
 			llvmFunction->dump();
 	}
 
+	loader->prepareModule(module);
+
 	uint32_t needsCaller = withCaller() && !signature->caller(access);
 
 	if(needsCaller)

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=200856&r1=200855&r2=200856&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3codegenexception.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3codegenexception.cc Wed Feb  5 11:24:50 2014
@@ -51,9 +51,9 @@ void J3ExceptionNode::addEntry(J3CodeGen
 
 	if(curCheck) { /* = 0 if I already have a finally */
 		codeGen->builder.SetInsertPoint(curCheck);
-		curCheck = codeGen->newBB("next-exception-check");
 
 		if(entry->catchType) {
+			curCheck = codeGen->newBB("next-exception-check");
 			codeGen->stack.metaStack[0] = codeGen->vm->typeJ3ObjectPtr;
 			codeGen->stack.topStack = 1;
 			llvm::CallInst* is = codeGen->isAssignableTo(codeGen->stack.top(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=200856&r1=200855&r2=200856&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3method.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3method.cc Wed Feb  5 11:24:50 2014
@@ -52,7 +52,7 @@ vmkit::CompilationUnit* J3Method::unit()
 }
 
 uint64_t J3Method::inlineWeight() {
-	if(1 && J3Thread::get()->vm()->options()->enableInlining)
+	if(J3Thread::get()->vm()->options()->enableInlining)
 		return vmkit::Symbol::inlineWeight();
 	else
 		return (uint64_t)-1;

Modified: vmkit/branches/mcjit/lib/mmtk/magic/lower-java-runtime.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/mmtk/magic/lower-java-runtime.cc?rev=200856&r1=200855&r2=200856&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/mmtk/magic/lower-java-runtime.cc (original)
+++ vmkit/branches/mcjit/lib/mmtk/magic/lower-java-runtime.cc Wed Feb  5 11:24:50 2014
@@ -39,14 +39,14 @@ namespace {
 		for(llvm::Module::global_iterator it = module.global_begin(); it!=module.global_end(); it++) {
 			llvm::GlobalValue* gv = it;
 			
-			fprintf(stderr, "Global: %s\n", gv->getName().data());
+			//fprintf(stderr, "Global: %s\n", gv->getName().data());
 		}
 
 		for(llvm::Module::iterator it = module.begin(); it!=module.end(); it++) {
 			llvm::Function* function = it;
 			
-			if(!strncmp(function->getName().data(), "j3_java", 7))
-				fprintf(stderr, "processing %s\n", function->getName().data());
+			//if(!strncmp(function->getName().data(), "j3_java", 7))
+			//fprintf(stderr, "processing %s\n", function->getName().data());
 		}
 
   return Changed;

Modified: vmkit/branches/mcjit/lib/vmkit/compiler.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/vmkit/compiler.cc?rev=200856&r1=200855&r2=200856&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/vmkit/compiler.cc (original)
+++ vmkit/branches/mcjit/lib/vmkit/compiler.cc Wed Feb  5 11:24:50 2014
@@ -88,9 +88,10 @@ CompilationUnit::CompilationUnit(BumpAll
 
 	if(runInlinePass || onlyAlwaysInline)
 		pm->add(vmkit::createFunctionInlinerPass(this, onlyAlwaysInline));
+
+#if 0
 	pm->add(llvm::createCFGSimplificationPass());      // Clean up disgusting code
 
-#if 1
 	pm->add(llvm::createPromoteMemoryToRegisterPass());// Kill useless allocas
 	pm->add(llvm::createInstructionCombiningPass()); // Cleanup for scalarrepl.
 	pm->add(llvm::createScalarReplAggregatesPass()); // Break up aggregate allocas
@@ -170,8 +171,11 @@ uint64_t CompilationUnit::getSymbolAddre
 	return (uint64_t)(uintptr_t)getSymbol(System::mcjitSymbol(Name.c_str()))->getSymbolAddress();
 }
 
-void CompilationUnit::compileModule(llvm::Module* module) {
+void CompilationUnit::prepareModule(llvm::Module* module) {
 	pm->run(*module);
+}
+
+void CompilationUnit::compileModule(llvm::Module* module) {
 	ee()->addModule(module);
 	ee()->finalizeObject();
 





More information about the vmkit-commits mailing list