Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable Interprocedural Optimization #3585

Draft
wants to merge 10 commits into
base: 10.6
Choose a base branch
from

Conversation

grooverdan
Copy link
Member

  • The Jira issue number for this PR is: MDEV-______ (first a draft though CI to see what impacts it has)

Description

Interprocedural Optimization (LTO) provides generally good benefits for performance. Lets enable this where supported.

To achieve this gain we need to be strict and accurate with function prototypes and casting and not rely on undefined behaviour.

Release Notes

Enable Interprocedural Optimization (LTO) for most of the codebase.

How can this PR be tested?

Though all the test in CI.

Basing the PR against the correct MariaDB version

  • This is a new feature or a refactoring, and the PR is based against the main branch.
  • This is a bug fix, and the PR is based against the earliest maintained branch in which the bug can be reproduced.
  • *This is an optimization used by some distributions. To make MariaDB ready for them we test it here first.

PR quality check

  • I checked the CODING_STANDARDS.md file and my PR conforms to this where appropriate.
  • For any trivial modifications to the PR, I am ok with the reviewer making the changes themselves.

@grooverdan grooverdan marked this pull request as draft October 18, 2024 06:17
@vaintroub
Copy link
Member

vaintroub commented Oct 18, 2024

Does not make sense to enable it on Debug builds, and even on Release builds, it should be optional, as it (usually) takes longer time. It makes sense to enable it on release builds on CI, maybe, after we measure some positive effect of it.

@grooverdan
Copy link
Member Author

This was largely a test of what fails and where. Thinking maybe a full test CI. I'm trying keep "options" to a managed set we can actually test.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants