diff options
| author | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2021-01-14 00:00:00 +0000 |
|---|---|---|
| committer | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2021-01-14 00:00:00 +0000 |
| commit | ea4cbff264371ed28c3642991d87c59f369e4e70 (patch) | |
| tree | ab430b1abbd20a44261002d5659ac5768ed655ec /compiler/rustc_metadata/src | |
| parent | c7b0ddbffebee1cb06f184e815ca637706c53053 (diff) | |
| download | rust-ea4cbff264371ed28c3642991d87c59f369e4e70.tar.gz rust-ea4cbff264371ed28c3642991d87c59f369e4e70.zip | |
Encode optimized MIR of generators when emitting metadata
Diffstat (limited to 'compiler/rustc_metadata/src')
| -rw-r--r-- | compiler/rustc_metadata/src/rmeta/encoder.rs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/compiler/rustc_metadata/src/rmeta/encoder.rs b/compiler/rustc_metadata/src/rmeta/encoder.rs index d8d222dccf4..58931bc5ff0 100644 --- a/compiler/rustc_metadata/src/rmeta/encoder.rs +++ b/compiler/rustc_metadata/src/rmeta/encoder.rs @@ -1507,7 +1507,10 @@ impl EncodeContext<'a, 'tcx> { record!(self.tables.fn_sig[def_id] <- substs.as_closure().sig()); } self.encode_generics(def_id.to_def_id()); - let opt_mir = self.tcx.sess.opts.debugging_opts.always_encode_mir || self.emit_codegen_mir; + let opt_mir = // FIXME: Optimized MIR is necessary to determine the layout of generators. + matches!(ty.kind(), ty::Generator(..)) + || self.tcx.sess.opts.debugging_opts.always_encode_mir + || self.emit_codegen_mir; if opt_mir { self.encode_optimized_mir(def_id); self.encode_promoted_mir(def_id); |
