rust/src/librustc
Mazdak Farrokhzad fb1f57e0e5
Rollup merge of #63034 - tmandry:reduce-generator-size-regressions, r=cramertj
Fix generator size regressions due to optimization

I tested the generator optimizations in #60187 and #61922 on the Fuchsia
build, and noticed that some small generators (about 8% of the async fns
in our build) increased in size slightly.

This is because in #60187 we split the fields into two groups, a
"prefix" non-overlap region and an overlap region, and lay them out
separately. This can introduce unnecessary padding bytes between the two
groups.

In every single case in the Fuchsia build, it was due to there being
only a single variant being used in the overlap region. This means that
we aren't doing any overlapping, period. So it's better to combine the
two regions into one and lay out all the fields at once, which is what
this change does.

r? @cramertj
cc @eddyb @Zoxc
2019-08-07 01:39:25 +02:00
..
benches Remove licenses 2018-12-25 21:08:33 -07:00
cfg Exit arm scopes correctly in the HIR CFG 2019-07-06 21:56:03 +01:00
dep_graph Refactor diagnostic emission for green nodes 2019-07-11 02:09:37 +02:00
hir Drop span argument from mk_list_item 2019-08-05 08:45:00 -04:00
ich add unknown token 2019-08-05 13:15:11 +03:00
infer Update README.md 2019-08-06 04:01:55 +02:00
lint Rollup merge of #61856 - c410-f3r:attrs-fn, r=matthewjasper 2019-07-28 21:19:50 +02:00
middle Rollup merge of #63034 - tmandry:reduce-generator-size-regressions, r=cramertj 2019-08-07 01:39:25 +02:00
mir Fiddle param env through to try_eval_bits in most places 2019-08-05 17:48:05 +02:00
query Do not downgrade NLL errors for bind_by_move_pattern_guards when AST says it is OK. 2019-07-30 06:43:06 +02:00
session Auto merge of #62766 - alexcrichton:stabilize-pipelined-compilation, r=oli-obk 2019-07-30 08:39:29 +00:00
traits Rollup merge of #63264 - arielb1:revert-private-coherence-errors, r=estebank 2019-08-06 08:17:41 +02:00
ty Rollup merge of #63034 - tmandry:reduce-generator-size-regressions, r=cramertj 2019-08-07 01:39:25 +02:00
util librustc: Unconfigure tests during normal build 2019-08-02 01:59:01 +03:00
arena.rs rustc: collect upvars from HIR, instead of during name resolution. 2019-06-01 20:44:05 +03:00
build.rs Remove licenses 2018-12-25 21:08:33 -07:00
Cargo.toml cleanup: Remove extern crate serialize as rustc_serializes 2019-07-23 19:20:16 +03:00
error_codes.rs Update error_codes re. await_macro removal. 2019-07-30 10:55:45 +02:00
lib.rs librustc: Unconfigure tests during normal build 2019-08-02 01:59:01 +03:00
macros.rs Unify all uses of 'gcx and 'tcx. 2019-06-14 18:58:23 +03:00
README.md rustc-guide has moved 2018-11-26 15:03:13 -06:00
tests.rs librustc: Unconfigure tests during normal build 2019-08-02 01:59:01 +03:00

For more information about how rustc works, see the rustc guide.