comparison src/share/vm/c1/c1_GraphBuilder.hpp @ 1783:d5d065957597

6953144: Tiered compilation Summary: Infrastructure for tiered compilation support (interpreter + c1 + c2) for 32 and 64 bit. Simple tiered policy implementation. Reviewed-by: kvn, never, phh, twisti
author iveresov
date Fri, 03 Sep 2010 17:51:07 -0700
parents b812ff5abc73
children f02a8bbe6ed4
comparison
equal deleted inserted replaced
1782:f353275af40e 1783:d5d065957597
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