[BOLT][NFC] Use function names passed in -funcs-no-regex as-is
Summary: Currently there are two issues rendering the use of bughunter/BOLT on a binary with a large number of functions (100k) impossible: 1) `selectFunctionsToProcess` has O(binary_fn * force_fn) run-time, which is up to quadratic with the number of functions in the binary. 2) It unnecessarily treats supplied function names as regexes. This diff proposes the following changes to address the issue: 1. Add two options that treat function names as is, not as regexes, matching bughunter usage model: `-funcs-no-regex`/`-funcs-file-no-regex`. These options are complementary to `-funcs`/`-funcs-file` and `-skip-funcs`/ `-skip-funcs-file`. `funcs` takes precedence over `funcs-no-regex`. 2. Use string set to speed up function eligibility checking with `-funcs-file-no-regex` to O(binary_fn * log force_fn). (cherry picked from FBD28917225)
Loading
Please sign in to comment