about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorNicholas Nethercote <nnethercote@mozilla.com>2019-04-04 15:46:33 +1100
committerNicholas Nethercote <nnethercote@mozilla.com>2019-04-05 12:26:09 +1100
commitfd7f605365b27bfdd3cd6763124e81bddd61dd28 (patch)
treef42ba7fafa06245fd788902040dc1554dfba607c /src/rustllvm/RustWrapper.cpp
parent314a79cd80ed905f80d24b79fd7acb4c8c72789b (diff)
downloadrust-fd7f605365b27bfdd3cd6763124e81bddd61dd28.tar.gz
rust-fd7f605365b27bfdd3cd6763124e81bddd61dd28.zip
Increase `Span` from 4 bytes to 8 bytes.
This increases the size of some important types, such as `ast::Expr` and
`mir::Statement`. However, it drastically reduces how much the interner
is used, and the fields are more natural sizes that don't require bit
operations to extract.

As a result, instruction counts drop across a range of workloads, by as
much as 12% for incremental "check" builds of `script-servo`.

Peak memory usage goes up a little for some cases, but down by more for
some other cases -- as much as 18% for non-incremental builds of
`packed-simd`.

The commit also:
- removes the `repr(packed)`, because it has negligible effect, but can
  cause undefined behaviour;
- replaces explicit impls of common traits (`Copy`, `PartialEq`, etc.)
  with derived ones.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions