| Prepared by: | Thomas Rodriguez (never) on Wed Mar 19 13:01:47 PDT 2008 |
|---|---|
| Workspace: | /export/ws/hs12 |
| Compare against: | /net/jano2.sfbay/export2/hotspot/hg/hotspot-comp.clean |
| Summary of changes: | 164 lines changed: 157 ins; 0 del; 7 mod; 1078 unchg |
| Patch of changes: | 6661247.patch |
| Author comments: |
6661247: Internal bug in 32-bit HotSpot optimizer while bit manipulations Summary: copy elimination of a constant value results in incorrect execution Reviewed-by: Copy elimination works by tracking what underlying value is represented by a node and checking to see if that value is already available in another register. The fix for 5032515 added support for the removal of constants during post allocate copy elimination and contains a subtle bug. The bug occurs when we've got a constant input to a MachSpillCopy and we're going to delete the copy. We only pass one node into the elimination code when we need to pass both the value and the copy. This causes incorrect updating of the index and breaks our modeling of the register state. The fix is to always pass both values through and operate on the proper one. |
| Bug id: | 6661247: Internal bug in 32-bit HotSpot optimizer while bit manipulations |
| Legend: |
Modified file Deleted file New file |
Cdiffs
Udiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/share/vm/opto/chaitin.hpp
2 lines changed: 1 ins; 0 del; 1 mod; 500 unchg
Cdiffs
Udiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/share/vm/opto/postaloc.cpp
7 lines changed: 1 ins; 0 del; 6 mod; 578 unchg
------ ------ ------
------
---
New
Patch
Raw
test/compiler/6661247/Test.java
155 lines changed: 155 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).