Code Review for 6877254

Prepared by:cfang on Tue Sep 1 11:02:04 PDT 2009
Workspace:/home/cfang/hg/6877254
Compare against: http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot
Summary of changes: 93 lines changed: 79 ins; 4 del; 10 mod; 12453 unchg
Patch of changes: 6877254.patch
Author comments:
Optimizations may result in a MergeMem node to be the OopStore input
of a StoreCM node. The MergeMem node is unnecessary if the StoreCM
is its only output. However, this unusual pattern may confuse other
optimizations (e.g. the "no branches off of store slice" assertion
in superwordization). In this work, we implement StoreCMNode::Ideal
to promote its OopStore above the MergeMem (closer to its matching
StoreP), and hence the unnecessary MergeMem could be removed. This
fixes bug 6877254

Tested with JPRT, CTW and the test case in 6877254 bug report
Legend: Modified file
Deleted file
New file

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

7 lines changed: 2 ins; 0 del; 5 mod; 3446 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/graphKit.hpp

4 lines changed: 2 ins; 0 del; 2 mod; 776 unchg

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

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

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/idealKit.hpp

1 line changed: 1 ins; 0 del; 0 mod; 229 unchg

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

19 lines changed: 19 ins; 0 del; 0 mod; 4031 unchg

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

5 lines changed: 4 ins; 0 del; 1 mod; 1245 unchg

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

4 lines changed: 0 ins; 4 del; 0 mod; 2224 unchg

------ ------ ------ ------ --- New Patch Raw test/compiler/6877254/Test.java

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

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