1 /* |
1 /* |
2 * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
340 bool append_unsafe_prefetch(ciMethod* callee, bool is_store, bool is_static); |
340 bool append_unsafe_prefetch(ciMethod* callee, bool is_store, bool is_static); |
341 void append_unsafe_CAS(ciMethod* callee); |
341 void append_unsafe_CAS(ciMethod* callee); |
342 |
342 |
343 NOT_PRODUCT(void print_inline_result(ciMethod* callee, bool res);) |
343 NOT_PRODUCT(void print_inline_result(ciMethod* callee, bool res);) |
344 |
344 |
345 // methodDataOop profiling helpers |
|
346 void profile_call(Value recv, ciKlass* predicted_holder); |
345 void profile_call(Value recv, ciKlass* predicted_holder); |
347 void profile_invocation(ciMethod* method); |
346 void profile_invocation(ciMethod* inlinee, ValueStack* state, int bci); |
348 void profile_bci(int bci); |
347 |
349 |
348 // Shortcuts to profiling control. |
350 // Helpers for generation of profile information |
349 bool is_profiling() { return _compilation->is_profiling(); } |
351 bool profile_branches() { |
350 bool count_invocations() { return _compilation->count_invocations(); } |
352 return _compilation->env()->comp_level() == CompLevel_fast_compile && |
351 bool count_backedges() { return _compilation->count_backedges(); } |
353 Tier1UpdateMethodData && Tier1ProfileBranches; |
352 bool profile_branches() { return _compilation->profile_branches(); } |
354 } |
353 bool profile_calls() { return _compilation->profile_calls(); } |
355 bool profile_calls() { |
354 bool profile_inlined_calls() { return _compilation->profile_inlined_calls(); } |
356 return _compilation->env()->comp_level() == CompLevel_fast_compile && |
355 bool profile_checkcasts() { return _compilation->profile_checkcasts(); } |
357 Tier1UpdateMethodData && Tier1ProfileCalls; |
|
358 } |
|
359 bool profile_inlined_calls() { |
|
360 return profile_calls() && Tier1ProfileInlinedCalls; |
|
361 } |
|
362 bool profile_checkcasts() { |
|
363 return _compilation->env()->comp_level() == CompLevel_fast_compile && |
|
364 Tier1UpdateMethodData && Tier1ProfileCheckcasts; |
|
365 } |
|
366 |
356 |
367 public: |
357 public: |
368 NOT_PRODUCT(void print_stats();) |
358 NOT_PRODUCT(void print_stats();) |
369 |
359 |
370 // initialization |
360 // initialization |