Skip to content

Various optimizations for LC3 - #91

Open
Thalley wants to merge 4 commits into
google:mainfrom
Thalley:optimizations
Open

Thalley wants to merge 4 commits into
google:mainfrom
Thalley:optimizations

Conversation

@Thalley

@Thalley Thalley commented Oct 19, 2026 •

Copy link
Copy Markdown

Some various minor optimizations. Tested with perf on x86 to be around ~13-14% total optimization for the encoder, and ~2-3% for the decoder.

For ARM Cortex-M33 we are seeing

image

@google-cla

google-cla Bot commented Oct 19, 2026

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@Thalley
Thalley marked this pull request as ready for review October 20, 2026 13:26
Emil Gydesen added 4 commits October 22, 2026 11:48
copysignf is a branchless optimization for when *xs
can be positive or negative.

Estimated optimization at ~1.3%.

Signed-off-by: Emil Gydesen <thalley@thalley.com>
Instead of computing it for nc1 and nc2 individually,
compute it once before and apply to both.

Estimated optimization at ~0.04%

Signed-off-by: Emil Gydesen <thalley@thalley.com>
This commit optimizes the loop in fft_bf2 by avoiding
duplicated computations, and instead compute some results
once instead.

Estimated optimization at ~2.07%

Signed-off-by: Emil Gydesen <thalley@thalley.com>
By caching the results in a stack allocated xq, some duplicated
computations could be avoided. This is a tradeoff between stack
usage and cycles.

Estimated optimziation at ~10.55%.

Signed-off-by: Emil Gydesen <thalley@thalley.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant