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

Enable experimental Link-Time Optimization support#44

Open
feilen wants to merge 3 commits intojherico:masterfrom
feilen:master
Open

Enable experimental Link-Time Optimization support#44
feilen wants to merge 3 commits intojherico:masterfrom
feilen:master

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