Mercurial > hg > truffle
comparison src/share/vm/runtime/simpleThresholdPolicy.cpp @ 4116:973293defacd
7112085: assert(fr.interpreter_frame_expression_stack_size()==0) failed: only handle empty stacks
Summary: Move the inlinee invoke notification callback into inlinee preamble
Reviewed-by: kvn, never
author | iveresov |
---|---|
date | Wed, 16 Nov 2011 19:42:58 -0800 |
parents | 43f9d800f276 |
children | 20334ed5ed3c |
comparison
equal
deleted
inserted
replaced
4115:1bd45abaa507 | 4116:973293defacd |
---|---|
28 #include "runtime/arguments.hpp" | 28 #include "runtime/arguments.hpp" |
29 #include "runtime/simpleThresholdPolicy.hpp" | 29 #include "runtime/simpleThresholdPolicy.hpp" |
30 #include "runtime/simpleThresholdPolicy.inline.hpp" | 30 #include "runtime/simpleThresholdPolicy.inline.hpp" |
31 #include "code/scopeDesc.hpp" | 31 #include "code/scopeDesc.hpp" |
32 | 32 |
33 | |
34 void SimpleThresholdPolicy::print_counters(const char* prefix, methodHandle mh) { | |
35 int invocation_count = mh->invocation_count(); | |
36 int backedge_count = mh->backedge_count(); | |
37 methodDataHandle mdh = mh->method_data(); | |
38 int mdo_invocations = 0, mdo_backedges = 0; | |
39 int mdo_invocations_start = 0, mdo_backedges_start = 0; | |
40 if (mdh() != NULL) { | |
41 mdo_invocations = mdh->invocation_count(); | |
42 mdo_backedges = mdh->backedge_count(); | |
43 mdo_invocations_start = mdh->invocation_count_start(); | |
44 mdo_backedges_start = mdh->backedge_count_start(); | |
45 } | |
46 tty->print(" %stotal: %d,%d %smdo: %d(%d),%d(%d)", prefix, | |
47 invocation_count, backedge_count, prefix, | |
48 mdo_invocations, mdo_invocations_start, | |
49 mdo_backedges, mdo_backedges_start); | |
50 tty->print(" %smax levels: %d,%d", prefix, | |
51 mh->highest_comp_level(), mh->highest_osr_comp_level()); | |
52 } | |
53 | |
33 // Print an event. | 54 // Print an event. |
34 void SimpleThresholdPolicy::print_event(EventType type, methodHandle mh, methodHandle imh, | 55 void SimpleThresholdPolicy::print_event(EventType type, methodHandle mh, methodHandle imh, |
35 int bci, CompLevel level) { | 56 int bci, CompLevel level) { |
36 bool inlinee_event = mh() != imh(); | 57 bool inlinee_event = mh() != imh(); |
37 | 58 |
38 ttyLocker tty_lock; | 59 ttyLocker tty_lock; |
39 tty->print("%lf: [", os::elapsedTime()); | 60 tty->print("%lf: [", os::elapsedTime()); |
40 | 61 |
41 int invocation_count = mh->invocation_count(); | |
42 int backedge_count = mh->backedge_count(); | |
43 switch(type) { | 62 switch(type) { |
44 case CALL: | 63 case CALL: |
45 tty->print("call"); | 64 tty->print("call"); |
46 break; | 65 break; |
47 case LOOP: | 66 case LOOP: |
80 CompileBroker::queue_size(CompLevel_full_optimization)); | 99 CompileBroker::queue_size(CompLevel_full_optimization)); |
81 | 100 |
82 print_specific(type, mh, imh, bci, level); | 101 print_specific(type, mh, imh, bci, level); |
83 | 102 |
84 if (type != COMPILE) { | 103 if (type != COMPILE) { |
85 methodDataHandle mdh = mh->method_data(); | 104 print_counters("", mh); |
86 int mdo_invocations = 0, mdo_backedges = 0; | |
87 int mdo_invocations_start = 0, mdo_backedges_start = 0; | |
88 if (mdh() != NULL) { | |
89 mdo_invocations = mdh->invocation_count(); | |
90 mdo_backedges = mdh->backedge_count(); | |
91 mdo_invocations_start = mdh->invocation_count_start(); | |
92 mdo_backedges_start = mdh->backedge_count_start(); | |
93 } | |
94 tty->print(" total: %d,%d mdo: %d(%d),%d(%d)", | |
95 invocation_count, backedge_count, | |
96 mdo_invocations, mdo_invocations_start, | |
97 mdo_backedges, mdo_backedges_start); | |
98 tty->print(" max levels: %d,%d", | |
99 mh->highest_comp_level(), mh->highest_osr_comp_level()); | |
100 if (inlinee_event) { | 105 if (inlinee_event) { |
101 tty->print(" inlinee max levels: %d,%d", imh->highest_comp_level(), imh->highest_osr_comp_level()); | 106 print_counters("inlinee ", imh); |
102 } | 107 } |
103 tty->print(" compilable: "); | 108 tty->print(" compilable: "); |
104 bool need_comma = false; | 109 bool need_comma = false; |
105 if (!mh->is_not_compilable(CompLevel_full_profile)) { | 110 if (!mh->is_not_compilable(CompLevel_full_profile)) { |
106 tty->print("c1"); | 111 tty->print("c1"); |