mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 19:14:38 +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
|
@ -652,10 +652,20 @@ void Canonicalizer::do_If(If* x) {
|
|||
else if (lss_sux == gtr_sux) { cond = If::neq; tsux = lss_sux; fsux = eql_sux; }
|
||||
else if (eql_sux == gtr_sux) { cond = If::geq; tsux = eql_sux; fsux = lss_sux; }
|
||||
else { ShouldNotReachHere(); }
|
||||
If* canon = new If(cmp->x(), cond, nan_sux == tsux, cmp->y(), tsux, fsux, cmp->state_before(), x->is_safepoint());
|
||||
If* canon = new If(cmp->x(), cond, nan_sux == tsux, cmp->y(), tsux, fsux, cmp->state_before(), x->is_safepoint());
|
||||
if (cmp->x() == cmp->y()) {
|
||||
do_If(canon);
|
||||
} else {
|
||||
if (compilation()->profile_branches()) {
|
||||
// TODO: If profiling, leave floating point comparisons unoptimized.
|
||||
// We currently do not support profiling of the unordered case.
|
||||
switch(cmp->op()) {
|
||||
case Bytecodes::_fcmpl: case Bytecodes::_fcmpg:
|
||||
case Bytecodes::_dcmpl: case Bytecodes::_dcmpg:
|
||||
set_canonical(x);
|
||||
return;
|
||||
}
|
||||
}
|
||||
set_canonical(canon);
|
||||
set_bci(cmp->bci());
|
||||
}
|
||||
|
@ -881,4 +891,5 @@ void Canonicalizer::do_UnsafePutObject(UnsafePutObject* x) {}
|
|||
void Canonicalizer::do_UnsafePrefetchRead (UnsafePrefetchRead* x) {}
|
||||
void Canonicalizer::do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) {}
|
||||
void Canonicalizer::do_ProfileCall(ProfileCall* x) {}
|
||||
void Canonicalizer::do_ProfileCounter(ProfileCounter* x) {}
|
||||
void Canonicalizer::do_ProfileInvoke(ProfileInvoke* x) {}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue