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/09 07:22:37 UTC

[jira] Created: (HARMONY-2115) [drlvm][jit][opt] "syncopt" optimization pass crashes (on HelloWorld) because expects old CFG structure

[drlvm][jit][opt] "syncopt" optimization pass crashes (on HelloWorld) because expects old CFG structure
-------------------------------------------------------------------------------------------------------

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


to reproduce the crash
* copy opt.emconf to syncopt.emconf
* add "syncopt," before "statprof" in the new syncopt.emconf file (no quotes, obviously)
* run with -Xem:syncopt switch

> $HARMONY -Xem:syncopt Hello
SIGSEGV in VM code.
Stack trace:
        1: Jitrino::CFGInst::next() const (??:-1)
        2: Jitrino::FixupSyncEdgesWalker::isCatchAllAndMonExit(Jitrino::Node*, Jitrino::Opnd*&, Jitrino::Opnd*&, Jitrino::Node*&, Jitrino::Edge*&, Jitrino::Node*&) (??:-1)
        3: Jitrino::FixupSyncEdgesWalker::applyToNode3(Jitrino::Node*) (??:-1)
        4: Jitrino::FixupSyncEdgesWalker::applyToCFGNode(Jitrino::Node*) (??:-1)
        5: ?? (002b0ab1 :2)
        6: void Jitrino::NodeWalk<Jitrino::FixupSyncEdgesWalker>(Jitrino::ControlFlowGraph&, Jitrino::FixupSyncEdgesWalker&) (??:-1)
        7: Jitrino::SyncOpt::runPass() (??:-1)
        8: Jitrino::SyncOptPass::_run(Jitrino::IRManager&) (??:-1)
        9: Jitrino::OptPass::run() (??:-1)
        10: Jitrino::runPipeline(Jitrino::CompilationContext*) (??:-1)
        11: Jitrino::compileMethod(Jitrino::CompilationContext*) (??:-1)
        12: Jitrino::Jitrino::CompileMethod(Jitrino::CompilationContext*) (??:-1)

