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] Created: (HARMONY-2114) [drlvm][jit][opt] Jitrino.OPT hides inlined stack frames when reporting exceptional track traces
Date Thu, 09 Nov 2006 03:36:37 GMT
[drlvm][jit][opt] Jitrino.OPT hides inlined stack frames when reporting exceptional track traces
------------------------------------------------------------------------------------------------

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


consider the following test:
---------------------------------------------------------
public class TestLooseInlinedFrame
{
    public static void main(String[] args)
    {
        try {
            toInline();
        }catch (RuntimeException e) {
            e.printStackTrace();
        }
    }

    public static final void toInline()
    {
        throw new RuntimeException();
    }
}
---------------------------------------------------------
the "fair" output would be as on JET or interpreter:
java.lang.RuntimeException
        at TestLooseInlinedFrame.toInline(TestLooseInlinedFrame.java:14)
        at TestLooseInlinedFrame.main(TestLooseInlinedFrame.java:6)

on OPT (-Xem:opt) one frame is missing:
java.lang.RuntimeException
        at TestLooseInlinedFrame.main(TestLooseInlinedFrame.java:10)

that is because:
a) one method was inlined (toInline())
b) the method is exited via exception

currently, Jitrino.OPT _allows_ reporting inlined frames, but only those CALL-ed through.
To make it real OPT preserves inline information for each inlined CALL instruction. To implement
similar approach for exceptional exits we need one of two:
* preserve inline information on each potentially exceptional instruction (basic block?) //
memory footprint is sensitive to it
* mark inlined method's boundaries // requires to update info during all code motions

Both approaches have major disadvantages, that is why I am setting priority so low. Any alternative
suggestions are welcome.

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