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 2007/12/12 11:20:25 UTC

svn commit: r603534 - in /harmony/enhanced/drlvm/trunk: src/test/regression/excludes/ vm/jitrino/src/optimizer/

Author: mfursov
Date: Wed Dec 12 02:20:23 2007
New Revision: 603534

URL: http://svn.apache.org/viewvc?rev=603534&view=rev
Log:
Fix for HARMONY-5290 [drlvm][jit][opt] SIGSEGV in JIT code
Turning OFF changes introduced with HARMONY-4785 [drlvm][jit][opt] EHWA asserts in server_static mode. It won't go into M4, excluding regression test


Modified:
    harmony/enhanced/drlvm/trunk/src/test/regression/excludes/exclude.linux.x86
    harmony/enhanced/drlvm/trunk/src/test/regression/excludes/exclude.linux.x86_64
    harmony/enhanced/drlvm/trunk/src/test/regression/excludes/exclude.windows.x86
    harmony/enhanced/drlvm/trunk/src/test/regression/excludes/exclude.windows.x86_64
    harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/FlowGraph.cpp
    harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/optimizer.cpp

Modified: harmony/enhanced/drlvm/trunk/src/test/regression/excludes/exclude.linux.x86
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/src/test/regression/excludes/exclude.linux.x86?rev=603534&r1=603533&r2=603534&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/src/test/regression/excludes/exclude.linux.x86 (original)
+++ harmony/enhanced/drlvm/trunk/src/test/regression/excludes/exclude.linux.x86 Wed Dec 12 02:20:23 2007
@@ -0,0 +1,2 @@
+# Check corresponding JIRA for details
+H4785

Modified: harmony/enhanced/drlvm/trunk/src/test/regression/excludes/exclude.linux.x86_64
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/src/test/regression/excludes/exclude.linux.x86_64?rev=603534&r1=603533&r2=603534&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/src/test/regression/excludes/exclude.linux.x86_64 (original)
+++ harmony/enhanced/drlvm/trunk/src/test/regression/excludes/exclude.linux.x86_64 Wed Dec 12 02:20:23 2007
@@ -4,3 +4,5 @@
 H4265
 # Test crashes on SOE
 H4292
+# Check corresponding JIRA for details
+H4785

Modified: harmony/enhanced/drlvm/trunk/src/test/regression/excludes/exclude.windows.x86
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/src/test/regression/excludes/exclude.windows.x86?rev=603534&r1=603533&r2=603534&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/src/test/regression/excludes/exclude.windows.x86 (original)
+++ harmony/enhanced/drlvm/trunk/src/test/regression/excludes/exclude.windows.x86 Wed Dec 12 02:20:23 2007
@@ -0,0 +1,2 @@
+# Check corresponding JIRA for details
+H4785

Modified: harmony/enhanced/drlvm/trunk/src/test/regression/excludes/exclude.windows.x86_64
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/src/test/regression/excludes/exclude.windows.x86_64?rev=603534&r1=603533&r2=603534&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/src/test/regression/excludes/exclude.windows.x86_64 (original)
+++ harmony/enhanced/drlvm/trunk/src/test/regression/excludes/exclude.windows.x86_64 Wed Dec 12 02:20:23 2007
@@ -4,3 +4,5 @@
 H4265
 # Test fails without any diagnstics with exit code 128
 H4292
+# Check corresponding JIRA for details
+H4785

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/FlowGraph.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/FlowGraph.cpp?rev=603534&r1=603533&r2=603534&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/FlowGraph.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/FlowGraph.cpp Wed Dec 12 02:20:23 2007
@@ -908,7 +908,7 @@
     Edges backedges(tmpMM);
     Edges edgesToRemove(tmpMM);
     for (Nodes::const_iterator it = nodes.begin(), end = nodes.end(); it!=end; ++it) {
-       Node* node = *it;
+        Node* node = *it;
         Node* head = lt->getLoopHeader(node, false);
         if (head == NULL) {
             continue;
@@ -935,6 +935,16 @@
             }
             loopHeadToDispatchMap[head] = dispatch;
             edgesToRemove.push_back(exceptionEdge);
+            if (node == head) {
+                Node* parentHead = lt->getLoopHeader(head, true);
+                if (parentHead && loopHeadToDispatchMap.find(parentHead) == loopHeadToDispatchMap.end()) {
+                    while (lt->getLoopHeader(dispatch, false) == parentHead) {
+                        dispatch = dispatch->getExceptionEdgeTarget();
+                        assert(dispatch);
+                    }
+                    loopHeadToDispatchMap[parentHead] = dispatch;
+                }
+            }
         }
     }
     

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/optimizer.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/optimizer.cpp?rev=603534&r1=603533&r2=603534&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/optimizer.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/optimizer.cpp Wed Dec 12 02:20:23 2007
@@ -176,7 +176,7 @@
     //classic_abcd
     optimizerFlags.dump_abcd_stats = getBoolArg("dump_abcd_stats", false);
 
-    optimizerFlags.rept_aggressive= getBoolArg("rept_aggressive", false);
+    optimizerFlags.rept_aggressive= getBoolArg("rept_aggressive", true);
 
     optimizerFlags.abcdFlags = new (mm) AbcdFlags;
     memset(optimizerFlags.abcdFlags, sizeof(AbcdFlags), 0);