harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Egor Pasko (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HARMONY-2196) [drlvm][jit][opt] loop optimizations fail (in server_static mode) if a dispatch node becomes a loop header for multiple loops
Date Wed, 15 Nov 2006 11:41:38 GMT
     [ http://issues.apache.org/jira/browse/HARMONY-2196?page=all ]

Egor Pasko updated HARMONY-2196:
--------------------------------

    Attachment: LoopExc.j

the bytecode jasmin source attached (LoopExc.j)

> [drlvm][jit][opt] loop optimizations fail (in server_static mode) if a dispatch node
becomes a loop header for multiple loops
> -----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-2196
>                 URL: http://issues.apache.org/jira/browse/HARMONY-2196
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: any
>            Reporter: Egor Pasko
>            Priority: Minor
>         Attachments: LoopExc.j
>
>
> the problem is $subj.
> to reproduce:
> (1)
> compile the synthetic bytecode (attached) with jasmin ([1]):
> java -jar jasmin.jar LoopExc.j
> (2) 
> compile Jitrino in debug mode (see [2])
> (3)
> run the test in "server_static" mode:
> $DRLVM  -Xem:server_static LoopExc
> you will get an assertion like:
> java: /export/users/evpasko/svn/3/trunk/working_vm/vm/jitrino/src/optimizer/Loop.cpp:423:
void Jitrino::LoopBuilder::peelLoops(Jitrino::StlVector<Jitrino::Edge*, Jitrino::StlMMAllocator<Jitrino::Edge*>
>&): Assertion `header->getInDegree() == 2' failed.
> SIGABRT in VM code.
> Stack trace:
>         1: ?? (??:-1)
>         2: abort (??:-1)
>         3: __assert_fail (??:-1)
>         4: Jitrino::LoopBuilder::peelLoops(Jitrino::StlVector<Jitrino::Edge*, Jitrino::StlMMAllocator<Jitrino::Edge*>
>&) (/export/users/evpasko/svn/3/trunk/working_vm/vm/jitrino/src/optimizer/Loop.cpp:424)
>         5: Jitrino::LoopBuilder::peelLoops() (/export/users/evpasko/svn/3/trunk/working_vm/vm/jitrino/src/optimizer/Loop.cpp:911)
>         6: Jitrino::LoopPeelingPass::_run(Jitrino::IRManager&) (/export/users/evpasko/svn/3/trunk/working_vm/vm/jitrino/src/optimizer/Loop.cpp:47)
>         7: Jitrino::OptPass::run() (/export/users/evpasko/svn/3/trunk/working_vm/vm/jitrino/src/optimizer/optpass.cpp:61)
>         8: Jitrino::runPipeline(Jitrino::CompilationContext*) (/export/users/evpasko/svn/3/trunk/working_vm/vm/jitrino/src/main/Jitrino.cpp:226)
>         9: Jitrino::compileMethod(Jitrino::CompilationContext*) (/export/users/evpasko/svn/3/trunk/working_vm/vm/jitrino/src/main/Jitrino.cpp:261)
>         10: Jitrino::Jitrino::CompileMethod(Jitrino::CompilationContext*) (/export/users/evpasko/svn/3/trunk/working_vm/vm/jitrino/src/main/Jitrino.cpp:286)
> (4) 
> you can also obtain a CFG picture to make sure that dispatch node is a loop header:
> $DRLVM -Xem:server_static -Djit.p.filter=.main -Djit.p.arg.log=ct,irdump,dotdump LoopExc
> the dot file is "log/CS_OPT/LoopExc/main([Ljava_lang_String;)V/03.ssa.before.dot"
> low priority because the bytecode is not achievable with java compilers
> [1] http://jasmin.sourceforge.net/
> [2] http://wiki.apache.org/harmony/Debugging%20DRLVM%20with%20GDB%20on%20Linux

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

        

Mime
View raw message