Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init |
|
#
80155cbf |
| 29-Jun-2023 |
Han Shen <shenhan@google.com> |
[Analysis] Refactor MBB hotness/coldness into templated PSI functions.
Currently, to use PSI->isFunctionHotInCallGraph, we first need to calculate BPI->BFI, which is expensive. Instead, we can imple
[Analysis] Refactor MBB hotness/coldness into templated PSI functions.
Currently, to use PSI->isFunctionHotInCallGraph, we first need to calculate BPI->BFI, which is expensive. Instead, we can implement this directly with MBFI. Also as @wenlei mentioned in another patch review, that MachineSizeOpts already has isFunctionColdInCallGraph, isFunctionHotInCallGraphNthPercentile, etc implemented. These can be refactored and so they can be reused across MachineFunctionSplitting and MachineSizeOpts passes.
This CL does this - it refactors out those internal static functions into PSI as templated functions, so they can be accessed easily.
Differential Revision: https://reviews.llvm.org/D153927
show more ...
|
#
4bb3d0e5 |
| 28-Jun-2023 |
Fangrui Song <i@maskray.me> |
Revert D153927 "Resubmit with fix: [NFC] Refactor MBB hotness/coldness into templated PSI functions."
This reverts commit 4d8cf2ae6804e0d3f2b668dbec0f5c1983358328.
There is a library layering viola
Revert D153927 "Resubmit with fix: [NFC] Refactor MBB hotness/coldness into templated PSI functions."
This reverts commit 4d8cf2ae6804e0d3f2b668dbec0f5c1983358328.
There is a library layering violation. LLVMAnalysis cannot depend on LLVMCodeGen.
``` llvm/include/llvm/Analysis/ProfileSummaryInfo.h:19:10: fatal error: 'llvm/CodeGen/MachineFunction.h' file not found 19 | #include "llvm/CodeGen/MachineFunction.h" | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ```
show more ...
|
#
4d8cf2ae |
| 27-Jun-2023 |
Han Shen <shenhan@google.com> |
Resubmit with fix: [NFC] Refactor MBB hotness/coldness into templated PSI functions.
In D152399, we calculate BPI->BFI in MachineFunctionSplit pass just to use PSI->isFunctionHotInCallGraph, which i
Resubmit with fix: [NFC] Refactor MBB hotness/coldness into templated PSI functions.
In D152399, we calculate BPI->BFI in MachineFunctionSplit pass just to use PSI->isFunctionHotInCallGraph, which is expensive. Instead, we can implement this directly with MBFI.
Reviewer mentioned in the comment, that machine_size_opts already has isFunctionColdInCallGraph, isFunctionHotInCallGraphNthPercentile, etc implemented. These can be refactored and reused across MFS and machine size opts.
This CL does this - it refactors out those internal static functions into PSI as templated functions, so they can be accessed easily.
Differential Revision: https://reviews.llvm.org/D153927
show more ...
|
#
bfa1057b |
| 27-Jun-2023 |
Aiden Grossman <agrossman154@yahoo.com> |
Revert "[NFC] Refactor MBB hotness/coldness into templated PSI functions."
This reverts commit c3e33720403c010e140c17313eeefd9a0f25887a.
This has broken quite a few buildbots.
|
#
c3e33720 |
| 24-Jun-2023 |
Han Shen <shenhan@google.com> |
[NFC] Refactor MBB hotness/coldness into templated PSI functions.
In D152399, we calculate BPI->BFI in MachineFunctionSplit pass just to use PSI->isFunctionHotInCallGraph, which is expensive. Instea
[NFC] Refactor MBB hotness/coldness into templated PSI functions.
In D152399, we calculate BPI->BFI in MachineFunctionSplit pass just to use PSI->isFunctionHotInCallGraph, which is expensive. Instead, we can implement this directly with MBFI.
Reviewer mentioned in the comment, that machine_size_opts already has isFunctionColdInCallGraph, isFunctionHotInCallGraphNthPercentile, etc implemented. These can be refactored and reused across MFS and machine size opts.
This CL does this - it refactors out those internal static functions into PSI as templated functions, so they can be accessed easily.
Differential Revision: https://reviews.llvm.org/D152758
show more ...
|
Revision tags: llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2 |
|
#
a494ae43 |
| 01-Mar-2022 |
serge-sans-paille <sguelton@redhat.com> |
Cleanup includes: TransformsUtils
Estimation on the impact on preprocessor output: before: 1065307662 after: 1064800684
Discourse thread: https://discourse.llvm.org/t/include-what-you-use-include-
Cleanup includes: TransformsUtils
Estimation on the impact on preprocessor output: before: 1065307662 after: 1064800684
Discourse thread: https://discourse.llvm.org/t/include-what-you-use-include-cleanup Differential Revision: https://reviews.llvm.org/D120741
show more ...
|
Revision tags: llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1 |
|
#
d8aba75a |
| 07-May-2021 |
Fangrui Song <i@maskray.me> |
Internalize some cl::opt global variables or move them under namespace llvm
|
Revision tags: llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1, llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1 |
|
#
557db6f8 |
| 23-Jul-2020 |
Hiroshi Yamauchi <yamauchi@google.com> |
Reland D84057 [PGO][PGSO] Remove a temporary flag used for gradual rollout.
The revert was a misfire.
Remove the temporary flag PGSOIRPassOrTestOnly and the guard code which was used for the staged
Reland D84057 [PGO][PGSO] Remove a temporary flag used for gradual rollout.
The revert was a misfire.
Remove the temporary flag PGSOIRPassOrTestOnly and the guard code which was used for the staged rollout. This is a cleanup (NFC) as it's now false by default.
Differential Revision: https://reviews.llvm.org/D84057
show more ...
|
#
dbdda823 |
| 22-Jul-2020 |
Fangrui Song <maskray@google.com> |
Revert D84057 "[PGO][PGSO] Remove a temporary flag used for gradual rollout."
This reverts commit e64afefdf88d2607c476f13de05193c0f8991976. It caused a PGO bootstrapped clang to crash on many source
Revert D84057 "[PGO][PGSO] Remove a temporary flag used for gradual rollout."
This reverts commit e64afefdf88d2607c476f13de05193c0f8991976. It caused a PGO bootstrapped clang to crash on many source files.
`__llvm_profile_instrument_range` seems to trigger a null pointer dereference.
Call stack: __llvm_profile_instrument_range llvm::APInt::udiv(llvm::APInt const&) const getRangeForAffineARHelper
show more ...
|
#
e64afefd |
| 17-Jul-2020 |
Hiroshi Yamauchi <yamauchi@google.com> |
[PGO][PGSO] Remove a temporary flag used for gradual rollout.
Remove the temporary flag PGSOIRPassOrTestOnly and the guard code which was used for the staged rollout. This is a cleanup (NFC) as it's
[PGO][PGSO] Remove a temporary flag used for gradual rollout.
Remove the temporary flag PGSOIRPassOrTestOnly and the guard code which was used for the staged rollout. This is a cleanup (NFC) as it's now false by default.
Differential Revision: https://reviews.llvm.org/D84057
show more ...
|
Revision tags: llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2, llvmorg-10.0.1-rc1 |
|
#
18319868 |
| 27-Apr-2020 |
Hiroshi Yamauchi <yamauchi@google.com> |
[PGO][PGSO] Prep for enabling non-cold code size opts under non-partial-profile sample PGO.
Summary: - Distinguish between partial-profile and non-partial-profile sample PGO. - Add a flag for partia
[PGO][PGSO] Prep for enabling non-cold code size opts under non-partial-profile sample PGO.
Summary: - Distinguish between partial-profile and non-partial-profile sample PGO. - Add a flag for partial-profile sample PGO. - Tune the sample PGO cutoff. - No default behavior change (yet).
Reviewers: davidxl
Subscribers: eraman, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D78949
show more ...
|
#
8a33920f |
| 10-Apr-2020 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
SizeOpts.h - remove ProfileSummaryInfo forward declaration. NFC.
We're include the entire ProfileSummaryInfo.h as inline functions use it in the header.
|
Revision tags: llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3 |
|
#
76b9901f |
| 03-Mar-2020 |
Hiroshi Yamauchi <yamauchi@google.com> |
[PGO][PGSO] Use IsColdXNthPercentile for sample PGO.
Summary: This performs better for sample PGO. NFC as PGSOColdCodeOnlyForSamplePGO is still true.
Reviewers: davidxl
Subscribers: hiraditya, llv
[PGO][PGSO] Use IsColdXNthPercentile for sample PGO.
Summary: This performs better for sample PGO. NFC as PGSOColdCodeOnlyForSamplePGO is still true.
Reviewers: davidxl
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D75550
show more ...
|
Revision tags: llvmorg-10.0.0-rc2, llvmorg-10.0.0-rc1 |
|
#
b70f23f5 |
| 17-Jan-2020 |
Hiroshi Yamauchi <yamauchi@google.com> |
[PGO][PGSO] Tune flags for profile guided size optimization.
Summary: Tune the profile threshold flag value for instrumentation PGO based on internal benchmarks.
Also, add flags to allow profile gu
[PGO][PGSO] Tune flags for profile guided size optimization.
Summary: Tune the profile threshold flag value for instrumentation PGO based on internal benchmarks.
Also, add flags to allow profile guided size optimizations for non-cold code to be enabled separately for instrumentation and sample PGSO.
Neither changes the default behavior (yet) as it's disabled for non-cold code.
Reviewers: davidxl
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72937
show more ...
|
#
ac8da31a |
| 29-Jan-2020 |
Hiroshi Yamauchi <yamauchi@google.com> |
[PGO][PGSO] Handle MBFIWrapper
Some code gen passes use MBFIWrapper to keep track of the frequency of new blocks. This was not taken into account and could lead to incorrect frequencies as MBFI sile
[PGO][PGSO] Handle MBFIWrapper
Some code gen passes use MBFIWrapper to keep track of the frequency of new blocks. This was not taken into account and could lead to incorrect frequencies as MBFI silently returns zero frequency for unknown/new blocks.
Add a variant for MBFIWrapper in the PGSO query interface.
Depends on D73494.
show more ...
|
#
caee9603 |
| 17-Jan-2020 |
Craig Topper <craig.topper@gmail.com> |
[Transforms][RISCV] Remove a "using namespace llvm" from an include file. Fix a place that became dependent on it.
This include file was created in October and has a "using namespace llvm". This see
[Transforms][RISCV] Remove a "using namespace llvm" from an include file. Fix a place that became dependent on it.
This include file was created in October and has a "using namespace llvm". This seems to get exposed to other include files and finally onto cpp files. While this somewhat okay for llvm itself, its bad for other projects that use llvm as a library and includes a header file that picks this up. This was found by ISPC which has some class names at gloal scope with the same names as LLVM.
It looks like RISCV accidentally became dependent on this. I fixed it by reordering some includes in the RISCV code, but maybe we want to change the TableGenEmitter to put "namespace llvm {" in the generated file instead? But we probably want to do the simplest thing first so we can merge it to 10.0.
Differential Revision: https://reviews.llvm.org/D72895
show more ...
|
Revision tags: llvmorg-11-init, llvmorg-9.0.1, llvmorg-9.0.1-rc3, llvmorg-9.0.1-rc2 |
|
#
62d42997 |
| 03-Dec-2019 |
Hiroshi Yamauchi <yamauchi@google.com> |
[PGO][PGSO] Distinguish queries from unit tests and explicitly enable for the existing IR passes only. NFC.
Summary: This is one more prep step necessary before the code gen pass instrumentation cod
[PGO][PGSO] Distinguish queries from unit tests and explicitly enable for the existing IR passes only. NFC.
Summary: This is one more prep step necessary before the code gen pass instrumentation code could go in.
Reviewers: davidxl
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D70988
show more ...
|
Revision tags: llvmorg-9.0.1-rc1 |
|
#
8cdfdfee |
| 20-Nov-2019 |
Hiroshi Yamauchi <yamauchi@google.com> |
[PGO][PGSO] Add an optional query type parameter to shouldOptimizeForSize.
Summary: In case of a need to distinguish different query sites for gradual commit or debugging of PGSO. NFC.
Reviewers: d
[PGO][PGSO] Add an optional query type parameter to shouldOptimizeForSize.
Summary: In case of a need to distinguish different query sites for gradual commit or debugging of PGSO. NFC.
Reviewers: davidxl
Subscribers: hiraditya, zzheng, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D70510
show more ...
|
#
3f0969da |
| 13-Nov-2019 |
Hiroshi Yamauchi <yamauchi@google.com> |
[PGO][PGSO] Temporarily disable the large working set size behavior.
Summary: This temporarily disables the large working set size behavior in profile guided size optimization due to internal benchm
[PGO][PGSO] Temporarily disable the large working set size behavior.
Summary: This temporarily disables the large working set size behavior in profile guided size optimization due to internal benchmark regressions.
Reviewers: davidxl
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D70207
show more ...
|
#
75f72f6b |
| 28-Oct-2019 |
Hiroshi Yamauchi <yamauchi@google.com> |
[PGO][PGSO] SizeOpts changes.
Summary: (Split of off D67120)
SizeOpts/MachineSizeOpts changes for profile guided size optimization.
(A second try after previously committed as r375254 and reverted
[PGO][PGSO] SizeOpts changes.
Summary: (Split of off D67120)
SizeOpts/MachineSizeOpts changes for profile guided size optimization.
(A second try after previously committed as r375254 and reverted as r375375.)
Subscribers: mgorny, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69409
show more ...
|
#
92c96c7b |
| 20-Oct-2019 |
Vladimir Vereschaka <vvereschaka@accesssoftek.com> |
Reverted r375254 as it has broken some build bots for a long time.
llvm-svn: 375375
|
#
7e163745 |
| 18-Oct-2019 |
Hiroshi Yamauchi <yamauchi@google.com> |
[PGO][PGSO] SizeOpts changes.
Summary: (Split of off D67120)
SizeOpts/MachineSizeOpts changes for profile guided size optimization.
Reviewers: davidxl
Subscribers: mgorny, hiraditya, llvm-commits
[PGO][PGSO] SizeOpts changes.
Summary: (Split of off D67120)
SizeOpts/MachineSizeOpts changes for profile guided size optimization.
Reviewers: davidxl
Subscribers: mgorny, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69070
llvm-svn: 375254
show more ...
|
Revision tags: llvmorg-9.0.0, llvmorg-9.0.0-rc6, llvmorg-9.0.0-rc5, llvmorg-9.0.0-rc4, llvmorg-9.0.0-rc3, llvmorg-9.0.0-rc2, llvmorg-9.0.0-rc1, llvmorg-10-init, llvmorg-8.0.1, llvmorg-8.0.1-rc4, llvmorg-8.0.1-rc3, llvmorg-8.0.1-rc2, llvmorg-8.0.1-rc1 |
|
#
5221532a |
| 15-Apr-2019 |
Hiroshi Yamauchi <yamauchi@google.com> |
Fix header guard typo and build error.
llvm-svn: 358429
|
#
09e539fc |
| 15-Apr-2019 |
Hiroshi Yamauchi <yamauchi@google.com> |
[PGO] Profile guided code size optimization.
Summary: Enable some of the existing size optimizations for cold code under PGO.
A ~5% code size saving in big internal app under PGO.
The way it gets
[PGO] Profile guided code size optimization.
Summary: Enable some of the existing size optimizations for cold code under PGO.
A ~5% code size saving in big internal app under PGO.
The way it gets BFI/PSI is discussed in the RFC thread
http://lists.llvm.org/pipermail/llvm-dev/2019-March/130894.html
Note it doesn't currently touch loop passes.
Reviewers: davidxl, eraman
Reviewed By: eraman
Subscribers: mgorny, javed.absar, smeenai, mehdi_amini, eraman, zzheng, steven_wu, dexonsmith, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D59514
llvm-svn: 358422
show more ...
|