about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorPietro Albini <pietro@pietroalbini.org>2018-09-22 09:56:41 +0200
committerGitHub <noreply@github.com>2018-09-22 09:56:41 +0200
commit317b212fa1cc2941f0fcaa14eea6f2ab1514df56 (patch)
treea1555f67920ff2b09b04c22b3fc72eee580a0eed /src/rustllvm/RustWrapper.cpp
parent7c34cf7ee3e70bbd6b1f0d8d2bd6931d75989aed (diff)
parentb2f25e3c38ff29eebe6c8ce69b8c69243faa440d (diff)
downloadrust-317b212fa1cc2941f0fcaa14eea6f2ab1514df56.tar.gz
rust-317b212fa1cc2941f0fcaa14eea6f2ab1514df56.zip
Rollup merge of #54420 - nnethercote:PackedRWU-Vec, r=nikomatsakis
Compress `Liveness` data some more.

Profiling shows that the `(reader, writer, used)` triples used by
liveness analysis almost always have invalid `reader` and `writer`
fields. We can take advantage of this knowledge to use a compressed
representation for them, falling back to a secondary table for the
uncommon cases.

This change reduces instruction counts on numerous benchmarks, the best
by 16%. It also reduces max-rss on numerous benchmarks, the best by 38%.

The patch also renames these triples from `Users` to `RWU`, because it's
confusing having a type whose name is plural and then used within
vectors whose names are also plural.

r? @nikomatsakis
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions