rust/compiler
Tyson Nottingham 52f21791fb Serialize incr comp structures to file via fixed-size buffer
Reduce a large memory spike that happens during serialization by writing
the incr comp structures to file by way of a fixed-size buffer, rather
than an unbounded vector.

Effort was made to keep the instruction count close to that of the
previous implementation. However, buffered writing to a file inherently
has more overhead than writing to a vector, because each write may
result in a handleable error. To reduce this overhead, arrangements are
made so that each LEB128-encoded integer can be written to the buffer
with only one capacity and error check. Higher-level optimizations in
which entire composite structures can be written with one capacity and
error check are possible, but would require much more work.

The performance is mostly on par with the previous implementation, with
small to moderate instruction count regressions. The memory reduction is
significant, however, so it seems like a worth-while trade-off.
2021-01-11 12:13:22 -08:00
..
rustc
rustc_apfloat
rustc_arena stabilize min_const_generics 2020-12-26 18:24:10 +01:00
rustc_ast ast: Remove some indirection layers from values in key-value attributes 2021-01-09 21:50:39 +03:00
rustc_ast_lowering ast: Remove some indirection layers from values in key-value attributes 2021-01-09 21:50:39 +03:00
rustc_ast_passes Auto merge of #79414 - sasurau4:feature/add-suggestion-for-pattern-in-fns-without-body, r=matthewjasper 2021-01-10 20:48:27 +00:00
rustc_ast_pretty ast: Remove some indirection layers from values in key-value attributes 2021-01-09 21:50:39 +03:00
rustc_attr
rustc_builtin_macros Don't set builtin_name for builtin macro implementations. 2021-01-09 20:26:57 +01:00
rustc_codegen_cranelift Merge commit 'dbee13661efa269cb4cd57bb4c6b99a19732b484' into sync_cg_clif-2020-12-27 2020-12-27 10:30:38 +01:00
rustc_codegen_llvm Auto merge of #80749 - as-com:target-cpu-actually-native, r=nagisa 2021-01-09 04:36:24 +00:00
rustc_codegen_ssa Auto merge of #80200 - mahkoh:dst-offset, r=nagisa 2021-01-07 03:13:21 +00:00
rustc_data_structures Serialize incr comp structures to file via fixed-size buffer 2021-01-11 12:13:22 -08:00
rustc_driver log-color: Detect TTY based on stderr, not stdout 2021-01-10 13:22:15 -08:00
rustc_error_codes Refine E0435 description 2021-01-07 20:20:58 +09:00
rustc_errors
rustc_expand Rollup merge of #80850 - m-ou-se:rustc-builtin-macro-name, r=petrochenkov 2021-01-10 16:56:05 +09:00
rustc_feature Allow #[rustc_builtin_macro = "name"]. 2021-01-09 19:50:06 +01:00
rustc_fs_util Optimize away a fs::metadata call. 2021-01-06 08:33:15 -08:00
rustc_graphviz
rustc_hir Rollup merge of #80538 - JulianKnodt:err_usize, r=lcnr 2021-01-05 09:52:37 +09:00
rustc_hir_pretty rustc_ast_pretty: Remove PrintState::insert_extra_parens 2021-01-08 00:43:38 +03:00
rustc_incremental Serialize incr comp structures to file via fixed-size buffer 2021-01-11 12:13:22 -08:00
rustc_index
rustc_infer Rollup merge of #80637 - LingMan:filter, r=oli-obk 2021-01-05 09:52:42 +09:00
rustc_interface Remove compile-fail test suite 2020-12-29 23:39:56 +03:00
rustc_lexer Return EOF_CHAR constant instead of magic char. 2021-01-07 13:20:04 +01:00
rustc_lint Auto merge of #79414 - sasurau4:feature/add-suggestion-for-pattern-in-fns-without-body, r=matthewjasper 2021-01-10 20:48:27 +00:00
rustc_lint_defs Auto merge of #79414 - sasurau4:feature/add-suggestion-for-pattern-in-fns-without-body, r=matthewjasper 2021-01-10 20:48:27 +00:00
rustc_llvm
rustc_macros rustc_serialize: specialize opaque encoding of some u8 sequences 2021-01-01 22:49:14 -08:00
rustc_metadata Serialize incr comp structures to file via fixed-size buffer 2021-01-11 12:13:22 -08:00
rustc_middle Serialize incr comp structures to file via fixed-size buffer 2021-01-11 12:13:22 -08:00
rustc_mir Add ABI argument to find_mir_or_eval_fn 2021-01-10 15:12:50 +00:00
rustc_mir_build Add note to non-exhaustive match on reference to empty 2021-01-03 19:05:23 +01:00
rustc_parse Auto merge of #80789 - Aaron1011:fix/stmt-empty, r=petrochenkov 2021-01-10 17:58:38 +00:00
rustc_parse_format
rustc_passes Don't use to_string on Symbol 2021-01-06 10:59:50 +01:00
rustc_plugin_impl
rustc_privacy Fixed non-declarative-nor-opaque macros effective privacy. 2021-01-06 15:13:39 +01:00
rustc_query_system Don't mark force_query_with_job as inline(always) 2021-01-08 18:38:33 -05:00
rustc_resolve Auto merge of #80782 - petrochenkov:viscopes, r=matthewjasper 2021-01-10 23:36:33 +00:00
rustc_save_analysis reduce borrowing and (de)referencing around match patterns (clippy::match_ref_pats) 2021-01-02 20:09:17 +01:00
rustc_serialize Serialize incr comp structures to file via fixed-size buffer 2021-01-11 12:13:22 -08:00
rustc_session Auto merge of #80709 - lzutao:target-enumerate, r=petrochenkov 2021-01-07 21:33:57 +00:00
rustc_span Auto merge of #80782 - petrochenkov:viscopes, r=matthewjasper 2021-01-10 23:36:33 +00:00
rustc_symbol_mangling Rollup merge of #79968 - bjorn3:better_drop_glue_debuginfo, r=matthewjasper 2021-01-10 16:55:55 +09:00
rustc_target Change related spec files to use the new enum 2021-01-06 13:34:20 +00:00
rustc_trait_selection reduce borrowing and (de)referencing around match patterns (clippy::match_ref_pats) 2021-01-02 20:09:17 +01:00
rustc_traits fix: small typo error in chalk/mod.rs 2020-12-27 03:22:23 +01:00
rustc_ty_utils
rustc_type_ir
rustc_typeck Use standard formatting for "rust-call" ABI message 2021-01-10 12:17:24 -08:00