about summary refs log tree commit diff
path: root/src/rustllvm/ExecutionEngineWrapper.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-03-06 18:16:39 -0800
committerbors <bors@rust-lang.org>2014-03-06 18:16:39 -0800
commit5862c0c28b7d25f1a1f8fd9165eff1f6f3d191d8 (patch)
tree6c4877cab523a54019eb8e15820c8531913139cc /src/rustllvm/ExecutionEngineWrapper.cpp
parent0e95b086db515386faf41549b490515a540165b1 (diff)
parent0a8413292845f527b8cf6bb2d02c9923f782ff37 (diff)
downloadrust-5862c0c28b7d25f1a1f8fd9165eff1f6f3d191d8.tar.gz
rust-5862c0c28b7d25f1a1f8fd9165eff1f6f3d191d8.zip
auto merge of #12635 : alexcrichton/rust/speedy-hash, r=brson
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