1
Fork 0
rust/compiler
bors e599b53e67 Auto merge of #76918 - ishitatsuyuki:match-fastpath, r=oli-obk
Add fast path for match checking

This adds a fast path that would reduce the complexity to linear on matches consisting of only variant patterns (i.e. enum matches). (Also see: #7462) Unfortunately, I was too lazy to add a similar fast path for constants (mostly for integer matches), ideally that could be added another day.

TBH, I'm not confident with the performance claims due to the fact that enums tends to be small and FxHashMap could add a lot of overhead.

r? `@Mark-Simulacrum`

needs perf
2020-09-24 17:22:56 +00:00
..
rustc just max_level_info 2020-09-11 09:37:51 -07:00
rustc_apfloat mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_arena Rollup merge of #76821 - est31:remove_redundant_nightly_features, r=oli-obk,Mark-Simulacrum 2020-09-20 12:08:22 +02:00
rustc_ast Add #![feature(const_fn_transmute)] to rustc_ast 2020-09-22 10:22:21 -07:00
rustc_ast_lowering simplfy condition in ItemLowerer::with_trait_impl_ref() 2020-09-16 23:09:57 +02:00
rustc_ast_passes use matches!() macro for simple if let conditions 2020-09-18 20:28:35 +02:00
rustc_ast_pretty Fully integrate token collection for additional AST structs 2020-09-10 17:58:14 -04:00
rustc_attr use matches!() macro for simple if let conditions 2020-09-18 20:28:35 +02:00
rustc_builtin_macros use matches!() macro for simple if let conditions 2020-09-18 20:28:35 +02:00
rustc_codegen_llvm Rollup merge of #76962 - est31:const_cstr, r=oli-obk 2020-09-21 10:40:45 +02:00
rustc_codegen_ssa Rollup merge of #76872 - khyperia:remove_declare_methods, r=eddyb 2020-09-21 10:40:35 +02:00
rustc_data_structures Move MiniSet to data_structures 2020-09-23 08:09:16 +02:00
rustc_driver use strip_prefix over starts_with and manual slicing based on pattern length (clippy::manual_strip) 2020-09-17 10:13:16 +02:00
rustc_error_codes Add explanation for E0756 2020-09-21 21:04:56 +02:00
rustc_errors Rollup merge of #76846 - botika:master, r=davidtwco 2020-09-21 10:40:30 +02:00
rustc_expand Remove redundant #![feature(...)] 's from compiler/ 2020-09-17 07:58:45 +02:00
rustc_feature Add cfg(target_has_atomic_equal_alignment). 2020-09-21 20:42:25 +02:00
rustc_fs_util mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_graphviz Make graphviz font configurable 2020-09-16 08:10:06 -07:00
rustc_hir review, improve note span 2020-09-13 22:53:51 +02:00
rustc_hir_pretty mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_incremental mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_index cache types during normalization 2020-09-19 17:27:13 +02:00
rustc_infer Move MiniSet to data_structures 2020-09-23 08:09:16 +02:00
rustc_interface PR feedback 2020-09-17 12:18:09 +02:00
rustc_lexer Fix typo in rustc_lexer docs 2020-09-21 05:43:39 +02:00
rustc_lint Rollup merge of #76994 - yuk1ty:fix-small-typo, r=estebank 2020-09-23 14:54:07 +02:00
rustc_llvm Update cc crate to understand aarch64-apple-darwin with clang 2020-09-18 09:22:07 -04:00
rustc_macros Preserve doc-comments when generating queries 2020-09-17 00:28:31 -04:00
rustc_metadata Rollup merge of #76939 - lcnr:const-evaluatable-cont, r=oli-obk 2020-09-23 14:54:02 +02:00
rustc_middle Auto merge of #77006 - oli-obk:🐌_const_queries, r=Mark-Simulacrum 2020-09-24 15:12:17 +00:00
rustc_mir Auto merge of #76748 - tmiasko:no-op-jumps, r=matthewjasper 2020-09-24 05:57:06 +00:00
rustc_mir_build Auto merge of #76918 - ishitatsuyuki:match-fastpath, r=oli-obk 2020-09-24 17:22:56 +00:00
rustc_parse Rollup merge of #76994 - yuk1ty:fix-small-typo, r=estebank 2020-09-23 14:54:07 +02:00
rustc_parse_format Rollup merge of #76888 - matthiaskrgr:clippy_single_match_2, r=Dylan-DPC 2020-09-21 20:40:55 -07:00
rustc_passes transmute: use diagnostic item 2020-09-19 11:33:11 +02:00
rustc_plugin_impl mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_privacy Rollup merge of #76821 - est31:remove_redundant_nightly_features, r=oli-obk,Mark-Simulacrum 2020-09-20 12:08:22 +02:00
rustc_query_system update the version of itertools and parking_lot 2020-09-12 08:26:53 +02:00
rustc_resolve Rollup merge of #76888 - matthiaskrgr:clippy_single_match_2, r=Dylan-DPC 2020-09-21 20:40:55 -07:00
rustc_save_analysis use push(char) instead of push_str(&str) to add single chars to strings 2020-09-10 13:58:41 +02:00
rustc_serialize mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_session Don't unwrap but report a fatal error for TargetDataLayout::parse. 2020-09-21 20:43:44 +02:00
rustc_span Rollup merge of #76994 - yuk1ty:fix-small-typo, r=estebank 2020-09-23 14:54:07 +02:00
rustc_symbol_mangling use if let instead of single match arm expressions to compact code and reduce nesting (clippy::single_match) 2020-09-20 11:42:52 +02:00
rustc_target fix typo in docs and comments 2020-09-21 12:14:28 +09:00
rustc_trait_selection assign the correct DefId in nominal_obligations 2020-09-24 09:04:23 +02:00
rustc_traits Remove redundant #![feature(...)] 's from compiler/ 2020-09-17 07:58:45 +02:00
rustc_ty Remove redundant #![feature(...)] 's from compiler/ 2020-09-17 07:58:45 +02:00
rustc_typeck visit impl self ty + trait 2020-09-24 09:04:26 +02:00