mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
6953144: Tiered compilation
Infrastructure for tiered compilation support (interpreter + c1 + c2) for 32 and 64 bit. Simple tiered policy implementation. Reviewed-by: kvn, never, phh, twisti
This commit is contained in:
parent
6e78f6cb4b
commit
2c66a6c3fd
104 changed files with 7720 additions and 1701 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
|
@ -40,8 +40,7 @@ void InvocationCounter::reset() {
|
|||
}
|
||||
|
||||
void InvocationCounter::set_carry() {
|
||||
_counter |= carry_mask;
|
||||
|
||||
set_carry_flag();
|
||||
// The carry bit now indicates that this counter had achieved a very
|
||||
// large value. Now reduce the value, so that the method can be
|
||||
// executed many more times before re-entering the VM.
|
||||
|
@ -52,7 +51,6 @@ void InvocationCounter::set_carry() {
|
|||
if (old_count != new_count) set(state(), new_count);
|
||||
}
|
||||
|
||||
|
||||
void InvocationCounter::set_state(State state) {
|
||||
assert(0 <= state && state < number_of_states, "illegal state");
|
||||
int init = _init[state];
|
||||
|
@ -82,11 +80,6 @@ int InvocationCounter::InterpreterInvocationLimit;
|
|||
int InvocationCounter::InterpreterBackwardBranchLimit;
|
||||
int InvocationCounter::InterpreterProfileLimit;
|
||||
|
||||
// Tier1 limits
|
||||
int InvocationCounter::Tier1InvocationLimit;
|
||||
int InvocationCounter::Tier1BackEdgeLimit;
|
||||
|
||||
|
||||
|
||||
const char* InvocationCounter::state_as_string(State state) {
|
||||
switch (state) {
|
||||
|
@ -146,8 +139,6 @@ void InvocationCounter::reinitialize(bool delay_overflow) {
|
|||
|
||||
InterpreterInvocationLimit = CompileThreshold << number_of_noncount_bits;
|
||||
InterpreterProfileLimit = ((CompileThreshold * InterpreterProfilePercentage) / 100)<< number_of_noncount_bits;
|
||||
Tier1InvocationLimit = Tier2CompileThreshold << number_of_noncount_bits;
|
||||
Tier1BackEdgeLimit = Tier2BackEdgeThreshold << number_of_noncount_bits;
|
||||
|
||||
// When methodData is collected, the backward branch limit is compared against a
|
||||
// methodData counter, rather than an InvocationCounter. In the former case, we
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue