Open
Description
We recently had a fair amount of reports about code generation quality drop. One of the recent causes for the quality drop is the enablement of codegen-units and ThinLTO.
It seems that ThinLTO is not capable of producing results matching those obtained by compiling without codegen-units in the first place.
The list of known reports follows:
- 2x benchmark loss in rayon-hash from multiple codegen-units #47665
- Performance regressions of compiled code over the last year #47561
- Performance regression on pest in newest nightly #47356
- Performance regression with nightly benchmarks. #47062 (specifically this comment)
- Performance regression on nightly (when using Cursor::read_exact and Byteorder) #47321
- ThinLTO bloats size of bare metal programs by up to 1200% #47770
- 35% performance regression in generated code since 1.24 #53833
Improvements to ThinLTO quality are inbound with the soon-to-happen LLVM upgrade(s), however those do not help sufficiently, it would be nice to figure out why ThinLTO is not doing good enough job.
Metadata
Metadata
Assignees
Labels
Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.Category: An issue highlighting optimization opportunities or PRs implementing suchIssue: Problems and improvements with respect to performance of generated code.Relevant to the compiler team, which will review and decide on the PR/issue.