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