harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From var...@apache.org
Subject svn commit: r521135 - /harmony/enhanced/drlvm/trunk/vm/jitrino/src/dynopt/EdgeProfiler.cpp
Date Thu, 22 Mar 2007 06:35:20 GMT
Author: varlax
Date: Wed Mar 21 23:35:19 2007
New Revision: 521135

URL: http://svn.apache.org/viewvc?view=rev&rev=521135
Log:
Various fixes in EdgeProfiler.cpp (HARMONY-3464, HARMONY-3426)

Modified:
    harmony/enhanced/drlvm/trunk/vm/jitrino/src/dynopt/EdgeProfiler.cpp

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/dynopt/EdgeProfiler.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/dynopt/EdgeProfiler.cpp?view=diff&rev=521135&r1=521134&r2=521135
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/dynopt/EdgeProfiler.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/dynopt/EdgeProfiler.cpp Wed Mar 21 23:35:19
2007
@@ -110,7 +110,7 @@
     
     ProfilingInterface* pi = irm.getProfilingInterface();
     if (!pi->hasMethodProfile(ProfileType_Edge, md, JITProfilingRole_GEN)) {
-        pi->createEdgeMethodProfile(mm , md,  (uint32)counterKeys.size(),  (uint32*)&counterKeys.front(),
_checkSum);
+        pi->createEdgeMethodProfile(mm , md,  (uint32)counterKeys.size(),  counterKeys.empty()?NULL:(uint32*)&counterKeys.front(),
_checkSum);
     }
 
     irm.getCompilationInterface().unlockMethodData();
@@ -509,12 +509,14 @@
 }
 
 static bool hasCatch( Node* node ) {
-    Inst* first = (Inst*)node->getFirstInst();
-    assert(first->isLabel());
-    if (first->getNextInst()!=NULL && first->getNextInst()->getOpcode()
== Op_Catch) {
-        return true;
-    }
-    return false;
+    Inst* inst = (Inst*)node->getFirstInst();
+    assert(inst->isLabel());
+    // Op_Catch is allowed to be not in the second position only (after label inst) 
+    // but in arbitrary position if Op_Phi insts present.
+    do {
+        inst = inst->getNextInst();
+    } while (inst!=NULL && inst->getOpcode() == Op_Phi);
+    return inst != NULL && inst->getOpcode() == Op_Catch;
 }
 
 /*static bool hasCounter( Node* node ) {



Mime
View raw message