SUGGESTED FIX
PRT webrev:
http://prt-web.sfbay.sun.com/net/prt-archiver.sfbay/data/archived_workspaces/main/c2_baseline/2007/20071002104230.rasbold.jdk7_bugs/workspace/webrevs/webrev-2007.10.02/index.html
|
|
|
EVALUATION
This was a bug in the superword optimization. It was not correctly
checking that a pair of loads for the source of the data were adjacent
in memory. The test case in the bug report was a loop copying consecutive
elements of a long array, casting each element to int and storing it in an int
array.
The fix was to add a check that the loads were adjacent. To reduce
the chance of other regressions caused by this new optimization, I have turned
off the UseSuperWord flag by default as part of the fix for this bug in 6u4.
It will be enabled by the AgressiveOpts flag.
|
|
|
WORK AROUND
Use the -XX:-UseSuperWord flag with the server compiler.
|
|
|
EVALUATION
This is a bug in the superword vectorization which was exposed by the fix for bug 6544668. This fix enabled the UseSuperWord flag by default. It occurs in previous builds if this flag is explicitly turned on.
|
|
|
EVALUATION
The problems seems to be with server compiler wrt. loop expansion. See comments for
details, reassigning to the c2 team for further analysis.
|
|
|
WORK AROUND
use the client compiler with -client.
|
|
|