-
Notifications
You must be signed in to change notification settings - Fork 61
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
unroll search #2034
unroll search #2034
Conversation
9a66a3b
to
0c8e8ab
Compare
0c8e8ab
to
56d779b
Compare
EVE_FORCEINLINE bool main_loop(Traits tr, I& f, auto unroll_l, S l, Delegate& delegate) const | ||
requires(get_unrolling<Traits>() == 1) | ||
{ | ||
(void)unroll_l; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can mark the paramter [[maybe_unused]], it is better than random cast to void IMO.
EVE_FORCEINLINE bool main_loop(Traits tr, I& f, [[maybe_unused]] auto unroll_l, S l, Delegate& delegate) const
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any update ont hsi samll details ?
The PR is fine once fixed and can be merged
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- I don't have time to fix this until the weekend.
- I still want to add more testing for iteration.
It's good if everything else seems ok.
include/eve/module/algo/algo/for_each_iteration_with_expensive_optional_part.hpp
Show resolved
Hide resolved
4d816ec
to
ca9862c
Compare
unrolling search while also putting the "check for match" in an isolated place to make the codegen smaller.
I need to add more tests for iteration but other than that should be revieable.
The benchmarks for this also need improvements, the simplest (and not a very good one) is find for one char.
Here is the numbers for that (you should look at the best one always).
This is timing for find (baseline)
This is the performance for search for a single char now:
This is the performance for search for a single char before: