[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