| 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).