diff options
| author | Ivan Tham <pickfire@riseup.net> | 2020-06-20 11:07:22 +0800 |
|---|---|---|
| committer | Ivan Tham <pickfire@riseup.net> | 2020-06-20 11:55:01 +0800 |
| commit | f66bcc5459d4a720b31eaeac3149f19799118d72 (patch) | |
| tree | a6c9480f1efc3f19f5b6cdc5da7505e6c3c5c2c3 /src/rustllvm/CoverageMappingWrapper.cpp | |
| parent | 2d8bd9b74dc0cf06d881bac645698ccbcf9d9c5e (diff) | |
| download | rust-f66bcc5459d4a720b31eaeac3149f19799118d72.tar.gz rust-f66bcc5459d4a720b31eaeac3149f19799118d72.zip | |
Add liballoc impl SpecFromElem for i8
Speedup vec![1_i8; N] for non-zero element.
Before
test do_bench_from_elem_i8 ... bench: 130 ns/iter (+/- 7) = 61 MB/s
test do_bench_from_elem_u8 ... bench: 121 ns/iter (+/- 4) = 66 MB/s
After
test do_bench_from_elem_i8 ... bench: 123 ns/iter (+/- 7) = 65 MB/s
test do_bench_from_elem_u8 ... bench: 121 ns/iter (+/- 5) = 66 MB/s
No speed difference if element is already zero.
#[bench]
fn do_bench_from_elem_i8(b: &mut Bencher) {
b.bytes = 8 as u64;
b.iter(|| {
let dst = ve::vec![10_i8; 100];
assert_eq!(dst.len(), 100);
assert!(dst.iter().all(|x| *x == 10));
})
}
As suggested by @cuviper
https://rust-lang.zulipchat.com/#narrow/stream/219381-t-libs/topic/SpecForElem.20for.20other.20integers
Diffstat (limited to 'src/rustllvm/CoverageMappingWrapper.cpp')
0 files changed, 0 insertions, 0 deletions
