rust/compiler
bors 3f5aee2d52 Auto merge of #81744 - rylev:overlapping-early-exit2, r=lcnr
Try fast_reject::simplify_type in coherence before doing full check

This is a reattempt at landing #69010 (by `@jonas-schievink).` The change adds a fast path for coherence checking to see if there's no way for types to unify since full coherence checking can be somewhat expensive.

This has big effects on code generated by the [`windows`](https://github.com/microsoft/windows-rs) which in some cases spends as much as 20% of compilation time in the `specialization_graph_of` query. In local benchmarks this took a compilation that previously took ~500 seconds down to ~380 seconds.

This is surely not going to make a difference on much smaller crates, so the question is whether it will have a negative impact. #69010 was closed because some of the perf suite crates did show small regressions.

Additional discussion of this issue is happening [here](https://rust-lang.zulipchat.com/#narrow/stream/247081-t-compiler.2Fperformance/topic/windows-rs.20perf).
2021-02-12 17:38:15 +00:00
..
rustc
rustc_apfloat
rustc_arena Rollup merge of #80470 - SimonSapin:array-intoiter-type, r=m-ou-se 2021-01-31 01:47:25 +01:00
rustc_ast Auto merge of #80860 - camelid:nodeid-docs, r=sanxiyn 2021-02-11 00:51:45 +00:00
rustc_ast_lowering Rename HIR UnOp variants 2021-02-09 11:39:20 +03:00
rustc_ast_passes Auto merge of #81346 - hug-dev:nonsecure-call-abi, r=jonas-schievink 2021-02-03 06:00:43 +00:00
rustc_ast_pretty Fix pretty printer macro_rules with semicolon. 2021-02-08 12:08:27 -08:00
rustc_attr Never MIR inline functions with a different instruction set 2021-02-05 00:00:00 +00:00
rustc_builtin_macros Borrow builder only once in debug derive 2021-02-10 00:00:00 +00:00
rustc_codegen_cranelift Add a new ABI to support cmse_nonsecure_call 2021-02-02 13:04:31 +00:00
rustc_codegen_llvm Auto merge of #80652 - calebzulawski:simd-lanes, r=nagisa 2021-02-07 22:25:14 +00:00
rustc_codegen_ssa rustc_codegen_ssa: tune codegen scheduling to reduce memory usage 2021-02-03 18:55:05 -08:00
rustc_data_structures Only initialize what is used 2021-02-10 09:20:41 +01:00
rustc_driver Indicate both start and end of pass RSS in time-passes output 2021-01-29 12:46:29 -08:00
rustc_error_codes Improve long explanation for E0542 and E0546 2021-02-11 16:26:07 +01:00
rustc_errors Make sure all fields are accounted for in encode_fields! 2021-02-07 14:54:22 -08:00
rustc_expand add method to construct def site path as a vec of idents 2021-02-09 13:42:35 +01:00
rustc_feature Feature gate macro attributes in #[derive] output 2021-02-07 20:08:45 +03:00
rustc_fs_util
rustc_graphviz
rustc_hir Rename HIR UnOp variants 2021-02-09 11:39:20 +03:00
rustc_hir_pretty hir pretty printing 2021-02-04 16:20:57 +01:00
rustc_incremental Auto merge of #80957 - tgnottingham:direct_serialize_depgraph, r=michaelwoerister 2021-01-19 19:36:41 +00:00
rustc_index Auto merge of #81498 - thomaseizinger:ice-workaround-56935-rustc-index, r=matthewjasper 2021-02-07 08:09:58 +00:00
rustc_infer Rollup merge of #80732 - spastorino:trait-inheritance-self2, r=nikomatsakis 2021-02-09 02:39:50 +01:00
rustc_interface Box the biggest ast::ItemKind variants 2021-02-01 09:23:39 +01:00
rustc_lexer
rustc_lint Auto merge of #79804 - tmiasko:improper-ctypes-no-niche, r=pnkfelix 2021-02-10 12:56:09 +00:00
rustc_lint_defs Add --extern-loc to augment unused crate dependency diagnostics 2021-02-07 14:54:20 -08:00
rustc_llvm Add a new ABI to support cmse_nonsecure_call 2021-02-02 13:04:31 +00:00
rustc_macros Switch query descriptions to just String 2021-02-08 17:20:41 -05:00
rustc_metadata Rollup merge of #81861 - tmiasko:mir-bytes, r=wesleywiser 2021-02-08 19:28:23 +01:00
rustc_middle Auto merge of #81744 - rylev:overlapping-early-exit2, r=lcnr 2021-02-12 17:38:15 +00:00
rustc_mir Rollup merge of #81959 - therealprof:fix-typo, r=oli-obk 2021-02-12 19:32:12 +09:00
rustc_mir_build Auto merge of #81350 - tmiasko:instrument-debug, r=lcnr 2021-02-11 13:44:00 +00:00
rustc_parse parser: Fix panic in 'const impl' recovery 2021-02-08 10:46:19 +03:00
rustc_parse_format parse_format: treat r" as a literal 2021-02-06 15:01:07 +00:00
rustc_passes Rename HIR UnOp variants 2021-02-09 11:39:20 +03:00
rustc_plugin_impl
rustc_privacy more things are const evaluatable *sparkles* 2021-02-01 20:05:50 +00:00
rustc_query_system Auto merge of #81892 - jyn514:no-inline, r=cjgillot 2021-02-09 18:37:33 +00:00
rustc_resolve resolve: Remove visibility hacks for enum variants and trait items 2021-02-10 22:46:44 +03:00
rustc_save_analysis Use Option::map_or instead of .map(..).unwrap_or(..) 2021-01-14 19:23:59 +01:00
rustc_serialize Revert stabilizing integer::BITS. 2021-02-03 22:23:58 +01:00
rustc_session Add --extern-loc to augment unused crate dependency diagnostics 2021-02-07 14:54:20 -08:00
rustc_span Rollup merge of #81735 - klensy:span-fix, r=varkor 2021-02-08 19:28:15 +01:00
rustc_symbol_mangling Rollup merge of #80959 - jhpratt:unsigned_abs-stabilization, r=m-ou-se 2021-01-30 13:36:44 +09:00
rustc_target Stack probes: fix error message 2021-02-11 20:33:16 +01:00
rustc_trait_selection Auto merge of #81744 - rylev:overlapping-early-exit2, r=lcnr 2021-02-12 17:38:15 +00:00
rustc_traits Update Chalk 2021-02-02 12:37:22 -05:00
rustc_ty_utils Infallible version of def_span. 2021-01-23 13:35:22 +01:00
rustc_type_ir Move a few more types to rustc_type_ir 2021-01-18 21:06:12 +01:00
rustc_typeck Rollup merge of #81947 - camsteffen:to-ty, r=jyn514 2021-02-12 19:32:08 +09:00