You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by va...@apache.org on 2007/04/10 11:12:25 UTC
svn commit: r527065 - in /harmony/enhanced/drlvm/trunk/vm:
jitrino/config/em64t/server.emconf
jitrino/src/codegenerator/ia32/Ia32IRManager.cpp
vmcore/src/kernel_classes/native/org_apache_harmony_drlvm_VMHelperFastPath.cpp
Author: varlax
Date: Tue Apr 10 02:12:24 2007
New Revision: 527065
URL: http://svn.apache.org/viewvc?view=rev&rev=527065
Log:
Applied HARMONY-3587 [drlvm][em64t][jit] Enabling vmhelper inlining for EM64T server mode
Modified:
harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server.emconf
harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32IRManager.cpp
harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/native/org_apache_harmony_drlvm_VMHelperFastPath.cpp
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server.emconf?view=diff&rev=527065&r1=527064&r2=527065
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server.emconf Tue Apr 10 02:12:24 2007
@@ -62,7 +62,7 @@
-XDjit.SD2_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
--XDjit.SD2_OPT.path.optimizer=ssa,simplify,dce,uce,devirt_virtual,edge_annotate,unguard,devirt_intf,inline,uce,purge,simplify,dce,uce,so2-,simplify,dce,uce,escape,hvn,dce,uce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,lower,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,abcd,dce,uce,gcm,dessa,fastArrayFill,statprof,markglobals
+-XDjit.SD2_OPT.path.optimizer=ssa,simplify,dce,uce,devirt_virtual,edge_annotate,unguard,devirt_intf,inline,uce,purge,simplify,dce,uce,so2-,simplify,dce,uce,escape,hvn,dce,uce,inline_helpers,purge,simplify,uce,dce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,lower,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,abcd,dce,uce,gcm,dessa,fastArrayFill,statprof,markglobals
-XDjit.SD2_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l-,early_prop-,itrace-,native,cg_fastArrayFill,constraints,dce2,regalloc,spillgen,layout,copy,rce-,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
-XDjit.SD2_OPT.path.dce1=cg_dce
-XDjit.SD2_OPT.path.dce2=cg_dce
@@ -88,6 +88,47 @@
-XDjit.SD2_OPT.SD2_OPT_inliner_pipeline.arg.devirt_intf.devirt_virtual_calls=false
+#helper inliner configuration
+-XDjit.SD2_OPT.SD2_OPT_helper_inliner_pipeline.filter=-
+-XDjit.SD2_OPT.SD2_OPT_helper_inliner_pipeline.path=ssa
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.pipeline=SD2_OPT_helper_inliner_pipeline
+
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.newObj=on
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.newObj_className=org/apache/harmony/drlvm/gc_cc/GCHelper
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.newObj_methodName=alloc
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.newObj_hotnessPercent=1
+
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.newArray=on
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.newArray_className=org/apache/harmony/drlvm/gc_cc/GCHelper
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.newArray_methodName=allocArray
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.newArray_hotnessPercent=1
+
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.objMonEnter=on
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.objMonEnter_className=org/apache/harmony/drlvm/thread/ThreadHelper
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.objMonEnter_methodName=monitorEnterUseReservation
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.objMonEnter_hotnessPercent=1
+
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.objMonExit=on
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.objMonExit_className=org/apache/harmony/drlvm/thread/ThreadHelper
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.objMonExit_methodName=monitorExit
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.objMonExit_hotnessPercent=1
+
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.ldInterface=off
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.ldInterface_className=org/apache/harmony/drlvm/VMHelperFastPath
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.ldInterface_methodName=getInterfaceVTable3
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.ldInterface_hotnessPercent=1
+
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.checkCast=off
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.checkCast_className=org/apache/harmony/drlvm/VMHelperFastPath
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.checkCast_methodName=checkCast
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.checkCast_hotnessPercent=1
+
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.instanceOf=off
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.instanceOf_className=org/apache/harmony/drlvm/VMHelperFastPath
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.instanceOf_methodName=instanceOf
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.instanceOf_hotnessPercent=1
+
+
-XDjit.SD2_OPT.arg.codegen.dce1.early=yes
-XDjit.SD2_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
-XDjit.SD2_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
@@ -95,3 +136,16 @@
#system properties
-Djava.compiler=server
+
+#GC magics support
+-Dvm.components.gc_cc.startupclass=org.apache.harmony.drlvm.gc_cc.GCHelper
+-XDvm.component.classpath.gc_cc=gc_cc.jar
+
+#TM properties
+-Dvm.components.hythr.startupclass=org.apache.harmony.drlvm.thread.ThreadHelper
+-XDvm.component.classpath.hythr=hythr.jar
+
+#VM helpers
+-Dvm.components.vmcore1.startupclass=org.apache.harmony.drlvm.VMHelper
+-Dvm.components.vmcore2.startupclass=org.apache.harmony.drlvm.VMHelperFastPath
+
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32IRManager.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32IRManager.cpp?view=diff&rev=527065&r1=527064&r2=527065
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32IRManager.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32IRManager.cpp Tue Apr 10 02:12:24 2007
@@ -2232,8 +2232,7 @@
bool IRManager::isGCSafePoint(const Inst* inst) {
if (inst->getMnemonic() == Mnemonic_CALL) {
const CallInst* callInst = (const CallInst*)inst;
- Opnd* callTarget = callInst->getOpnd(callInst->getTargetOpndIndex());
- Opnd::RuntimeInfo * rt = callTarget->isPlacedIn(OpndKind_Immediate)?callTarget->getRuntimeInfo():NULL;
+ Opnd::RuntimeInfo * rt = callInst->getRuntimeInfo();
bool isInternalHelper = rt && rt->getKind() == Opnd::RuntimeInfo::Kind_InternalHelperAddress;
bool isNonGCVMHelper = false;
if (!isInternalHelper) {
Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/native/org_apache_harmony_drlvm_VMHelperFastPath.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/native/org_apache_harmony_drlvm_VMHelperFastPath.cpp?view=diff&rev=527065&r1=527064&r2=527065
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/native/org_apache_harmony_drlvm_VMHelperFastPath.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/kernel_classes/native/org_apache_harmony_drlvm_VMHelperFastPath.cpp Tue Apr 10 02:12:24 2007
@@ -30,28 +30,29 @@
JNIEXPORT jint JNICALL Java_org_apache_harmony_drlvm_VMHelperFastPath_getVtableIntfTypeOffset(JNIEnv *e, jclass c, jint i)
{
-#if defined (_EM64T_) || defined (_IPF_)
+#if defined (_IPF_)
assert(0);
return 0;
#else
assert(i>=0 && i<=2);
- if (i==0) return (jint)&((VTable*)0)->intfc_class_0;
- if (i==1) return (jint)&((VTable*)0)->intfc_class_1;
- return (jint)&((VTable*)0)->intfc_class_2;
+ //NOTE: use (jint)(POINTER_SIZE_INT) double cast here to avoid warnings
+ if (i==0) return (jint)(POINTER_SIZE_INT)&((VTable*)0)->intfc_class_0;
+ if (i==1) return (jint)(POINTER_SIZE_INT)&((VTable*)0)->intfc_class_1;
+ return (jint)(POINTER_SIZE_INT)&((VTable*)0)->intfc_class_2;
#endif
}
JNIEXPORT jint JNICALL Java_org_apache_harmony_drlvm_VMHelperFastPath_getVtableIntfTableOffset(JNIEnv *e, jclass c, jint i)
{
-#if defined (_EM64T_) || defined (_IPF_)
+#if defined (_IPF_)
assert(0);
return 0;
#else
assert(i>=0 && i<=2);
- if (i==0) return (jint)&((VTable*)0)->intfc_table_0;
- if (i==1) return (jint)&((VTable*)0)->intfc_table_1;
- return (jint)&((VTable*)0)->intfc_table_2;
+ if (i==0) return (jint)(POINTER_SIZE_INT)&((VTable*)0)->intfc_table_0;
+ if (i==1) return (jint)(POINTER_SIZE_INT)&((VTable*)0)->intfc_table_1;
+ return (jint)(POINTER_SIZE_INT)&((VTable*)0)->intfc_table_2;
return 0;
#endif
}