Skip to content
This repository has been archived by the owner on Jul 10, 2021. It is now read-only.

Enable experimental Link-Time Optimization support #44

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Enable experimental Link-Time Optimization support #44

wants to merge 3 commits into from

Conversation

feilen
Copy link
Contributor

@feilen feilen commented Jan 21, 2015

This lets the SDK access GCC's Link Time optimization support. It uses the same patterns that Dolphin uses to enable the same support.

Link Time Optimization allows GCC to look over multiple source files to create optimizations, where in most cases it's only able to optimize on a per-function basis, without exactly knowing what impact this will have on the overall code.

When compiled with this, my libovr.so drops from 950+KB to 861KB and has a noticeable reduction in judder in certain apps. Some binaries are able to get up to 34% speed increases with it enabled.

The only other build option I've considered adding would be -ftree-vectorize. That would allow GCC to take non-interdependent loops and generate SSE SIMD equivalents. (Considering the OculusSDK generally operates on a per-eye basis independently in loops, this would most likely give a considerable boost)

It's left as an option so that it can be left up to the discretion of the developer who imports it.

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

Successfully merging this pull request may close these issues.

1 participant