Mercurial > hg > truffle
diff src/share/vm/opto/machnode.cpp @ 673:fbc12e71c476
6810845: Performance regression in mpegaudio on x64
Summary: Used the outer loop frequency in frequencies checks in RA.
Reviewed-by: never, twisti
author | kvn |
---|---|
date | Thu, 26 Mar 2009 15:04:55 -0700 |
parents | 98cb887364d3 |
children | bd02caa94611 fc4be448891f |
line wrap: on
line diff
--- a/src/share/vm/opto/machnode.cpp Thu Mar 26 14:39:39 2009 -0700 +++ b/src/share/vm/opto/machnode.cpp Thu Mar 26 15:04:55 2009 -0700 @@ -340,6 +340,10 @@ 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 @@ // 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");