about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorNicholas Nethercote <nnethercote@mozilla.com>2018-09-21 20:42:49 +1000
committerNicholas Nethercote <nnethercote@mozilla.com>2018-09-21 20:54:10 +1000
commitb2f25e3c38ff29eebe6c8ce69b8c69243faa440d (patch)
tree1f6257400c9be4e0b27a82bf9632ded55b22752d /src/rustllvm/RustWrapper.cpp
parent1d33aedaa928cc92d58c0bfe7ff433714ff52976 (diff)
downloadrust-b2f25e3c38ff29eebe6c8ce69b8c69243faa440d.tar.gz
rust-b2f25e3c38ff29eebe6c8ce69b8c69243faa440d.zip
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.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions