RFR(S): 8027480 - Build Windows x64 fastdebug builds using	/homeparams
    Christian Tornqvist 
    christian.tornqvist at oracle.com
       
    Wed Aug 20 14:49:30 UTC 2014
    
    
  
> Do we have any idea how much of a change? Do we care? I'm presuming the
increased debuggability is worth it.
It adds 0-4 additional stack movs in function prologue code which should
have a very low impact, it's only on debug/fastdebug builds.
> The above block will also apply to an "ia64" build. We don't support that
anymore, but I don't know if any licensees support it.
I've changed the checks in vm.make and WinGammaPlatformVC10.java
> Do we need to do anything about the new, but unused  platform to make
lint-like tools not squawk?
I'll open a new bug to clean up the VC7/8/9 files in ProjectCreator.
New webrev:
http://cr.openjdk.java.net/~ctornqvi/webrev/8027480/webrev.01/
Thanks,
Christian
-----Original Message-----
From: Daniel D. Daugherty [mailto:daniel.daugherty at oracle.com] 
Sent: Wednesday, August 20, 2014 9:48 AM
To: Christian Tornqvist
Cc: hotspot-dev at openjdk.java.net
Subject: Re: RFR(S): 8027480 - Build Windows x64 fastdebug builds using
/homeparams
 > http://cr.openjdk.java.net/~ctornqvi/webrev/8027480/webrev.00/
General Comment
The MSDN note says:
 > /homeparams does imply a performance disadvantage, because it  > does
require a cycle to load the register parameters on to the stack.
Do we have any idea how much of a change? Do we care? I'm presuming the
increased debuggability is worth it.
make/windows/makefiles/vm.make
     line 38: !else
     line 39: CXX_FLAGS=$(CXX_FLAGS) /D "ASSERT" /homeparams
     line 40: !endif
         The above block will also apply to an "ia64" build.
         We don't support that anymore, but I don't know if
         any licensees support it.
src/share/tools/ProjectCreator/BuildConfig.java
     No comments.
src/share/tools/ProjectCreator/WinGammaPlatformVC10.java
     line 373: if(!platformName.equals("Win32")) {
     line 374:     addAttr(rv, "AdditionalOptions", "/homeparams");
         The above block will also apply to an "ia64" build.
src/share/tools/ProjectCreator/WinGammaPlatformVC7.java
src/share/tools/ProjectCreator/WinGammaPlatformVC8.java
     Do we need to do anything about the new, but unused
     platform to make lint-like tools not squawk?
Thumbs up.
Dan
On 8/19/14 5:39 PM, Christian Tornqvist wrote:
> Hi everyone,
>
>   
>
> This change adds /homeparams
> (http://msdn.microsoft.com/en-us/library/6exwh0y6.aspx) to compiler 
> flags when building fastdebug on Windows x64. This causes the compiler 
> to generate code to spill the first 4 arguments to the stack (they're 
> normally only passed in registers), which should make it easier to debug.
>
>   
>
> I also changed the ProjectCreator to enable building with this using 
> Visual Studio. The size of jvm.dll increases with about 3% (about 504k
increase).
>
>   
>
> Verified that it builds correctly using Visual Studio and JPRT, the 
> generation of the spill code has been verified by comparing prologue 
> code for several functions in the JVM with/without using /homeparams.
>
>   
>
> Webrev:
>
> http://cr.openjdk.java.net/~ctornqvi/webrev/8027480/webrev.00/
>
>   
>
> Bug:
>
> https://bugs.openjdk.java.net/browse/JDK-8027480
>
>   
>
> Thanks,
>
> Christian
>
>   
>
    
    
More information about the build-dev
mailing list