mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 11:34:38 +02:00
6810845: Performance regression in mpegaudio on x64
Used the outer loop frequency in frequencies checks in RA. Reviewed-by: never, twisti
This commit is contained in:
parent
3b786f8edc
commit
68cf08d2c3
7 changed files with 30 additions and 4 deletions
|
@ -340,6 +340,10 @@ const class TypePtr *MachNode::adr_type() const {
|
|||
if (base == NodeSentinel) return TypePtr::BOTTOM;
|
||||
|
||||
const Type* t = base->bottom_type();
|
||||
if (UseCompressedOops && Universe::narrow_oop_shift() == 0) {
|
||||
// 32-bit unscaled narrow oop can be the base of any address expression
|
||||
t = t->make_ptr();
|
||||
}
|
||||
if (t->isa_intptr_t() && offset != 0 && offset != Type::OffsetBot) {
|
||||
// We cannot assert that the offset does not look oop-ish here.
|
||||
// Depending on the heap layout the cardmark base could land
|
||||
|
@ -353,6 +357,7 @@ const class TypePtr *MachNode::adr_type() const {
|
|||
|
||||
// be conservative if we do not recognize the type
|
||||
if (tp == NULL) {
|
||||
assert(false, "this path may produce not optimal code");
|
||||
return TypePtr::BOTTOM;
|
||||
}
|
||||
assert(tp->base() != Type::AnyPtr, "not a bare pointer");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue