Code Review for 7002666

Prepared by:never on Tue Nov 30 11:47:18 PST 2010
Workspace:/export/ws/baseline
Compare against: ssh://hg.openjdk.java.net/jdk7/hotspot-comp-gate/hotspot
Summary of changes: 63 lines changed: 59 ins; 0 del; 4 mod; 4174 unchg
Patch of changes: 7002666.patch
Author comments:
7002666: eclipse CDT projects crash with compressed oops
Reviewed-by:

When emitting the code to zero a newly allocated object C2 attempts to
identify space that's already been initialized or extra space that
isn't actually part of an instance. The logic for this should only be
executed for instances and never for arrays but the logic doesn't
explicitly test for arrays. It's normally protected in the array case
because the klass is precise and the value of layout_helper will never
match zeroes_done since it's always negative for arrays. In this case
the newArray is producing something that's typed as Object so the
klass input of the allocation says Object and it mistakenly assumes
the rest of the array doesn't need zeroing. The fix is to only
execute this logic for AllocateNodes. Tested with eclipse and with
new test case.

Legend: Modified file
Deleted file
New file

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/memnode.cpp

6 lines changed: 2 ins; 0 del; 4 mod; 4174 unchg

------ ------ ------ ------ --- New Patch Raw test/compiler/7002666/Test7002666.java

57 lines changed: 57 ins; 0 del; 0 mod; 0 unchg

This code review page was prepared using /never/bin/webrev (vers 23.18-hg-never).