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 2007/07/13 16:21:04 UTC
[jira] Resolved: (HARMONY-2114) [drlvm][jit][opt] Jitrino.OPT hides
inlined stack frames when reporting exceptional track traces
[ https://issues.apache.org/jira/browse/HARMONY-2114?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mikhail Fursov resolved HARMONY-2114.
-------------------------------------
Resolution: Fixed
Commited as r 556007
> [drlvm][jit][opt] Jitrino.OPT hides inlined stack frames when reporting exceptional track traces
> ------------------------------------------------------------------------------------------------
>
> Key: HARMONY-2114
> URL: https://issues.apache.org/jira/browse/HARMONY-2114
> Project: Harmony
> Issue Type: Improvement
> Components: DRLVM
> Environment: any
> Reporter: Egor Pasko
> Assignee: Mikhail Fursov
> Priority: Trivial
> Attachments: jit.patch, TestLooseInlinedFrame.java
>
>
> 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.
-
You can reply to this email to add a comment to the issue online.