CMake: Add support for CMAKE_LTO option. #4799
Closed
Conversation
This enables Link Time Optimization. LTO is a proven technique for optimizing across compilation units.
Updated to address the feedback in the C/R by @bagder and @jzakrzewski |
I looked over the appveyor and travis ci errors - but they seem to be unrelated to my changes. Let me know if there is anything more I should change. Should we maybe have some CI test with |
The red builds seems unrelated, agreed. It'd be great to perhaps change one of the existing cmake builds to use this feature indeed. I think it would make sense to do that as a separate PR. I'll merge this now and then changing a CI build should be easy. There are cmake builds on both travis and Azure to play with. |
Thanks! |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
This enables Link Time Optimization. LTO is a proven technique for optimizing across compilation units.
This is supported with the right setup on GCC, Clang and MSVC.
I only turn it on for the Release and RelWithDebInfo build types. It doesn't make to much sense on debug builds.
This should be fairly easy to port to the autoconf build system if you know what to do (I don't unfortunately).