Code Review for 6756768

Prepared by: Thomas Rodriguez (never) on Fri Nov 7 15:04:43 PST 2008
Workspace:/export/ws/c1
Compare against: ssh://hg.openjdk.java.net/jdk7/hotspot-comp-gate/hotspot
Summary of changes: 213 lines changed: 138 ins; 29 del; 46 mod; 4354 unchg
Patch of changes: 6756768.patch
Author comments:
6756768: C1 generates invalid code
Reviewed-by:

This is a day one bug with value numbering in C1. Static field
references for uninitialized classes should invalidate the memory
state but currently they allow value numbering to proceed across them.
The fix is to have LoadField and StoreField of uninitialized classes
kill memory. To get a uniform fix I extended the
ValueNumberingVisitor which describes memory effects to have a simple
subclass for use by GraphBuilder and removed the special handling in
GraphBuilder. This assures that local and global value numbering do
the same thing.

test with runthese and nsk on sparc and intel

Legend: Modified file
Deleted file
New file

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/c1/c1_ValueMap.hpp

70 lines changed: 24 ins; 0 del; 46 mod; 158 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/c1/c1_GraphBuilder.cpp

31 lines changed: 4 ins; 27 del; 0 mod; 3808 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/c1/c1_GraphBuilder.hpp

2 lines changed: 0 ins; 2 del; 0 mod; 388 unchg

------ ------ ------ ------ --- New Patch Raw test/compiler/6756768/Test6756768.java

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

------ ------ ------ ------ --- New Patch Raw test/compiler/6756768/Test6756768_2.java

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

This code review page was prepared using /net/smite.sfbay/never/bin/hgwebrev (vers 23.12-hg-never).