-
Notifications
You must be signed in to change notification settings - Fork 12
Go 1.24 support for custom labels #40
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
Conversation
8fe4961 to
91a57a8
Compare
| switch (label_count) { | ||
| case 10: process_slice_pair(record, &labels_slice, 9); | ||
| case 9: process_slice_pair(record, &labels_slice, 8); | ||
| case 8: process_slice_pair(record, &labels_slice, 7); | ||
| case 7: process_slice_pair(record, &labels_slice, 6); | ||
| case 6: process_slice_pair(record, &labels_slice, 5); | ||
| case 5: process_slice_pair(record, &labels_slice, 4); | ||
| case 4: process_slice_pair(record, &labels_slice, 3); | ||
| case 3: process_slice_pair(record, &labels_slice, 2); | ||
| case 2: process_slice_pair(record, &labels_slice, 1); | ||
| case 1: process_slice_pair(record, &labels_slice, 0); | ||
| } |
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.
Why can't we use a for loop, does clang/llvm fail to unroll it?
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.
Auto unrolling chewed up more instructions and I was able to get a couple more labels with this approach. Also auto unrolling requires a static limit where this approach works with a dynamic upper bound.
1d1afe8 to
db65419
Compare
Put go label collection in a separate unwinder routine and tail call it. Native unwinder and other custom labels code stays in unwind_stop. Hand unroll loops and great simplify the hash function. Reduce number of custom labels from 16 to 14. Remove opaquify.h, fix verifier errors by moving code around. Add a simple integration test for custom labels that runs against all kernels. Refactor test code to put shared code in a helper package.
No description provided.