Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dotnet/runtime.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Gocke <angocke@microsoft.com>2021-04-25 04:18:20 +0300
committerGitHub <noreply@github.com>2021-04-25 04:18:20 +0300
commit90f97ac50154ee23449f273c3a8d13dfe985815b (patch)
tree56bd516a95fcedccea98b8ebdcf805dc3ac7c1a7
parenta123d28793ad22954ca6d9074f43b540d0d30b43 (diff)
Use newest PGO data for Linux and windows-x86 (#51656)
This data was previously held back because we weren't producing builds with Linux or windows-x86 but now we are. The Linux builds now produce only a single profdata file, coreclr.profdata, which should contain all the profile information for all the libraries in the runtime.
-rw-r--r--eng/Version.Details.xml2
-rw-r--r--eng/Versions.props2
-rw-r--r--src/coreclr/.nuget/optdata/optdata.csproj2
-rw-r--r--src/coreclr/pgosupport.cmake6
4 files changed, 7 insertions, 5 deletions
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 26428d279ad..2bacc8f6a18 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -86,7 +86,7 @@
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-optimization</Uri>
<Sha>f69d7fc09c4fdb9e9427741b9a176e867dab577f</Sha>
</Dependency>
- <Dependency Name="optimization.PGO.CoreCLR" Version="99.99.99-master-20200806.6">
+ <Dependency Name="optimization.PGO.CoreCLR" Version="99.99.99-master-20210420.2">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-optimization</Uri>
<Sha>f69d7fc09c4fdb9e9427741b9a176e867dab577f</Sha>
</Dependency>
diff --git a/eng/Versions.props b/eng/Versions.props
index a6086ee484c..08a5e19a497 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -129,7 +129,7 @@
<optimizationlinuxx64IBCCoreFxVersion>99.99.99-master-20200806.6</optimizationlinuxx64IBCCoreFxVersion>
<optimizationwindows_ntx64IBCCoreCLRVersion>99.99.99-master-20200806.6</optimizationwindows_ntx64IBCCoreCLRVersion>
<optimizationlinuxx64IBCCoreCLRVersion>99.99.99-master-20200806.6</optimizationlinuxx64IBCCoreCLRVersion>
- <optimizationPGOCoreCLRVersion>99.99.99-master-20210415.12</optimizationPGOCoreCLRVersion>
+ <optimizationPGOCoreCLRVersion>99.99.99-master-20210420.2</optimizationPGOCoreCLRVersion>
<!-- Not auto-updated. -->
<MicrosoftDiaSymReaderNativeVersion>16.9.0-beta1.21055.5</MicrosoftDiaSymReaderNativeVersion>
<SystemCommandLineVersion>2.0.0-beta1.20253.1</SystemCommandLineVersion>
diff --git a/src/coreclr/.nuget/optdata/optdata.csproj b/src/coreclr/.nuget/optdata/optdata.csproj
index 3bb1e6d3b03..716f99f6c16 100644
--- a/src/coreclr/.nuget/optdata/optdata.csproj
+++ b/src/coreclr/.nuget/optdata/optdata.csproj
@@ -8,8 +8,6 @@
<OptimizationDataSupported Condition="'$(TargetOS)' == 'Linux' And '$(TargetArchitecture)' == 'x64'">True</OptimizationDataSupported>
<!-- At the moment, we are only generating data for Windows X64 in the most recent optimization data publishing platform. Use the old data for now -->
- <oldOptimizationPGOCoreCLRVersion>99.99.99-master-20200806.6</oldOptimizationPGOCoreCLRVersion>
- <optimizationPGOCoreCLRVersion Condition="'$(TargetOS)' != 'windows' or '$(TargetArchitecture)' != 'x64'">$(oldOptimizationPGOCoreCLRVersion)</optimizationPGOCoreCLRVersion>
<RuntimeIdentifiers>win7-x64;win7-x86;linux-x64</RuntimeIdentifiers>
<ExcludeFromSourceBuild>true</ExcludeFromSourceBuild>
<_TargetOSArchLowercase>$(TargetOS.ToLower())-$(TargetArchitecture.ToLower())</_TargetOSArchLowercase>
diff --git a/src/coreclr/pgosupport.cmake b/src/coreclr/pgosupport.cmake
index 1e2be5dadb0..c0791c445f0 100644
--- a/src/coreclr/pgosupport.cmake
+++ b/src/coreclr/pgosupport.cmake
@@ -30,7 +30,7 @@ function(add_pgo TargetName)
if(CLR_CMAKE_HOST_WIN32)
set(ProfileFileName "${TargetName}.pgd")
else(CLR_CMAKE_HOST_WIN32)
- set(ProfileFileName "${TargetName}.profdata")
+ set(ProfileFileName "coreclr.profdata")
endif(CLR_CMAKE_HOST_WIN32)
file(TO_NATIVE_PATH
@@ -41,6 +41,10 @@ function(add_pgo TargetName)
# If we don't have profile data availble, gracefully fall back to a non-PGO opt build
if(NOT EXISTS ${ProfilePath})
message("PGO data file NOT found: ${ProfilePath}")
+ elseif(CMAKE_GENERATOR MATCHES "Visual Studio")
+ # MSVC is sensitive to exactly the options passed during PGO optimization and Ninja and
+ # MSBuild differ slightly (but not meaningfully for runtime behavior)
+ message("Cannot use PGO optimization built with Ninja from MSBuild. Re-run build with Ninja to apply PGO information")
else(NOT EXISTS ${ProfilePath})
if(CLR_CMAKE_HOST_WIN32)
set_property(TARGET ${TargetName} APPEND_STRING PROPERTY LINK_FLAGS_RELEASE " /LTCG /USEPROFILE:PGD=\"${ProfilePath}\"")