about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2018-05-10 14:14:35 +0000
committerbors <bors@rust-lang.org>2018-05-10 14:14:35 +0000
commit0a223d139cd26e5bfab23a478a5cad845eaab131 (patch)
tree00f4e6c1a696643b74d0c5d1bdb3455faffe2979 /src/rustllvm/RustWrapper.cpp
parent57dc98434eb818733dbc941405fdee59e5c3a023 (diff)
parentc9d9c249ec95afa53a1862fcb99bf04c339b126c (diff)
downloadrust-0a223d139cd26e5bfab23a478a5cad845eaab131.tar.gz
rust-0a223d139cd26e5bfab23a478a5cad845eaab131.zip
Auto merge of #50395 - Zoxc:small-tys, r=michaelwoerister
Optimize layout of TypeVariants

This makes references to `Slice` use thin pointers by storing the slice length in the slice itself. `GeneratorInterior` is replaced by storing the movability of generators in `TyGenerator` and the interior witness is stored in `GeneratorSubsts` (which is just a wrapper around `&'tcx Substs`, like `ClosureSubsts`). Finally the fields of `TypeAndMut` is stored inline in `TyRef`. These changes combine to reduce `TypeVariants` from 48 bytes to 24 bytes on x86_64.

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