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
 }