[vmkit-commits] [vmkit] r180450 - Add VTAllocate intrinsic to make distinction between customized and generic gcmalloc.
Peter Senna Tschudin
peter.senna at gmail.com
Thu Apr 25 10:12:20 PDT 2013
Author: peter.senna
Date: Thu Apr 25 12:10:48 2013
New Revision: 180450
URL: http://llvm.org/viewvc/llvm-project?rev=180450&view=rev
Log:
Add VTAllocate intrinsic to make distinction between customized and generic gcmalloc.
(cherry picked from commit 645b0664833cb4ef2a4ec1a36f14bbf1aa95191b)
Modified:
vmkit/trunk/include/j3/J3Intrinsics.h
vmkit/trunk/lib/j3/Compiler/J3Intrinsics.cpp
vmkit/trunk/lib/j3/Compiler/JavaJIT.cpp
vmkit/trunk/lib/j3/Compiler/JavaJITCompiler.cpp
vmkit/trunk/lib/j3/Compiler/JavaJITOpcodes.cpp
vmkit/trunk/lib/j3/Compiler/LowerConstantCalls.cpp
vmkit/trunk/mmtk/magic/LowerJavaRT.cpp
Modified: vmkit/trunk/include/j3/J3Intrinsics.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/include/j3/J3Intrinsics.h?rev=180450&r1=180449&r2=180450&view=diff
==============================================================================
--- vmkit/trunk/include/j3/J3Intrinsics.h (original)
+++ vmkit/trunk/include/j3/J3Intrinsics.h Thu Apr 25 12:10:48 2013
@@ -48,6 +48,9 @@ public:
llvm::Type* MutatorThreadType;
llvm::Type* J3DenseMapType;
+ llvm::Function* VTAllocateFunction;
+ llvm::Function* VTAllocateUnresolvedFunction;
+
llvm::Function* StartJNIFunction;
llvm::Function* EndJNIFunction;
llvm::Function* InterfaceLookupFunction;
Modified: vmkit/trunk/lib/j3/Compiler/J3Intrinsics.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/Compiler/J3Intrinsics.cpp?rev=180450&r1=180449&r2=180450&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/Compiler/J3Intrinsics.cpp (original)
+++ vmkit/trunk/lib/j3/Compiler/J3Intrinsics.cpp Thu Apr 25 12:10:48 2013
@@ -35,9 +35,9 @@ void J3Intrinsics::init(llvm::Module* mo
BaseIntrinsics::init(module);
// Overloading allocation function to use VTgcmalloc
- AllocateUnresolvedFunction = module->getFunction("VTgcmallocUnresolved");
- assert(AllocateUnresolvedFunction && "No allocateUnresolved function");
- AllocateFunction = module->getFunction("VTgcmalloc");
+ VTAllocateUnresolvedFunction = module->getFunction("VTgcmallocUnresolved");
+ assert(VTAllocateUnresolvedFunction && "No allocateUnresolved function");
+ VTAllocateFunction = module->getFunction("VTgcmalloc");
j3::llvm_runtime::makeLLVMModuleContents(module);
Modified: vmkit/trunk/lib/j3/Compiler/JavaJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/Compiler/JavaJIT.cpp?rev=180450&r1=180449&r2=180450&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/Compiler/JavaJIT.cpp (original)
+++ vmkit/trunk/lib/j3/Compiler/JavaJIT.cpp Thu Apr 25 12:10:48 2013
@@ -1884,8 +1884,8 @@ void JavaJIT::invokeNew(uint16 index) {
}
VT = new BitCastInst(VT, intrinsics->ptrType, "", currentBlock);
- Instruction* val = invoke(cl ? intrinsics->AllocateFunction :
- intrinsics->AllocateUnresolvedFunction,
+ Instruction* val = invoke(cl ? intrinsics->VTAllocateFunction :
+ intrinsics->VTAllocateUnresolvedFunction,
Size, VT, "", currentBlock);
addHighLevelType(val, cl ? cl : upcalls->OfObject);
Modified: vmkit/trunk/lib/j3/Compiler/JavaJITCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/Compiler/JavaJITCompiler.cpp?rev=180450&r1=180449&r2=180450&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/Compiler/JavaJITCompiler.cpp (original)
+++ vmkit/trunk/lib/j3/Compiler/JavaJITCompiler.cpp Thu Apr 25 12:10:48 2013
@@ -177,10 +177,10 @@ JavaJITCompiler::JavaJITCompiler(const s
// Set the pointer to methods that will be inlined, so that these methods
// do not get compiled by the JIT.
executionEngine->updateGlobalMapping(
- JavaIntrinsics.AllocateFunction, (void*)(word_t)VTgcmalloc);
- executionEngine->updateGlobalMapping(
JavaIntrinsics.AllocateFunction, (void*)(word_t)vmkitgcmalloc);
executionEngine->updateGlobalMapping(
+ JavaIntrinsics.VTAllocateFunction, (void*)(word_t)VTgcmalloc);
+ executionEngine->updateGlobalMapping(
JavaIntrinsics.ArrayWriteBarrierFunction, (void*)(word_t)arrayWriteBarrier);
executionEngine->updateGlobalMapping(
JavaIntrinsics.FieldWriteBarrierFunction, (void*)(word_t)fieldWriteBarrier);
Modified: vmkit/trunk/lib/j3/Compiler/JavaJITOpcodes.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/Compiler/JavaJITOpcodes.cpp?rev=180450&r1=180449&r2=180450&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/Compiler/JavaJITOpcodes.cpp (original)
+++ vmkit/trunk/lib/j3/Compiler/JavaJITOpcodes.cpp Thu Apr 25 12:10:48 2013
@@ -2177,7 +2177,7 @@ void JavaJIT::compileOpcodes(Reader& rea
BinaryOperator::CreateAdd(intrinsics->JavaArraySizeConstant, mult,
"", currentBlock);
TheVT = new BitCastInst(TheVT, intrinsics->ptrType, "", currentBlock);
- Instruction* res = invoke(intrinsics->AllocateFunction, size, TheVT, "",
+ Instruction* res = invoke(intrinsics->VTAllocateFunction, size, TheVT, "",
currentBlock);
Value* cast = new BitCastInst(res, intrinsics->JavaArrayType, "",
currentBlock);
Modified: vmkit/trunk/lib/j3/Compiler/LowerConstantCalls.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/Compiler/LowerConstantCalls.cpp?rev=180450&r1=180449&r2=180450&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/Compiler/LowerConstantCalls.cpp (original)
+++ vmkit/trunk/lib/j3/Compiler/LowerConstantCalls.cpp Thu Apr 25 12:10:48 2013
@@ -89,7 +89,7 @@ bool LowerConstantCalls::runOnFunction(F
(InsArg->getOpcode() == Instruction::Call ||
InsArg->getOpcode() == Instruction::Invoke)) {
CallSite Ca(Arg);
- if (Ca.getCalledValue() == intrinsics->AllocateFunction) {
+ if (Ca.getCalledValue() == intrinsics->VTAllocateFunction) {
Changed = true;
Cmp->replaceAllUsesWith(ConstantInt::getFalse(*Context));
Cmp->eraseFromParent();
Modified: vmkit/trunk/mmtk/magic/LowerJavaRT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/magic/LowerJavaRT.cpp?rev=180450&r1=180449&r2=180450&view=diff
==============================================================================
--- vmkit/trunk/mmtk/magic/LowerJavaRT.cpp (original)
+++ vmkit/trunk/mmtk/magic/LowerJavaRT.cpp Thu Apr 25 12:10:48 2013
@@ -135,13 +135,6 @@ bool LowerJavaRT::runOnModule(Module& M)
Ma->replaceAllUsesWith(NewFunction);
Ma->eraseFromParent();
-// // Replace vmkitgcmalloc with the allocator of MMTk objects in VMKit
-// F = M.getFunction("vmkitgcmalloc");
-//
-// F->replaceAllUsesWith(NewFunction);
-// F->eraseFromParent();
-
-
// Finally, remove GC info from the methods. They must not have any
// gcroot.
for (Module::iterator I = M.begin(), E = M.end(); I != E; I++) {
More information about the vmkit-commits
mailing list