| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
This one function accounted for ~30% of my callgrind profile of
"stap -l 'syscall.*'", even though it was only called ~1200 times. We
call dwarf_getscopes for each $target variable, with the same parameters
within a given probe. Since they're no nicely grouped, it's easy to
just cache the most recent call, and the next few calls will be a hit.
Overall this cuts the number of calls down to about 300, for an easy
speed gain.
|
|
|
|
|
|
|
| |
For a call like "stap -l 'syscall.*'", I found that ~10% of the time was
spent compiling the blacklist regexps over again for each probe point.
By moving this functionality into the kernel dwflpp instance, we can
reuse the regexps and get an easy speed boost.
|
|
|
|
|
| |
This helps make it more obvious which methods are accessed by external
classes, which should help in refactoring.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
The method query_cu_containing_global_address was only called by
query_cu_containing_module_address, and the latter was just doing a
simple argument transform. They are now merged into a single method,
query_cu_containing_address. The function module_address_to_global is
also merged here at its only call site.
|
|
|
|
|
|
|
|
| |
These three methods had no callers, and are thus obsolete:
dwflpp::focus_on_module_containing_global_address(Dwarf_Addr a)
dwflpp::global_address_to_module(Dwarf_Addr a)
dwflpp::cu_name_matches(string pattern)
|
|
It's not a terribly clean split, but moving it helps reveals some of the
knots that need to be untangled.
|