Scalar replacable object pointers won't be equal to anything else

Edward Lee edilee at gmail.com
Tue Dec 9 14:25:23 PST 2008


When expanding HashMap.get(new Packed(v1, v2)), it looks something like..

tmp = new Packed(v1, v2)
for (e = table[tmp.hashCode()]; e != null; e = e.next)
  if (e.key == tmp) return e.value

On Tue, Dec 9, 2008 at 2:21 PM, Vladimir Kozlov <Vladimir.Kozlov at sun.com> wrote:
> There is code in CmpPNode::sub() to optimize CmpP for
> allocations. Why it does not work for your case?

For this particular CmpPNode::sub() call, it uses
MemNode::detect_ptr_independence() that eventually calls
MemNode::all_controls_dominate() where the dom node is the LoadP for
list.key and sub node is the tmp Allocate.

The LoadP is inside the loop, so the Allocate node isn't dominated by
all of the LoadP's loop control.

Ed



More information about the hotspot-dev mailing list