You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by mf...@apache.org on 2008/01/26 15:29:31 UTC

svn commit: r615453 - in /harmony/enhanced/drlvm/trunk/vm: em/src/ jitrino/config/em64t/ jitrino/config/ia32/ jitrino/src/codegenerator/ia32/

Author: mfursov
Date: Sat Jan 26 06:29:29 2008
New Revision: 615453

URL: http://svn.apache.org/viewvc?rev=615453&view=rev
Log:
Fix for HARMONY-5417 [drlvm][em] chain filters should accept both '::' and '.' class/method delimiters
Fix for HARMONY-5425 [drlvm][jit][opt] Spillgen ignores initial constraints


Modified:
    harmony/enhanced/drlvm/trunk/vm/em/src/DrlEMImpl.cpp
    harmony/enhanced/drlvm/trunk/vm/em/src/MTable.cpp
    harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/client.emconf
    harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server.emconf
    harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/client.emconf
    harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server.emconf
    harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32SpillGen.cpp

Modified: harmony/enhanced/drlvm/trunk/vm/em/src/DrlEMImpl.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/em/src/DrlEMImpl.cpp?rev=615453&r1=615452&r2=615453&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/em/src/DrlEMImpl.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/em/src/DrlEMImpl.cpp Sat Jan 26 06:29:29 2008
@@ -549,7 +549,7 @@
                     signature = method_get_descriptor(mh);
                     std::ostringstream msg;
                     msg <<"EM: compile start:["<<step->jitName.c_str()<<" n="<<n<<"] "
-                        <<className<<"::"<<methodName<<signature;
+                        <<className<<"."<<methodName<<signature;
                     INFO2(step->catName.c_str(), msg.str().c_str());
                 }
 
@@ -558,7 +558,7 @@
                 if (step->loggingEnabled) {
                     std::ostringstream msg;
                     msg << "EM: compile done:["<<step->jitName.c_str()<<" n="<<n<<": "
-                        <<(res ==JIT_SUCCESS ? "OK" : "FAILED")<<"] "<<className<<"::"<<methodName<<signature;
+                        <<(res ==JIT_SUCCESS ? "OK" : "FAILED")<<"] "<<className<<"."<<methodName<<signature;
                     INFO2(step->catName.c_str(), msg.str().c_str());
                 }
 
@@ -785,7 +785,7 @@
                         signature = method_get_descriptor(mp->mh);
                         std::ostringstream msg;
                         msg <<"EM: recompile start:["<<nextStep->jitName.c_str()<<" n="<<n<<"] "
-                            <<className<<"::"<<methodName<<signature;
+                            <<className<<"."<<methodName<<signature;
                         INFO2(nextStep->catName.c_str(), msg.str().c_str());
                     } 
 
@@ -794,7 +794,7 @@
                     if (nextStep->loggingEnabled) {
                         std::ostringstream msg;
                         msg << "EM: recompile done:["<<nextStep->jitName.c_str()<<" n="<<n<<": "
-                            <<(res ==JIT_SUCCESS ? "OK" : "FAILED")<<"] "<<className<<"::"<<methodName<<signature;
+                            <<(res ==JIT_SUCCESS ? "OK" : "FAILED")<<"] "<<className<<"."<<methodName<<signature;
                         INFO2(nextStep->catName.c_str(), msg.str().c_str());
                     }
 

