41 tty->print_cr(" (%d bytes)", prof_method->code_size()); |
41 tty->print_cr(" (%d bytes)", prof_method->code_size()); |
42 } |
42 } |
43 } |
43 } |
44 #endif |
44 #endif |
45 |
45 |
46 CallGenerator* Compile::call_generator(ciMethod* call_method, int vtable_index, bool call_is_virtual, JVMState* jvms, bool allow_inline, float prof_factor) { |
46 CallGenerator* Compile::call_generator(ciMethod* call_method, int vtable_index, bool call_is_virtual, |
|
47 JVMState* jvms, bool allow_inline, |
|
48 float prof_factor) { |
47 CallGenerator* cg; |
49 CallGenerator* cg; |
48 |
50 |
49 // Dtrace currently doesn't work unless all calls are vanilla |
51 // Dtrace currently doesn't work unless all calls are vanilla |
50 if (env()->dtrace_method_probes()) { |
52 if (env()->dtrace_method_probes()) { |
51 allow_inline = false; |
53 allow_inline = false; |
114 } else { |
116 } else { |
115 // Make a disembodied, stateless ILT. |
117 // Make a disembodied, stateless ILT. |
116 // TO DO: When UseOldInlining is removed, copy the ILT code elsewhere. |
118 // TO DO: When UseOldInlining is removed, copy the ILT code elsewhere. |
117 float site_invoke_ratio = prof_factor; |
119 float site_invoke_ratio = prof_factor; |
118 // Note: ilt is for the root of this parse, not the present call site. |
120 // Note: ilt is for the root of this parse, not the present call site. |
119 ilt = new InlineTree(this, jvms->method(), jvms->caller(), site_invoke_ratio); |
121 ilt = new InlineTree(this, jvms->method(), jvms->caller(), site_invoke_ratio, 0); |
120 } |
122 } |
121 WarmCallInfo scratch_ci; |
123 WarmCallInfo scratch_ci; |
122 if (!UseOldInlining) |
124 if (!UseOldInlining) |
123 scratch_ci.init(jvms, call_method, profile, prof_factor); |
125 scratch_ci.init(jvms, call_method, profile, prof_factor); |
124 WarmCallInfo* ci = ilt->ok_to_inline(call_method, jvms, profile, &scratch_ci); |
126 WarmCallInfo* ci = ilt->ok_to_inline(call_method, jvms, profile, &scratch_ci); |