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
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
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
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
rustc_error_codes
rustc_errors
rustc_expand
rustc_feature
rustc_fs_util
rustc_graphviz
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
rustc_index
rustc_infer
rustc_interface Calculate self-profile strings in Compiler::enter instead in codegen 2021-01-23 11:42:15 -05:00
rustc_lexer
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
rustc_macros
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_passes Rollup merge of #81310 - tmiasko:in-pattern, r=petrochenkov 2021-01-24 22:10:06 +01:00
rustc_plugin_impl
rustc_privacy
rustc_query_system
rustc_resolve Rollup merge of #81252 - jyn514:resolve-timing, r=petrochenkov 2021-01-23 20:16:09 +01:00
rustc_save_analysis
rustc_serialize
rustc_session
rustc_span Add disambiugator to ExpnData 2021-01-23 15:41:17 -05:00
rustc_symbol_mangling
rustc_target Auto merge of #80838 - nagisa:nagisa/stack-probe-type, r=cuviper 2021-01-24 09:44:42 +00:00
rustc_trait_selection
rustc_traits
rustc_ty_utils Infallible version of def_span. 2021-01-23 13:35:22 +01:00
rustc_type_ir
rustc_typeck Rollup merge of #81279 - bugadani:iter, r=davidtwco 2021-01-24 22:10:01 +01:00