Modified: harmony/enhanced/drlvm/trunk/vm/em/src/MTable.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/em/src/MTable.cpp?rev=615453&r1=615452&r2=615453&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/em/src/MTable.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/em/src/MTable.cpp Sat Jan 26 06:29:29 2008
@@ -78,16 +78,21 @@
         }
     } else {
         std::string className, methodName, signature;
-        size_t classEndPos=filterString.find("::");
+        size_t separatorWidth=1;
+        size_t classEndPos = filterString.find(".");
+        if (classEndPos == std::string::npos) {
+            separatorWidth = 2;
+            classEndPos = filterString.find("::");
+        }
         if (classEndPos == std::string::npos) {
             className = filterString;
         } else {
             className = filterString.substr(0, classEndPos);
-            size_t methodEndPos = filterString.find("(", classEndPos+2);
+            size_t methodEndPos = filterString.find("(", classEndPos+separatorWidth);
             if (methodEndPos==std::string::npos) {
-                methodName = filterString.substr(classEndPos+2);
+                methodName = filterString.substr(classEndPos+separatorWidth);
             } else {
-                methodName = filterString.substr(classEndPos+2, methodEndPos - (classEndPos+2));
+                methodName = filterString.substr(classEndPos+separatorWidth, methodEndPos - (classEndPos+separatorWidth));
                 signature = filterString.substr(methodEndPos);
             }
         }

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/client.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/client.emconf?rev=615453&r1=615452&r2=615453&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/client.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/client.emconf Sat Jan 26 06:29:29 2008
@@ -23,7 +23,7 @@
 # JET_CLINIT compiles only <clinit> methods, all other methods compiled with JET_DPGO 
 # which does entry/backedge instrumentation
 
-chain1.filter=+::<clinit>
+chain1.filter=+.<clinit>
 chain1.filter=-
 
 JET_CLINIT.file=jitrino

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?rev=615453&r1=615452&r2=615453&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server.emconf Sat Jan 26 06:29:29 2008
@@ -27,7 +27,7 @@
 chain1.jits=JET_CLINIT
 chain2.jits=SD1_OPT,SD2_OPT
 
-chain1.filter=+::<clinit>
+chain1.filter=+.<clinit>
 chain1.filter=-
 
 JET_CLINIT.file=jitrino

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/client.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/client.emconf?rev=615453&r1=615452&r2=615453&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/client.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/client.emconf Sat Jan 26 06:29:29 2008
@@ -23,7 +23,7 @@
 # JET_CLINIT compiles only <clinit> methods, all other methods compiled with JET_DPGO 
 # which does entry/backedge instrumentation
 
-chain1.filter=+::<clinit>
+chain1.filter=+.<clinit>
 chain1.filter=-
 
 JET_CLINIT.file=jitrino

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server.emconf?rev=615453&r1=615452&r2=615453&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server.emconf Sat Jan 26 06:29:29 2008
@@ -27,7 +27,7 @@
 chain1.jits=JET_CLINIT
 chain2.jits=SD1_OPT,SD2_OPT
 
-chain1.filter=+::<clinit>
+chain1.filter=+.<clinit>
 chain1.filter=-
 
 JET_CLINIT.file=jitrino

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32SpillGen.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32SpillGen.cpp?rev=615453&r1=615452&r2=615453&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32SpillGen.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32SpillGen.cpp Sat Jan 26 06:29:29 2008
@@ -1184,6 +1184,7 @@
     for (Inst::Opnds::iterator it = opnds.begin(); it != opnds.end(); it = opnds.next(it), ++itx)
     {
         ox = inst->getOpnd(it);
+        RegMask oxMask = ox->getConstraint(Opnd::ConstraintKind_Initial).getMask();
 
         RegMask rm = getRegMaskConstr(ox, cr);
         if ((mk & rm) != 0)
@@ -1195,7 +1196,7 @@
             unsigned mask = (1<<inst->getOpndCount())-1;
             Constraint cx = ((Inst*)inst)->getConstraint(it, mask, OpndSize_Default);
             RegMask used = usedRegs(opline.instx, opline.idx, need_load);
-            RegMask usable = (cx  & registers[opline.idx]).getMask() & ~mk;
+            RegMask usable = (cx  & registers[opline.idx]).getMask() & ~mk & oxMask;
             if ((usable & ~used) != 0)
             {
                 rx = findFree(usable & ~used, opline.idx, opline.instx);