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);