[PATCH] D81223: Size LTO (1/3): Standardizing the use of OptimizationLevel
Mehdi AMINI via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jun 11 09:23:10 PDT 2020
mehdi_amini added a comment.
In D81223#2087660 <https://reviews.llvm.org/D81223#2087660>, @rcorcs wrote:
> The way I see it, with size level for LTO, we could have a different LTO optimization pipeline for size or runtime performance.
So this is the important point to settle before going on with any patch: this isn't how LTO is setup today.
> For example, we could have a different tuning for inlining, vectorization, etc.
All these are covered by the function attributes already.
> We could also use the size level to automatically enable optimizations such as HotColdSplitting, MergeFunctions, etc., instead of relying on specific enabling flags. We could also have other size-specific optimizations in the future, such as MergeSimilarFunctions (https://reviews.llvm.org/D52896).
All these could be in the LTO pipeline and driven by the attribute as well.
> I believe that function attributes for size are useful for optimizing cold functions that have been outlined by HotColdSplitting, for example.
The attribute is added by the frontend and can change per translation-unit / per function though.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D81223/new/
https://reviews.llvm.org/D81223
More information about the cfe-commits
mailing list