rust/compiler
bors d474075a8f Auto merge of #82780 - cjgillot:dep-stream, r=michaelwoerister
Stream the dep-graph to a file instead of storing it in-memory.

This is a reimplementation of #60035.

Instead of storing the dep-graph in-memory, the nodes are encoded as they come
into the a temporary file as they come. At the end of a successful the compilation,
this file is renamed to be the persistent dep-graph, to be decoded during the next
compilation session.

This two-files scheme avoids overwriting the dep-graph on unsuccessful or crashing compilations.

The structure of the file is modified to be the sequence of `(DepNode, Fingerprint, EdgesVec)`.
The deserialization is responsible for going to the more compressed representation.
The `node_count` and `edge_count` are stored in the last 16 bytes of the file,
in order to accurately reserve capacity for the vectors.

At the end of the compilation, the encoder is flushed and dropped.
The graph is not usable after this point: any creation of a node will ICE.

I had to retrofit the debugging options, which is not really pretty.
2021-04-01 16:29:33 +00:00
..
rustc
rustc_apfloat Use iter::zip in compiler/ 2021-03-26 09:32:31 -07:00
rustc_arena Remove (lots of) dead code 2021-03-27 22:16:33 -04:00
rustc_ast Remove (lots of) dead code 2021-03-27 22:16:33 -04:00
rustc_ast_lowering Remove hir::CrateItem. 2021-03-30 20:31:06 +02:00
rustc_ast_passes
rustc_ast_pretty Remove (lots of) dead code 2021-03-27 22:16:33 -04:00
rustc_attr
rustc_builtin_macros Use iter::zip in compiler/ 2021-03-26 09:32:31 -07:00
rustc_codegen_cranelift Merge commit '0969bc6dde001e01e7e1f58c8ccd7750f8a49ae1' into sync_cg_clif-2021-03-29 2021-03-29 10:45:09 +02:00
rustc_codegen_llvm Auto merge of #83666 - Amanieu:instrprof-order, r=tmandry 2021-03-31 03:20:33 +00:00
rustc_codegen_ssa linker: Use data execution prevention options by default when linker supports them 2021-03-28 23:44:40 +03:00
rustc_data_structures Revert changes to sync data structures 2021-03-29 13:50:40 -04:00
rustc_driver Address review comments 2021-03-27 22:16:34 -04:00
rustc_error_codes
rustc_errors Auto merge of #83639 - osa1:issue83638, r=estebank 2021-03-30 17:07:19 +00:00
rustc_expand Remove (lots of) dead code 2021-03-27 22:16:33 -04:00
rustc_feature Fix the unsafe_block_in_unsafe_fns stabilized version 2021-04-01 10:56:51 +09:00
rustc_fs_util
rustc_graphviz Remove (lots of) dead code 2021-03-27 22:16:33 -04:00
rustc_hir Add var to BoundRegion. Add query to get bound vars for applicable items. 2021-03-31 10:16:37 -04:00
rustc_hir_pretty Remove hir::CrateItem. 2021-03-30 20:31:06 +02:00
rustc_incremental Also profile finishing the encoding. 2021-03-30 18:10:08 +02:00
rustc_index Use iter::zip in compiler/ 2021-03-26 09:32:31 -07:00
rustc_infer Add var to BoundRegion. Add query to get bound vars for applicable items. 2021-03-31 10:16:37 -04:00
rustc_interface Stream the dep-graph to a file. 2021-03-30 18:09:59 +02:00
rustc_lexer
rustc_lint Add tcx lifetime to Binder 2021-03-31 10:13:57 -04:00
rustc_lint_defs Auto merge of #83103 - petrochenkov:unilex, r=Aaron1011 2021-03-27 22:19:17 +00:00
rustc_llvm Auto merge of #83387 - cuviper:min-llvm-10, r=nagisa 2021-03-25 13:11:18 +00:00
rustc_macros Use iter::zip in compiler/ 2021-03-26 09:32:31 -07:00
rustc_metadata Remove hir::CrateItem. 2021-03-30 20:31:06 +02:00
rustc_middle Auto merge of #82780 - cjgillot:dep-stream, r=michaelwoerister 2021-04-01 16:29:33 +00:00
rustc_mir Cleanups and comments 2021-03-31 10:16:37 -04:00
rustc_mir_build Add var to BoundRegion. Add query to get bound vars for applicable items. 2021-03-31 10:16:37 -04:00
rustc_parse Always preserve None-delimited groups in a captured TokenStream 2021-03-26 23:32:18 -04:00
rustc_parse_format Rollup merge of #83348 - osa1:issue83344, r=jackh726 2021-03-28 01:33:13 +09:00
rustc_passes Remove hir::CrateItem. 2021-03-30 20:31:06 +02:00
rustc_plugin_impl
rustc_privacy
rustc_query_impl Stream the dep-graph to a file. 2021-03-30 18:09:59 +02:00
rustc_query_system Enable debugging the dep-graph without debug-assertions. 2021-03-31 17:12:06 +02:00
rustc_resolve Cleanups and comments 2021-03-31 10:16:37 -04:00
rustc_save_analysis Remove hir::CrateItem. 2021-03-30 20:31:06 +02:00
rustc_serialize Auto merge of #83465 - michaelwoerister:safe-read_raw_bytes, r=cjgillot 2021-03-26 01:28:59 +00:00
rustc_session Clarify --print target-list is a rustc's option 2021-04-01 01:59:50 +09:00
rustc_span Remove (lots of) dead code 2021-03-27 22:16:33 -04:00
rustc_symbol_mangling Add var to BoundRegion. Add query to get bound vars for applicable items. 2021-03-31 10:16:37 -04:00
rustc_target linker: Use data execution prevention options by default when linker supports them 2021-03-28 23:44:40 +03:00
rustc_trait_selection Auto merge of #82780 - cjgillot:dep-stream, r=michaelwoerister 2021-04-01 16:29:33 +00:00
rustc_traits Add var to BoundRegion. Add query to get bound vars for applicable items. 2021-03-31 10:16:37 -04:00
rustc_ty_utils Track bound vars 2021-03-31 10:15:27 -04:00
rustc_type_ir
rustc_typeck Cleanups and comments 2021-03-31 10:16:37 -04:00