-
Notifications
You must be signed in to change notification settings - Fork 6
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
Templated Functions Slowing Search #194
Comments
Thanks Ian for the well worded issue. I would vote for the second approach. Other opinions? If desired, we could add a flag for this, but I hesitate to add flag bloat to flit bisect in order to avoid making small decisions. |
I agree with avoiding flag bloat. If the runtime becomes a problem we can revisit the first idea later. |
It seems that the best solution is to not include weak global symbols in the search space since we currently don't have a way to select which weak symbol is chosen. |
Agreed |
I think the only thing left for this issue is for it to be documented in the official documentation about bisect. It is probably sufficient to piggy-back on issue #136 to complete documentation of this fix. |
When using FLiT bisect on a project that contains templated c++ functions the bisect search is slowed significantly if a templated function is a source of the difference. This is especially troublesome for templates that are based on integers, as there can easily be 30 instantiations of the templated function, all of which exhibit the difference. For each symbol, the search must start over which leads to a bloated runtime. Is this something that should be addressed?
If so, a possible mitigation to this problem would be to treat all template instantiations of a function as a single group, and if one function is marked then mark the whole group. This is a fast solution, but it does mean that those results are not verified.
A second approach would be to group the instantiations like above, but when a function is marked then test all members of the group without restarting the search. This would speed up the bisect search less, but it does retain the integrity of the reported bad symbols.
The text was updated successfully, but these errors were encountered: