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
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
rustc_ast_pretty Fix pretty printer macro_rules with semicolon. 2021-02-08 12:08:27 -08:00
rustc_attr
rustc_builtin_macros Borrow builder only once in debug derive 2021-02-10 00:00:00 +00:00
rustc_codegen_cranelift
rustc_codegen_llvm
rustc_codegen_ssa
rustc_data_structures Only initialize what is used 2021-02-10 09:20:41 +01:00
rustc_driver
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
rustc_fs_util
rustc_graphviz
rustc_hir Rename HIR UnOp variants 2021-02-09 11:39:20 +03:00
rustc_hir_pretty
rustc_incremental
rustc_index
rustc_infer Rollup merge of #80732 - spastorino:trait-inheritance-self2, r=nikomatsakis 2021-02-09 02:39:50 +01:00
rustc_interface
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
rustc_llvm
rustc_macros Switch query descriptions to just String 2021-02-08 17:20:41 -05:00
rustc_metadata
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
rustc_parse_format
rustc_passes Rename HIR UnOp variants 2021-02-09 11:39:20 +03:00
rustc_plugin_impl
rustc_privacy
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
rustc_serialize
rustc_session
rustc_span
rustc_symbol_mangling
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
rustc_ty_utils
rustc_type_ir
rustc_typeck Rollup merge of #81947 - camsteffen:to-ty, r=jyn514 2021-02-12 19:32:08 +09:00