On 12/14/2014 02:18 PM, Mark Wielaard wrote:
This finally adds bounds checking to get_[us]leb128 (with two
exceptions,
see below). The performance results are a little puzzling, so I hope
Josh can take a look how things are for him.
On one system, with 3.10.0-123.13.1.el7.x86_64, varlocs -k slows down:
0.160: 53.65
master: 52.24
mjw/pending: 56.35
But on another, with 3.17.4-301.fc21.x86_64, varlocs -k speeds up:
0.160: 69.41
master: 69.03
mjw/pending: 68.29
Output is the same between versions for each system.
These are probably different compilers too, right? So I suspect the
newer compiler just noticed an optimization opportunity.
AFAICT, the change to __libdw_form_val_len's parameters, pending commit
1a069eb7ae22, makes the bulk of the difference. But it does seem to be
a bit faster still in the leb128 commit 4f6de27c6043 -- curious!