rust/compiler
bors f4eb5d9f71 Auto merge of #68828 - oli-obk:inline_cycle, r=wesleywiser
Prevent query cycles in the MIR inliner

r? `@eddyb` `@wesleywiser`

cc `@rust-lang/wg-mir-opt`

The general design is that we have a new query that is run on the `validated_mir` instead of on the `optimized_mir`. That query is forced before going into the optimization pipeline, so as to not try to read from a stolen MIR.

The query should not be cached cross crate, as you should never call it for items from other crates. By its very design calls into other crates can never cause query cycles.

This is a pessimistic approach to inlining, since we strictly have more calls in the `validated_mir` than we have in `optimized_mir`, but that's not a problem imo.
2021-01-25 19:03:37 +00:00
..
rustc
rustc_apfloat
rustc_arena stabilize min_const_generics 2020-12-26 18:24:10 +01:00
rustc_ast Refactor token collection to capture trailing token immediately 2021-01-22 00:33:03 -05:00
rustc_ast_lowering Rollup merge of #81249 - cjgillot:issue-79537, r=oli-obk 2021-01-23 20:16:07 +01:00
rustc_ast_passes Use Option::map_or instead of .map(..).unwrap_or(..) 2021-01-14 19:23:59 +01:00
rustc_ast_pretty Remove unused dependency 2021-01-23 10:30:38 +01:00
rustc_attr Replace version_check dependency with own version parsing code 2021-01-24 01:56:54 +01:00
rustc_builtin_macros Rollup merge of #80855 - m-ou-se:assert-2021, r=petrochenkov 2021-01-24 22:09:53 +01:00
rustc_codegen_cranelift codegen_cranelift: Fix redundant semicolon warn 2021-01-16 07:17:13 +03:00
rustc_codegen_llvm Auto merge of #80838 - nagisa:nagisa/stack-probe-type, r=cuviper 2021-01-24 09:44:42 +00:00
rustc_codegen_ssa Rollup merge of #81297 - bjorn3:no_extern_backend_optimization_level_query_provider, r=cjgillot 2021-01-24 22:10:02 +01:00
rustc_data_structures Clean up dominators_given_rpo 2021-01-24 13:32:18 +01:00
rustc_driver Rollup merge of #80944 - LingMan:map_or, r=nagisa 2021-01-15 18:26:14 +09:00
rustc_error_codes Rollup merge of #80614 - 1000teslas:issue-78938-fix, r=tmandry 2021-01-16 17:29:49 +00:00
rustc_errors Use Option::map_or instead of .map(..).unwrap_or(..) 2021-01-14 19:23:59 +01:00
rustc_expand Force token collection to run when parsing nonterminals 2021-01-20 18:09:32 -05:00
rustc_feature Feature-gate pointer and reference in intra-doc links 2021-01-17 15:27:35 -05:00
rustc_fs_util Optimize away a fs::metadata call. 2021-01-06 08:33:15 -08:00
rustc_graphviz remove redundant closures (clippy::redundant_closure) 2021-01-03 13:34:24 +01:00
rustc_hir Auto merge of #80919 - cjgillot:defkey-span, r=oli-obk 2021-01-24 06:51:17 +00:00
rustc_hir_pretty Add loop head span to hir 2021-01-21 21:41:46 -08:00
rustc_incremental Auto merge of #80957 - tgnottingham:direct_serialize_depgraph, r=michaelwoerister 2021-01-19 19:36:41 +00:00
rustc_index Switch compiler/ to intra-doc links 2020-12-18 15:22:51 -05:00
rustc_infer Add suggestion for impl_candidates with E0283 2021-01-18 21:57:15 +09:00
rustc_interface Calculate self-profile strings in Compiler::enter instead in codegen 2021-01-23 11:42:15 -05:00
rustc_lexer Return EOF_CHAR constant instead of magic char. 2021-01-07 13:20:04 +01:00
rustc_lint Rollup merge of #81275 - jyn514:time-render, r=wesleywiser 2021-01-23 20:16:10 +01:00
rustc_lint_defs update const_err description 2021-01-22 10:21:52 +01:00
rustc_llvm Use probe-stack=inline-asm in LLVM 11+ 2021-01-14 22:49:16 -05:00
rustc_macros Use Option::map_or instead of .map(..).unwrap_or(..) 2021-01-14 19:23:59 +01:00
rustc_metadata Fix proc macro crate encoding. 2021-01-23 13:57:43 +01:00
rustc_middle Auto merge of #68828 - oli-obk:inline_cycle, r=wesleywiser 2021-01-25 19:03:37 +00:00
rustc_mir Auto merge of #68828 - oli-obk:inline_cycle, r=wesleywiser 2021-01-25 19:03:37 +00:00
rustc_mir_build Add loop head span to hir 2021-01-21 21:41:46 -08:00
rustc_parse parser: Collect tokens for values in key-value attributes 2021-01-24 17:11:56 +03:00
rustc_parse_format rustc_parse_format: Fix character indices in find_skips 2021-01-17 17:40:58 +03:00
rustc_passes Rollup merge of #81310 - tmiasko:in-pattern, r=petrochenkov 2021-01-24 22:10:06 +01:00
rustc_plugin_impl Store ForeignItem in a side table. 2020-11-26 21:29:27 +01:00
rustc_privacy Review changes 2021-01-16 18:56:37 -05:00
rustc_query_system Auto merge of #80957 - tgnottingham:direct_serialize_depgraph, r=michaelwoerister 2021-01-19 19:36:41 +00:00
rustc_resolve Rollup merge of #81252 - jyn514:resolve-timing, r=petrochenkov 2021-01-23 20:16:09 +01:00
rustc_save_analysis Use Option::map_or instead of .map(..).unwrap_or(..) 2021-01-14 19:23:59 +01:00
rustc_serialize rustc_serialize: fix incorrect signed LEB128 decoding 2021-01-11 12:13:26 -08:00
rustc_session Auto merge of #81118 - ojeda:metadata-obj, r=nagisa 2021-01-20 07:15:40 +00:00
rustc_span Add disambiugator to ExpnData 2021-01-23 15:41:17 -05: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 Auto merge of #80838 - nagisa:nagisa/stack-probe-type, r=cuviper 2021-01-24 09:44:42 +00:00
rustc_trait_selection Add suggestion for impl_candidates with E0283 2021-01-18 21:57:15 +09:00
rustc_traits Review changes 2021-01-16 18:56:37 -05:00
rustc_ty_utils Infallible version of def_span. 2021-01-23 13:35:22 +01:00
rustc_type_ir Fix typo in DebruijnIndex documentation 2020-12-12 16:13:06 +01:00
rustc_typeck Rollup merge of #81279 - bugadani:iter, r=davidtwco 2021-01-24 22:10:01 +01:00