Code Review for 6661247

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