[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