United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6978249 spill between cpu and fpu registers when those moves are fast
JDK-6978249 : spill between cpu and fpu registers when those moves are fast

Details
Type:
Enhancement
Submit Date:
2010-08-18
Status:
Closed
Updated Date:
2011-04-23
Project Name:
JDK
Resolved Date:
2011-04-23
Component:
hotspot
OS:
solaris_9
Sub-Component:
compiler
CPU:
x86
Priority:
P3
Resolution:
Fixed
Affected Versions:
hs19
Fixed Versions:
hs19 (b06)

Related Reports
Backport:
Backport:
Backport:
Backport:

Sub Tasks

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

http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/f55c4f82ab9d
                                     
2010-08-20
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.
                                     
2010-08-20



Hardware and Software, Engineered to Work Together