diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2014-02-28 14:34:26 -0800 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2014-03-06 17:45:48 -0800 |
| commit | bec7b766fbbc9b56a1608e2573390e3894519840 (patch) | |
| tree | e867bdfab8c090f94d1aee36ae96f5f86e22fbdf /src/rustllvm/ExecutionEngineWrapper.cpp | |
| parent | 0e95b086db515386faf41549b490515a540165b1 (diff) | |
| download | rust-bec7b766fbbc9b56a1608e2573390e3894519840.tar.gz rust-bec7b766fbbc9b56a1608e2573390e3894519840.zip | |
rustc: Move to FNV hashing for node/def ids
This leverages the new hashing framework and hashmap implementation to provide a much speedier hashing algorithm for node ids and def ids. The hash algorithm used is currentl FNV hashing, but it's quite easy to swap out. I originally implemented hashing as the identity function, but this actually ended up in slowing down rustc compiling libstd from 8s to 13s. I would suspect that this is a result of a large number of collisions. With FNV hashing, we get these timings (compiling with --no-trans, in seconds): | | before | after | |-----------|---------:|--------:| | libstd | 8.324 | 6.703 | | stdtest | 47.674 | 46.857 | | libsyntax | 9.918 | 8.400 |
Diffstat (limited to 'src/rustllvm/ExecutionEngineWrapper.cpp')
0 files changed, 0 insertions, 0 deletions
