Port Windows PGO support to master (dotnet/coreclr#9985)
authorDaniel Podder <dapodd@microsoft.com>
Wed, 8 Mar 2017 03:14:57 +0000 (21:14 -0600)
committerGitHub <noreply@github.com>
Wed, 8 Mar 2017 03:14:57 +0000 (21:14 -0600)
commit1859228ff5947f789e244a99435c435d5792c745
tree144298e808afbcefc55c38f37b620b0e01799da5
parent8c1b8a0c883da3d585b24bc314292490d33ff3bd
Port Windows PGO support to master (dotnet/coreclr#9985)

The bulk of this PR is a cherry-pick of commit fa02660 that shipped in
release/1.1.0, updating the build system support for PGO to support
consuming PGDs properly during release builds on Windows.

Also included are the following new changes:
* Skip restore of opdata if the requisite project.json is missing
* If the optdata package restore fails, fail the build.
* Add new build option: 'skiprestoreoptdata'

Note: This change doesn't by itself enable PGO in master yet, because
training data (optdata packages) for master don't exist on myget yet.
However, with these changes, the only step remaining to enable PGO
optimizations is to add a project.json referencing the correct optdata
package.

Commit migrated from https://github.com/dotnet/coreclr/commit/1a1fdb8fb0839832b64248582082c90e166b74b5
src/coreclr/build.cmd
src/coreclr/build.proj
src/coreclr/build.sh
src/coreclr/config.json
src/coreclr/extract-from-json.py [new file with mode: 0755]
src/coreclr/pgosupport.cmake