about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-01-17 17:56:41 -0800
committerbors <bors@rust-lang.org>2014-01-17 17:56:41 -0800
commitf4498c71e21308f6657d0150d5f473835e4b436f (patch)
tree056558abc445547eae39e2aa143a92f131138f03 /src/rustllvm/RustWrapper.cpp
parent2ff358c062e9f4c31e0e34d0cd9179a9af363867 (diff)
parent0148055a56953a747362acb78efc8f0865fccc54 (diff)
downloadrust-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