JDK-6978249 : spill between cpu and fpu registers when those moves are fast
Type:Enhancement
Component:hotspot
Sub-Component:compiler
Affected Version:hs19
Priority:P3
Status:Closed
Resolution:Fixed
OS:solaris_9
CPU:x86
Submitted:2010-08-18
Updated:2011-04-23
Resolved:2011-04-23
The Version table provides details related to the release that this issue/RFE will be addressed.
Unresolved : Release in which this issue/RFE will be addressed. Resolved: Release in which this issue/RFE has been resolved. Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.
On some architectures moves between CPU and FPU registers are fast so the can be used for spilling instead of the stack. We should add some support for this and look into enabling it by default for chips where it's fast.
Comments
EVALUATION
6978249: spill between cpu and fpu registers when those moves are fast
Reviewed-by: kvn
On some architectures moves between CPU and FPU registers are fast so
they can be used for spilling instead of the stack. This change adds
a new flag UseFPUForSpilling and sets up the spill reg masks to allow
this when the flag is on. Currently for Nehalem class chips it seems
to be a uniform win but we'll keep it under AggressiveOpts for now.
There are some minor changes to spilling logic that are currently
guarded until we determine that they are generally a good idea. I
also moved the logic for PrintFlagsFinal since the initialization of
several subsystems may change some flag values which will be missed by
the current location. Tested with scimark, ctw and the nsk tests on
32 and 64 bit.