here "syncopt":
* expects all dispatch nodes to have catch blocks (if you recompile in debug mode, you'll see it)
* expects instructions in basic blocks to be linked in a circle (which is now outdated, instructions end with NULL)

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

        

[jira] Updated: (HARMONY-2115) [drlvm][jit][opt] "syncopt" optimization pass crashes (on HelloWorld) because expects old CFG structure

Posted by "Egor Pasko (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/HARMONY-2115?page=all ]

Egor Pasko updated HARMONY-2115:
--------------------------------

    Patch Info:   (was: [Patch Available])

> [drlvm][jit][opt] "syncopt" optimization pass crashes (on HelloWorld) because expects old CFG structure
> -------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-2115
>                 URL: http://issues.apache.org/jira/browse/HARMONY-2115
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: any
>            Reporter: Egor Pasko
>            Priority: Trivial
>         Attachments: 0001-syncopt-fixed.txt
>
>
> to reproduce the crash
> * copy opt.emconf to syncopt.emconf
> * add "syncopt," before "statprof" in the new syncopt.emconf file (no quotes, obviously)
> * run with -Xem:syncopt switch
> > $HARMONY -Xem:syncopt Hello
> SIGSEGV in VM code.
> Stack trace:
>         1: Jitrino::CFGInst::next() const (??:-1)
>         2: Jitrino::FixupSyncEdgesWalker::isCatchAllAndMonExit(Jitrino::Node*, Jitrino::Opnd*&, Jitrino::Opnd*&, Jitrino::Node*&, Jitrino::Edge*&, Jitrino::Node*&) (??:-1)
>         3: Jitrino::FixupSyncEdgesWalker::applyToNode3(Jitrino::Node*) (??:-1)
>         4: Jitrino::FixupSyncEdgesWalker::applyToCFGNode(Jitrino::Node*) (??:-1)
>         5: ?? (002b0ab1 :2)
>         6: void Jitrino::NodeWalk<Jitrino::FixupSyncEdgesWalker>(Jitrino::ControlFlowGraph&, Jitrino::FixupSyncEdgesWalker&) (??:-1)
>         7: Jitrino::SyncOpt::runPass() (??:-1)
>         8: Jitrino::SyncOptPass::_run(Jitrino::IRManager&) (??:-1)
>         9: Jitrino::OptPass::run() (??:-1)
>         10: Jitrino::runPipeline(Jitrino::CompilationContext*) (??:-1)
>         11: Jitrino::compileMethod(Jitrino::CompilationContext*) (??:-1)
>         12: Jitrino::Jitrino::CompileMethod(Jitrino::CompilationContext*) (??:-1)
> here "syncopt":
> * expects all dispatch nodes to have catch blocks (if you recompile in debug mode, you'll see it)
> * expects instructions in basic blocks to be linked in a circle (which is now outdated, instructions end with NULL)

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

        

[jira] Commented: (HARMONY-2115) [drlvm][jit][opt] "syncopt" optimization pass crashes (on HelloWorld) because expects old CFG structure

Posted by "Egor Pasko (JIRA)" <ji...@apache.org>.
    [ http://issues.apache.org/jira/browse/HARMONY-2115?page=comments#action_12449577 ] 
            
Egor Pasko commented on HARMONY-2115:
-------------------------------------

the patch crashes ThreadTest, I will provide a new one

> [drlvm][jit][opt] "syncopt" optimization pass crashes (on HelloWorld) because expects old CFG structure
> -------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-2115
>                 URL: http://issues.apache.org/jira/browse/HARMONY-2115
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: any
>            Reporter: Egor Pasko
>            Priority: Trivial
>         Attachments: 0001-syncopt-fixed.txt
>
>
> to reproduce the crash
> * copy opt.emconf to syncopt.emconf
> * add "syncopt," before "statprof" in the new syncopt.emconf file (no quotes, obviously)
> * run with -Xem:syncopt switch
> > $HARMONY -Xem:syncopt Hello
> SIGSEGV in VM code.
> Stack trace:
>         1: Jitrino::CFGInst::next() const (??:-1)
>         2: Jitrino::FixupSyncEdgesWalker::isCatchAllAndMonExit(Jitrino::Node*, Jitrino::Opnd*&, Jitrino::Opnd*&, Jitrino::Node*&, Jitrino::Edge*&, Jitrino::Node*&) (??:-1)
>         3: Jitrino::FixupSyncEdgesWalker::applyToNode3(Jitrino::Node*) (??:-1)
>         4: Jitrino::FixupSyncEdgesWalker::applyToCFGNode(Jitrino::Node*) (??:-1)
>         5: ?? (002b0ab1 :2)
>         6: void Jitrino::NodeWalk<Jitrino::FixupSyncEdgesWalker>(Jitrino::ControlFlowGraph&, Jitrino::FixupSyncEdgesWalker&) (??:-1)
>         7: Jitrino::SyncOpt::runPass() (??:-1)
>         8: Jitrino::SyncOptPass::_run(Jitrino::IRManager&) (??:-1)
>         9: Jitrino::OptPass::run() (??:-1)
>         10: Jitrino::runPipeline(Jitrino::CompilationContext*) (??:-1)
>         11: Jitrino::compileMethod(Jitrino::CompilationContext*) (??:-1)
>         12: Jitrino::Jitrino::CompileMethod(Jitrino::CompilationContext*) (??:-1)
> here "syncopt":
> * expects all dispatch nodes to have catch blocks (if you recompile in debug mode, you'll see it)
> * expects instructions in basic blocks to be linked in a circle (which is now outdated, instructions end with NULL)

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

        

[jira] Updated: (HARMONY-2115) [drlvm][jit][opt] "syncopt" optimization pass crashes (on HelloWorld) because expects old CFG structure

Posted by "Egor Pasko (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/HARMONY-2115?page=all ]

Egor Pasko updated HARMONY-2115:
--------------------------------

    Attachment: syncopt-fixed-for-new-cfg.txt

updated patch (syncopt-fixed-for-new-cfg.txt) is to be applied. It is slightly more readable, but does the same thing actually. ThreadTest failure occures only if "syncopt" is inserted in the optimization pass. And this is another issue -- HARMONY-2184

With this patch tests on SUSE9 pass: c-unit, smoke, kernel (ThreadTest failed sometimes as without patch) (Jitrino-in-debug build)

against r474293

> [drlvm][jit][opt] "syncopt" optimization pass crashes (on HelloWorld) because expects old CFG structure
> -------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-2115
>                 URL: http://issues.apache.org/jira/browse/HARMONY-2115
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: any
>            Reporter: Egor Pasko
>            Priority: Trivial
>         Attachments: 0001-syncopt-fixed.txt, syncopt-fixed-for-new-cfg.txt
>
>
> to reproduce the crash
> * copy opt.emconf to syncopt.emconf
> * add "syncopt," before "statprof" in the new syncopt.emconf file (no quotes, obviously)
> * run with -Xem:syncopt switch
> > $HARMONY -Xem:syncopt Hello
> SIGSEGV in VM code.
> Stack trace:
>         1: Jitrino::CFGInst::next() const (??:-1)
>         2: Jitrino::FixupSyncEdgesWalker::isCatchAllAndMonExit(Jitrino::Node*, Jitrino::Opnd*&, Jitrino::Opnd*&, Jitrino::Node*&, Jitrino::Edge*&, Jitrino::Node*&) (??:-1)
>         3: Jitrino::FixupSyncEdgesWalker::applyToNode3(Jitrino::Node*) (??:-1)
>         4: Jitrino::FixupSyncEdgesWalker::applyToCFGNode(Jitrino::Node*) (??:-1)
>         5: ?? (002b0ab1 :2)
>         6: void Jitrino::NodeWalk<Jitrino::FixupSyncEdgesWalker>(Jitrino::ControlFlowGraph&, Jitrino::FixupSyncEdgesWalker&) (??:-1)
>         7: Jitrino::SyncOpt::runPass() (??:-1)
>         8: Jitrino::SyncOptPass::_run(Jitrino::IRManager&) (??:-1)
>         9: Jitrino::OptPass::run() (??:-1)
>         10: Jitrino::runPipeline(Jitrino::CompilationContext*) (??:-1)
>         11: Jitrino::compileMethod(Jitrino::CompilationContext*) (??:-1)
>         12: Jitrino::Jitrino::CompileMethod(Jitrino::CompilationContext*) (??:-1)
> here "syncopt":
> * expects all dispatch nodes to have catch blocks (if you recompile in debug mode, you'll see it)
> * expects instructions in basic blocks to be linked in a circle (which is now outdated, instructions end with NULL)

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

        

[jira] Updated: (HARMONY-2115) [drlvm][jit][opt] "syncopt" optimization pass crashes (on HelloWorld) because expects old CFG structure

Posted by "Egor Pasko (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/HARMONY-2115?page=all ]

Egor Pasko updated HARMONY-2115:
--------------------------------

    Patch Info: [Patch Available]

> [drlvm][jit][opt] "syncopt" optimization pass crashes (on HelloWorld) because expects old CFG structure
> -------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-2115
>                 URL: http://issues.apache.org/jira/browse/HARMONY-2115
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: any
>            Reporter: Egor Pasko
>            Priority: Trivial
>         Attachments: 0001-syncopt-fixed.txt, syncopt-fixed-for-new-cfg.txt
>
>
> to reproduce the crash
> * copy opt.emconf to syncopt.emconf
> * add "syncopt," before "statprof" in the new syncopt.emconf file (no quotes, obviously)
> * run with -Xem:syncopt switch
> > $HARMONY -Xem:syncopt Hello
> SIGSEGV in VM code.
> Stack trace:
>         1: Jitrino::CFGInst::next() const (??:-1)
>         2: Jitrino::FixupSyncEdgesWalker::isCatchAllAndMonExit(Jitrino::Node*, Jitrino::Opnd*&, Jitrino::Opnd*&, Jitrino::Node*&, Jitrino::Edge*&, Jitrino::Node*&) (??:-1)
>         3: Jitrino::FixupSyncEdgesWalker::applyToNode3(Jitrino::Node*) (??:-1)
>         4: Jitrino::FixupSyncEdgesWalker::applyToCFGNode(Jitrino::Node*) (??:-1)
>         5: ?? (002b0ab1 :2)
>         6: void Jitrino::NodeWalk<Jitrino::FixupSyncEdgesWalker>(Jitrino::ControlFlowGraph&, Jitrino::FixupSyncEdgesWalker&) (??:-1)
>         7: Jitrino::SyncOpt::runPass() (??:-1)
>         8: Jitrino::SyncOptPass::_run(Jitrino::IRManager&) (??:-1)
>         9: Jitrino::OptPass::run() (??:-1)
>         10: Jitrino::runPipeline(Jitrino::CompilationContext*) (??:-1)
>         11: Jitrino::compileMethod(Jitrino::CompilationContext*) (??:-1)
>         12: Jitrino::Jitrino::CompileMethod(Jitrino::CompilationContext*) (??:-1)
> here "syncopt":
> * expects all dispatch nodes to have catch blocks (if you recompile in debug mode, you'll see it)
> * expects instructions in basic blocks to be linked in a circle (which is now outdated, instructions end with NULL)

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

        

[jira] Updated: (HARMONY-2115) [drlvm][jit][opt] "syncopt" optimization pass crashes (on HelloWorld) because expects old CFG structure

Posted by "Egor Pasko (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/HARMONY-2115?page=all ]

Egor Pasko updated HARMONY-2115:
--------------------------------

    Attachment: 0001-syncopt-fixed.txt

the fix attached (absolutely safe to commit, syncopt is unused now)

with fix applied you will get a crash in DominatorTree which is another issue:

SIGSEGV in VM code.
Stack trace:
        1: Jitrino::DominatorTree::dominates(Jitrino::Node*, Jitrino::Node*) (??:-1)
        2: Jitrino::LoopTree::findLoopHeaders(Jitrino::StlVector<Jitrino::Node*, Jitrino::StlMMAllocator<Jitrino::Node*> >&) (??:-1)
        3: Jitrino::LoopTree::rebuild(bool) (??:-1)
        4: Jitrino::LoopBuilder::computeLoops(bool) (??:-1)
        5: Jitrino::OptPass::computeLoops(Jitrino::IRManager&, bool) (??:-1)
        6: Jitrino::OptPass::computeDominatorsAndLoops(Jitrino::IRManager&, bool) (??:-1)
        7: Jitrino::StaticProfilerPass::_run(Jitrino::IRManager&) (??:-1)
[snip]

> [drlvm][jit][opt] "syncopt" optimization pass crashes (on HelloWorld) because expects old CFG structure
> -------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-2115
>                 URL: http://issues.apache.org/jira/browse/HARMONY-2115
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: any
>            Reporter: Egor Pasko
>            Priority: Trivial
>         Attachments: 0001-syncopt-fixed.txt
>
>
> to reproduce the crash
> * copy opt.emconf to syncopt.emconf
> * add "syncopt," before "statprof" in the new syncopt.emconf file (no quotes, obviously)
> * run with -Xem:syncopt switch
> > $HARMONY -Xem:syncopt Hello
> SIGSEGV in VM code.
> Stack trace:
>         1: Jitrino::CFGInst::next() const (??:-1)
>         2: Jitrino::FixupSyncEdgesWalker::isCatchAllAndMonExit(Jitrino::Node*, Jitrino::Opnd*&, Jitrino::Opnd*&, Jitrino::Node*&, Jitrino::Edge*&, Jitrino::Node*&) (??:-1)
>         3: Jitrino::FixupSyncEdgesWalker::applyToNode3(Jitrino::Node*) (??:-1)
>         4: Jitrino::FixupSyncEdgesWalker::applyToCFGNode(Jitrino::Node*) (??:-1)
>         5: ?? (002b0ab1 :2)
>         6: void Jitrino::NodeWalk<Jitrino::FixupSyncEdgesWalker>(Jitrino::ControlFlowGraph&, Jitrino::FixupSyncEdgesWalker&) (??:-1)
>         7: Jitrino::SyncOpt::runPass() (??:-1)
>         8: Jitrino::SyncOptPass::_run(Jitrino::IRManager&) (??:-1)
>         9: Jitrino::OptPass::run() (??:-1)
>         10: Jitrino::runPipeline(Jitrino::CompilationContext*) (??:-1)
>         11: Jitrino::compileMethod(Jitrino::CompilationContext*) (??:-1)
>         12: Jitrino::Jitrino::CompileMethod(Jitrino::CompilationContext*) (??:-1)
> here "syncopt":
> * expects all dispatch nodes to have catch blocks (if you recompile in debug mode, you'll see it)
> * expects instructions in basic blocks to be linked in a circle (which is now outdated, instructions end with NULL)

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