https://github.com/python/cpython/commit/8865b4f95b32097099d252111669b88ec7c1eb7f
commit: 8865b4f95b32097099d252111669b88ec7c1eb7f
branch: main
author: Steve Dower <steve.do...@python.org>
committer: zooba <steve.do...@microsoft.com>
date: 2025-05-30T19:37:29+01:00
summary:

gh-134923: Use /GENPROFILE and /USEPROFILE for Windows PGO builds (GH-134924)

files:
A Misc/NEWS.d/next/Build/2025-05-30-11-02-30.gh-issue-134923.gBkRg4.rst
M PCbuild/_testclinic_limited.vcxproj
M PCbuild/pyproject.props

diff --git 
a/Misc/NEWS.d/next/Build/2025-05-30-11-02-30.gh-issue-134923.gBkRg4.rst 
b/Misc/NEWS.d/next/Build/2025-05-30-11-02-30.gh-issue-134923.gBkRg4.rst
new file mode 100644
index 00000000000000..a742a6add8ae93
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2025-05-30-11-02-30.gh-issue-134923.gBkRg4.rst
@@ -0,0 +1,3 @@
+Windows builds with profile-guided optimization enabled now use
+``/GENPROFILE`` and ``/USEPROFILE`` instead of deprecated ``/LTCG:``
+options.
diff --git a/PCbuild/_testclinic_limited.vcxproj 
b/PCbuild/_testclinic_limited.vcxproj
index 183a55080e8693..95c205309b1f30 100644
--- a/PCbuild/_testclinic_limited.vcxproj
+++ b/PCbuild/_testclinic_limited.vcxproj
@@ -70,6 +70,7 @@
     <ProjectGuid>{01FDF29A-40A1-46DF-84F5-85EBBD2A2410}</ProjectGuid>
     <RootNamespace>_testclinic_limited</RootNamespace>
     <Keyword>Win32Proj</Keyword>
+    <SupportPGO>false</SupportPGO>
   </PropertyGroup>
   <Import Project="python.props" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
diff --git a/PCbuild/pyproject.props b/PCbuild/pyproject.props
index 7272542e13a5ca..ce51e342241686 100644
--- a/PCbuild/pyproject.props
+++ b/PCbuild/pyproject.props
@@ -96,19 +96,16 @@
       <TargetMachine Condition="'$(Platform)' == 
'x64'">MachineX64</TargetMachine>
       <TargetMachine 
Condition="'$(Platform)'=='ARM'">MachineARM</TargetMachine>
       <TargetMachine 
Condition="'$(Platform)'=='ARM64'">MachineARM64</TargetMachine>
-      <ProfileGuidedDatabase 
Condition="$(SupportPGO)">$(OutDir)$(TargetName).pgd</ProfileGuidedDatabase>
-      <LinkTimeCodeGeneration Condition="$(Configuration) == 
'Release'">UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
-      <LinkTimeCodeGeneration Condition="$(SupportPGO) and $(Configuration) == 
'PGInstrument'">PGInstrument</LinkTimeCodeGeneration>
-      <LinkTimeCodeGeneration Condition="$(SupportPGO) and $(Configuration) == 
'PGUpdate'">PGUpdate</LinkTimeCodeGeneration>
+      <LinkTimeCodeGeneration Condition="$(Configuration) != 
'Debug'">UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
       
<AdditionalDependencies>advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalOptions Condition="$(Configuration) != 
'Debug'">/OPT:REF,NOICF %(AdditionalOptions)</AdditionalOptions>
       <AdditionalOptions Condition="$(MSVCHasBrokenARM64Clamping) == 'true' 
and $(Platform) == 'ARM64'">-d2:-pattern-opt-disable:-932189325 
%(AdditionalOptions)</AdditionalOptions>
+      <AdditionalOptions Condition="$(SupportPGO) and $(Configuration) == 
'PGInstrument'">/GENPROFILE %(AdditionalOptions)</AdditionalOptions>
+      <AdditionalOptions Condition="$(SupportPGO) and $(Configuration) == 
'PGUpdate'">/USEPROFILE %(AdditionalOptions)</AdditionalOptions>
     </Link>
     <Lib>
       <LinkTimeCodeGeneration>false</LinkTimeCodeGeneration>
-      <LinkTimeCodeGeneration Condition="$(Configuration) == 
'Release'">true</LinkTimeCodeGeneration>
-      <LinkTimeCodeGeneration Condition="$(SupportPGO) and $(Configuration) == 
'PGInstrument'">true</LinkTimeCodeGeneration>
-      <LinkTimeCodeGeneration Condition="$(SupportPGO) and $(Configuration) == 
'PGUpdate'">true</LinkTimeCodeGeneration>
+      <LinkTimeCodeGeneration Condition="$(Configuration) != 
'Debug'">true</LinkTimeCodeGeneration>
     </Lib>
     <ResourceCompile>
       
<AdditionalIncludeDirectories>$(PySourcePath)PC;$(PySourcePath)Include;$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

_______________________________________________
Python-checkins mailing list -- python-checkins@python.org
To unsubscribe send an email to python-checkins-le...@python.org
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: arch...@mail-archive.com

Reply via email to