about summary refs log tree commit diff
path: root/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2021-06-16 15:18:19 +0000
committerbors <bors@rust-lang.org>2021-06-16 15:18:19 +0000
commit9fef8d91b4a6c5bfe07c025c434f2d623ad83337 (patch)
tree68ebf8f862d1c29d2ad3cbc1cd6a0e92c722e38e /compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
parent8daad743c4bb941536860b4df20111cb71b8c777 (diff)
parent53d71c181e53be51a1e122146c504e758f304c38 (diff)
downloadrust-9fef8d91b4a6c5bfe07c025c434f2d623ad83337.tar.gz
rust-9fef8d91b4a6c5bfe07c025c434f2d623ad83337.zip
Auto merge of #86179 - the8472:revere-path-cmp, r=kennytm
optimize Eq implementation for paths

Filesystems generally have a tree-ish structure which means paths are more likely to share a prefix than a suffix. Absolute paths are especially prone to share long prefixes.

quick benchmark consisting of a search through through a vec containing the absolute paths of all (1850) files in `compiler/`:

```
# old
test path::tests::bench_path_cmp                                  ... bench:     227,407 ns/iter (+/- 2,162)

# new
test path::tests::bench_path_cmp                                  ... bench:      64,976 ns/iter (+/- 1,142)
```
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions