Bug 22861 – Build the compiler with PGO

Status
RESOLVED
Resolution
FIXED
Severity
enhancement
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2022-03-09T02:21:52Z
Last change time
2022-03-28T00:44:01Z
Keywords
pull
Assigned to
No Owner
Creator
mhh

Comments

Comment #0 by maxhaton — 2022-03-09T02:21:52Z
Comment #1 by dlang-bot — 2022-03-09T21:48:24Z
@maxhaton created dlang/dmd pull request #13791 "Fix Issue 22861 - build the compiler with PGO" fixing this issue: - Fix Issue 22861 - build the compiler with PGO This introduces a new target to build.d, dmd-pgo, which will build a dmd with PGO instrumentation, then run either the phobos or dmd testsuite (both are present in the source code, only the dmd one is set to run at the moment). This data is then merged, at which point the data is used to build a release + LTO build of dmd. This resulting build is significantly faster - on the order of 45% on some programs. ENABLE_PGO=1 can be used to make the build script use the dmd-pgo by default, however something more subtle may be required to make all dmd builds (i.e. releases) fully pgo-ified https://github.com/dlang/dmd/pull/13791
Comment #2 by dlang-bot — 2022-03-27T22:46:41Z
@maxhaton created dlang/dmd pull request #13898 "Fix Issue 22861 - build the compiler with PGO (Trying a different branch because of strange CI failure)" fixing this issue: - Fix Issue 22861 - build the compiler with PGO This introduces a new target to build.d, dmd-pgo, which will build a dmd with PGO instrumentation, then run either the phobos or dmd testsuite (both are present in the source code, only the dmd one is set to run at the moment). This data is then merged, at which point the data is used to build a release + LTO build of dmd. This resulting build is significantly faster - on the order of 45% on some programs. Making the release scripts use the PGO build may require further changes. https://github.com/dlang/dmd/pull/13898
Comment #3 by dlang-bot — 2022-03-27T23:21:56Z
@ibuclaw updated dlang/dmd pull request #13899 "[Ignore] Test CircleCI" fixing this issue: - Fix Issue 22861 - build the compiler with PGO This introduces a new target to build.d, dmd-pgo, which will build a dmd with PGO instrumentation, then run either the phobos or dmd testsuite (both are present in the source code, only the dmd one is set to run at the moment). This data is then merged, at which point the data is used to build a release + LTO build of dmd. This resulting build is significantly faster - on the order of 45% on some programs. Making the release scripts use the PGO build may require further changes. https://github.com/dlang/dmd/pull/13899
Comment #4 by dlang-bot — 2022-03-27T23:31:17Z
@ibuclaw created dlang/dmd pull request #13900 "Fix Issue 22861 - build the compiler with PGO" fixing this issue: - Fix Issue 22861 - build the compiler with PGO This introduces a new target to build.d, dmd-pgo, which will build a dmd with PGO instrumentation, then run either the phobos or dmd testsuite (both are present in the source code, only the dmd one is set to run at the moment). This data is then merged, at which point the data is used to build a release + LTO build of dmd. This resulting build is significantly faster - on the order of 45% on some programs. Making the release scripts use the PGO build may require further changes. https://github.com/dlang/dmd/pull/13900
Comment #5 by dlang-bot — 2022-03-28T00:44:01Z
dlang/dmd pull request #13900 "Fix Issue 22861 - build the compiler with PGO" was merged into master: - e2a9fd614ecaa8fcc8df8daaabc42754c6d8d631 by Max Haughton: Fix Issue 22861 - build the compiler with PGO This introduces a new target to build.d, dmd-pgo, which will build a dmd with PGO instrumentation, then run either the phobos or dmd testsuite (both are present in the source code, only the dmd one is set to run at the moment). This data is then merged, at which point the data is used to build a release + LTO build of dmd. This resulting build is significantly faster - on the order of 45% on some programs. Making the release scripts use the PGO build may require further changes. https://github.com/dlang/dmd/pull/13900