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.

To download the current JDK release, click here.
JDK 6 JDK 7 Other
6u21pFixed 7Fixed hs19Fixed
Description
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.
20-08-2010

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/f55c4f82ab9d
20-08-2010