-
-
Notifications
You must be signed in to change notification settings - Fork 65
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
Move codec implementations to cpp and make codec dependencies private #465
base: main
Are you sure you want to change the base?
Conversation
Codecov Report
@@ Coverage Diff @@
## master #465 +/- ##
==========================================
- Coverage 93.26% 93.18% -0.08%
==========================================
Files 92 86 -6
Lines 4926 4785 -141
==========================================
- Hits 4594 4459 -135
+ Misses 332 326 -6
Continue to review full report at Codecov.
|
@JMMackenzie do you think you'd be able to run a benchmark comparing this to master? I think one block codec should be enough to verify if there's any regression, unless by looking at the code you can see more potential regressions... |
CW09B with
|
Thanks @JMMackenzie can you try passing |
Actually, I see a bug there, I name the option with PISA_ but the check is without it (right below). You'd need to fix that. Whatever you do, please check if the lto flag is actually passed to the linker to make sure we compare the right thing. |
Already saw and fixed that. Having some trouble with CMake now, working through it. Will report back. |
You'll also need: cmake_policy(SET CMP0069 NEW) # Use IPO (LTO) when requested |
Doesn't seem to help too much:
|
Are we willing to take this performance hit? I'm happy to revisit these tests soon if we want to make sure... |
Possibly... but not entirely sure. Kind of want to take some time and think about it, mostly whether there's a different way of improving compilation but without the performance hit. Hope to have some time for it sometime this week. |
Because the implementation of block-wise
decode
(andencode
but this one is not as crucial) is moved out of the header, there is a potential that this will affect performance.Personally, I don't think these are being inlined anyway but should be tested. I additionally added
PISA_ENABLE_IPO
cmake option in case we want to test link time optimization.