You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Mikhail Fursov (JIRA)" <ji...@apache.org> on 2006/11/07 15:30:51 UTC

[jira] Created: (HARMONY-2084) [drlvm][opt] Jitrino.OPT inliner can cause native SOE exception for some large methods

[drlvm][opt] Jitrino.OPT inliner can cause native SOE exception for some large methods
--------------------------------------------------------------------------------------

                 Key: HARMONY-2084
                 URL: http://issues.apache.org/jira/browse/HARMONY-2084
             Project: Harmony
          Issue Type: Bug
          Components: DRLVM
            Reporter: Mikhail Fursov
            Priority: Minor
         Attachments: Test.java

The inliner in Jitrino.OPT compiler stops inlining if bytecode size of the current method is > some threshold.

Sometimes (for synchronized methods) the bytecode size is small, but the size of the resulted IR is very large. As the result Inliner can produce very large linear IR graphs that  cause SOE in recursive algorithms like DFS

The proposal is to add one more threshold to inliner: stop inlining if the number of nodes in IR is greater then some const.



-- 
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-2084) [drlvm][opt] Jitrino.OPT inliner can cause native SOE exception for some large methods

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

Mikhail Fursov updated HARMONY-2084:
------------------------------------

    Attachment: Test.java

The test.

Run it in -Xem:opt mode.

Note, if turn inliner off the test starts passing (-Djit.CS_OPT.f.filter=Test::main -Djit.CS_OPT.arg.optimizer.inline=off)

> [drlvm][opt] Jitrino.OPT inliner can cause native SOE exception for some large methods
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-2084
>                 URL: http://issues.apache.org/jira/browse/HARMONY-2084
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Mikhail Fursov
>            Priority: Minor
>         Attachments: Test.java
>
>
> The inliner in Jitrino.OPT compiler stops inlining if bytecode size of the current method is > some threshold.
> Sometimes (for synchronized methods) the bytecode size is small, but the size of the resulted IR is very large. As the result Inliner can produce very large linear IR graphs that  cause SOE in recursive algorithms like DFS
> The proposal is to add one more threshold to inliner: stop inlining if the number of nodes in IR is greater then some const.

-- 
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-2084) [drlvm][opt] Jitrino.OPT inliner can cause native SOE exception for some large methods

Posted by "Mikhail Fursov (JIRA)" <ji...@apache.org>.
    [ http://issues.apache.org/jira/browse/HARMONY-2084?page=comments#action_12447849 ] 
            
Mikhail Fursov commented on HARMONY-2084:
-----------------------------------------

I prefer a constant. You will never have a heuristic what stack size is enough to finish the compilation for the given IR.

> [drlvm][opt] Jitrino.OPT inliner can cause native SOE exception for some large methods
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-2084
>                 URL: http://issues.apache.org/jira/browse/HARMONY-2084
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Mikhail Fursov
>            Priority: Minor
>         Attachments: Test.java
>
>
> The inliner in Jitrino.OPT compiler stops inlining if bytecode size of the current method is > some threshold.
> Sometimes (for synchronized methods) the bytecode size is small, but the size of the resulted IR is very large. As the result Inliner can produce very large linear IR graphs that  cause SOE in recursive algorithms like DFS
> The proposal is to add one more threshold to inliner: stop inlining if the number of nodes in IR is greater then some const.

-- 
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-2084) [drlvm][opt] Jitrino.OPT inliner can cause native SOE exception for some large methods

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

a constant does not guarantee anything either

> [drlvm][opt] Jitrino.OPT inliner can cause native SOE exception for some large methods
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-2084
>                 URL: http://issues.apache.org/jira/browse/HARMONY-2084
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Mikhail Fursov
>            Priority: Minor
>         Attachments: Test.java
>
>
> The inliner in Jitrino.OPT compiler stops inlining if bytecode size of the current method is > some threshold.
> Sometimes (for synchronized methods) the bytecode size is small, but the size of the resulted IR is very large. As the result Inliner can produce very large linear IR graphs that  cause SOE in recursive algorithms like DFS
> The proposal is to add one more threshold to inliner: stop inlining if the number of nodes in IR is greater then some const.

-- 
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-2084) [drlvm][opt] Jitrino.OPT inliner can cause native SOE exception for some large methods

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

should the max size of IR allowed be a constant or a fraction of  get_available_stack_size() ?

> [drlvm][opt] Jitrino.OPT inliner can cause native SOE exception for some large methods
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-2084
>                 URL: http://issues.apache.org/jira/browse/HARMONY-2084
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Mikhail Fursov
>            Priority: Minor
>         Attachments: Test.java
>
>
> The inliner in Jitrino.OPT compiler stops inlining if bytecode size of the current method is > some threshold.
> Sometimes (for synchronized methods) the bytecode size is small, but the size of the resulted IR is very large. As the result Inliner can produce very large linear IR graphs that  cause SOE in recursive algorithms like DFS
> The proposal is to add one more threshold to inliner: stop inlining if the number of nodes in IR is greater then some const.

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