Mercurial > hg > truffle
comparison src/share/vm/c1/c1_Canonicalizer.cpp @ 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 | 3a294e483abc |
comparison
equal
deleted
inserted
replaced
1782:f353275af40e | 1783:d5d065957597 |
---|---|
650 BlockBegin* fsux = NULL; | 650 BlockBegin* fsux = NULL; |
651 if (lss_sux == eql_sux) { cond = If::leq; tsux = lss_sux; fsux = gtr_sux; } | 651 if (lss_sux == eql_sux) { cond = If::leq; tsux = lss_sux; fsux = gtr_sux; } |
652 else if (lss_sux == gtr_sux) { cond = If::neq; tsux = lss_sux; fsux = eql_sux; } | 652 else if (lss_sux == gtr_sux) { cond = If::neq; tsux = lss_sux; fsux = eql_sux; } |
653 else if (eql_sux == gtr_sux) { cond = If::geq; tsux = eql_sux; fsux = lss_sux; } | 653 else if (eql_sux == gtr_sux) { cond = If::geq; tsux = eql_sux; fsux = lss_sux; } |
654 else { ShouldNotReachHere(); } | 654 else { ShouldNotReachHere(); } |
655 If* canon = new If(cmp->x(), cond, nan_sux == tsux, cmp->y(), tsux, fsux, cmp->state_before(), x->is_safepoint()); | 655 If* canon = new If(cmp->x(), cond, nan_sux == tsux, cmp->y(), tsux, fsux, cmp->state_before(), x->is_safepoint()); |
656 if (cmp->x() == cmp->y()) { | 656 if (cmp->x() == cmp->y()) { |
657 do_If(canon); | 657 do_If(canon); |
658 } else { | 658 } else { |
659 if (compilation()->profile_branches()) { | |
660 // TODO: If profiling, leave floating point comparisons unoptimized. | |
661 // We currently do not support profiling of the unordered case. | |
662 switch(cmp->op()) { | |
663 case Bytecodes::_fcmpl: case Bytecodes::_fcmpg: | |
664 case Bytecodes::_dcmpl: case Bytecodes::_dcmpg: | |
665 set_canonical(x); | |
666 return; | |
667 } | |
668 } | |
659 set_canonical(canon); | 669 set_canonical(canon); |
660 set_bci(cmp->bci()); | 670 set_bci(cmp->bci()); |
661 } | 671 } |
662 } | 672 } |
663 } else if (l->as_InstanceOf() != NULL) { | 673 } else if (l->as_InstanceOf() != NULL) { |
879 void Canonicalizer::do_UnsafeGetObject(UnsafeGetObject* x) {} | 889 void Canonicalizer::do_UnsafeGetObject(UnsafeGetObject* x) {} |
880 void Canonicalizer::do_UnsafePutObject(UnsafePutObject* x) {} | 890 void Canonicalizer::do_UnsafePutObject(UnsafePutObject* x) {} |
881 void Canonicalizer::do_UnsafePrefetchRead (UnsafePrefetchRead* x) {} | 891 void Canonicalizer::do_UnsafePrefetchRead (UnsafePrefetchRead* x) {} |
882 void Canonicalizer::do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) {} | 892 void Canonicalizer::do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) {} |
883 void Canonicalizer::do_ProfileCall(ProfileCall* x) {} | 893 void Canonicalizer::do_ProfileCall(ProfileCall* x) {} |
884 void Canonicalizer::do_ProfileCounter(ProfileCounter* x) {} | 894 void Canonicalizer::do_ProfileInvoke(ProfileInvoke* x) {} |
895 |