diff options
| author | bors <bors@rust-lang.org> | 2014-01-17 17:56:41 -0800 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2014-01-17 17:56:41 -0800 |
| commit | f4498c71e21308f6657d0150d5f473835e4b436f (patch) | |
| tree | 056558abc445547eae39e2aa143a92f131138f03 /src/rustllvm/RustWrapper.cpp | |
| parent | 2ff358c062e9f4c31e0e34d0cd9179a9af363867 (diff) | |
| parent | 0148055a56953a747362acb78efc8f0865fccc54 (diff) | |
| download | rust-f4498c71e21308f6657d0150d5f473835e4b436f.tar.gz rust-f4498c71e21308f6657d0150d5f473835e4b436f.zip | |
auto merge of #11497 : huonw/rust/trie-internal-iter, r=alexcrichton
This stores the stack of iterators inline (we have a maximum depth with
`uint` keys), and then uses direct pointer offsetting to manipulate it,
in a blazing fast way:
Before:
bench_iter_large ... bench: 43187 ns/iter (+/- 3082)
bench_iter_small ... bench: 618 ns/iter (+/- 288)
After:
bench_iter_large ... bench: 13497 ns/iter (+/- 1575)
bench_iter_small ... bench: 220 ns/iter (+/- 91)
Also, removes `.each_{key,value}_reverse` as an offering to
placate the gods of external iterators for my heinous sin of
attempting to add new internal ones (in a previous version of this
PR).
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions
