harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mfur...@apache.org
Subject svn commit: r573596 - in /harmony/enhanced/drlvm/trunk/vm/jitrino: config/ia32/opt.emconf src/codegenerator/ia32/Ia32GCSafePoints.cpp
Date Fri, 07 Sep 2007 14:31:16 GMT
Author: mfursov
Date: Fri Sep  7 07:31:15 2007
New Revision: 573596

URL: http://svn.apache.org/viewvc?rev=573596&view=rev
Log:
Enabling lazy resolution mode in -Xem:opt execution mode


Modified:
    harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/opt.emconf
    harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32GCSafePoints.cpp

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/opt.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/opt.emconf?rev=573596&r1=573595&r2=573596&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/opt.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/opt.emconf Fri Sep  7 07:31:15 2007
@@ -22,6 +22,8 @@
 
 # Options to be passed to JIT
 
+-XX:jit.arg.lazyResolution=on
+
 -XX:jit.CS_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
 
 -XX:jit.CS_OPT.path.optimizer=ssa,devirt,inline,purge,simplify,dce,uce,lazyexc,throwopt,escape,dce,uce,memopt,simplify,dce,uce,lower,statprof,unroll,ssa,simplify,dce,uce,dessa,statprof

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32GCSafePoints.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32GCSafePoints.cpp?rev=573596&r1=573595&r2=573596&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32GCSafePoints.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32GCSafePoints.cpp Fri
Sep  7 07:31:15 2007
@@ -421,20 +421,27 @@
     }
 }
 
-static bool isStaticFieldPtrDefWithCall(Inst* inst) {
+static bool isStaticFieldPtrDef(Inst* inst, const StlSet<Opnd*>& staticFieldPtrs)
{
     if (inst->hasKind(Inst::Kind_CallInst)) {
         CallInst* callInst = (CallInst*)inst;
         Opnd::RuntimeInfo * rt = callInst->getRuntimeInfo();
         if (rt && rt->getKind() == Opnd::RuntimeInfo::Kind_HelperAddress
             && ((CompilationInterface::RuntimeHelperId)(POINTER_SIZE_INT)rt->getValue(0)
-                    == CompilationInterface::Helper_GetStaticFieldAddrWithResolve))
+            == CompilationInterface::Helper_GetStaticFieldAddrWithResolve))
         {
             return true;
         }
+    } else if (inst->getMnemonic() == Mnemonic_MOV) {
+        Opnd* fromOpnd = inst->getOpnd(1);
+        if (staticFieldPtrs.find(fromOpnd)!=staticFieldPtrs.end()) {
+            return true;
+        }
     }
     return false;
+
 }
 
+
 void GCSafePointsInfo::updatePairsOnInst(Inst* inst, GCSafePointPairs& res) {
     runLivenessFilter(inst, res);//filter pairs with dead mptrs from list
 
@@ -453,7 +460,7 @@
     if (!opndType->isObject() && !opndType->isManagedPtr()) {
         return;
     }
-    if (isStaticFieldPtrDefWithCall(inst)) {
+    if (isStaticFieldPtrDef(inst, staticMptrs)) {
         removePairByMPtrOpnd(res, opnd);
         staticMptrs.insert(opnd);
         return;



Mime
View raw message