You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Egor Pasko (JIRA)" <ji...@apache.org> on 2006/11/14 13:56:37 UTC

[jira] Created: (HARMONY-2184) [drlvm][jit][opt] "syncopt" optimization pass makes exit node unreachable from an empty infinite loop

[drlvm][jit][opt] "syncopt" optimization pass makes exit node unreachable from an empty infinite loop
-----------------------------------------------------------------------------------------------------

                 Key: HARMONY-2184
                 URL: http://issues.apache.org/jira/browse/HARMONY-2184
             Project: Harmony
          Issue Type: Bug
          Components: DRLVM
         Environment: any
            Reporter: Egor Pasko
            Priority: Minor


to reproduce:
1. apply HARMONY-2115 patch // so that "syncopt" is not broken trivially
2. put "syncopt,dce,uce," just before "statprof" in the opt.emconf file // no quotes
3. run ThreadTest on OPT with logging for the "testHoldsLock_True" method:
$DRLVM -Djit.p.filter=java/lang/ThreadTest::testHoldsLock_True -Djit.p.arg.log=ct,irdump,dotdump -Xem:opt -Xbootclasspath/a:$classlib/depends/jars/junit_3.8.2/junit.jar:$vm/build/lnx_ia32_gcc_debug/semis/kernel.tests/classes junit.textui.TestRunner java.lang.ThreadTest

it will fail during compilation of "testHoldsLock_True" method. Then you can find the root cause in the log file:
log/CS_OPT/java_lang_ThreadTest/testHoldsLock_True()V/ct.log
after "syncopt" stage ends (__STAGE_END__:  [...] stageTag=syncopt) basic block "L95" has only one out-edge that leads to "L95" itself:

Block L95:
  Predecessors: C94 L95
  Successors: L95
  I322:L95:
  GOTO L95

block number can vary, but you can see the node with exit node not reachable in the dot file:
log/CS_OPT/java_lang_ThreadTest/testHoldsLock_True()V/38.statprof.before.dot

on linux it can be converted to a PNG image: 
dot -Tpng 38.statprof.before.dot > 38.statprof.before.dot.png

that kind of a CFG is not supported by CG and many other components and considered invalid, 
so the optimization pass should be fixed (or removed from the codebase)

when fixed, ThreadTest should NOT fail by assertion with jitrino built in debug mode (now it does)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira