rust/compiler
bors 9618da7c99 Auto merge of #131422 - GnomedDev:smallvec-predicate-obligations, r=compiler-errors
Use `ThinVec` for PredicateObligation storage

~~I noticed while profiling clippy on a project that a large amount of time is being spent allocating `Vec`s for `PredicateObligation`, and the `Vec`s are often quite small. This is an attempt to optimise this by using SmallVec to avoid heap allocations for these common small Vecs.~~

This PR turns all the `Vec<PredicateObligation>` into a single type alias while avoiding referring to `Vec` around it, then swaps the type over to `ThinVec<PredicateObligation>` and fixes the fallout. This also contains an implementation of `ThinVec::extract_if`, copied from `Vec::extract_if` and currently being upstreamed to https://github.com/Gankra/thin-vec/pull/66.

This leads to a small (0.2-0.7%) performance gain in the latest perf run.
2024-10-16 04:06:14 +00:00
..
rustc disable size asserts in the compiler when randomizing layouts 2024-08-31 23:56:45 +02:00
rustc_abi compiler: Wire {TyAnd,}Layout into rustc_abi 2024-10-11 17:41:52 -07:00
rustc_arena Remove unnecessary lifetimes from Arena. 2024-09-13 15:33:19 +10:00
rustc_ast Auto merge of #131723 - matthiaskrgr:rollup-krcslig, r=matthiaskrgr 2024-10-15 11:50:31 +00:00
rustc_ast_ir Add sugar for &pin (const|mut) types 2024-10-07 11:15:04 -07:00
rustc_ast_lowering Auto merge of #131723 - matthiaskrgr:rollup-krcslig, r=matthiaskrgr 2024-10-15 11:50:31 +00:00
rustc_ast_passes Auto merge of #130654 - lcnr:stabilize-coherence-again, r=compiler-errors 2024-10-15 14:21:34 +00:00
rustc_ast_pretty Auto merge of #131723 - matthiaskrgr:rollup-krcslig, r=matthiaskrgr 2024-10-15 11:50:31 +00:00
rustc_attr Rename NestedMetaItem to MetaItemInner 2024-10-06 23:28:30 +09:00
rustc_baked_icu_data Don't add warn(unreachable_pub) to rustc_baked_icu. 2024-08-16 08:46:52 +10:00
rustc_borrowck Auto merge of #131422 - GnomedDev:smallvec-predicate-obligations, r=compiler-errors 2024-10-16 04:06:14 +00:00
rustc_builtin_macros Auto merge of #131723 - matthiaskrgr:rollup-krcslig, r=matthiaskrgr 2024-10-15 11:50:31 +00:00
rustc_codegen_cranelift intrinsics.fmuladdf{16,32,64,128}: expose llvm.fmuladd.* semantics 2024-10-11 15:32:56 -06:00
rustc_codegen_gcc intrinsics.fmuladdf{16,32,64,128}: expose llvm.fmuladd.* semantics 2024-10-11 15:32:56 -06:00
rustc_codegen_llvm Fix AArch64InlineAsmReg::emit 2024-10-14 06:04:07 +09:00
rustc_codegen_ssa Rollup merge of #131521 - jdonszelmann:rc, r=joboet 2024-10-15 12:33:36 -04:00
rustc_const_eval Rollup merge of #130568 - eduardosm:const-float-methods, r=RalfJung,tgross35 2024-10-15 12:33:35 -04:00
rustc_data_structures Auto merge of #131422 - GnomedDev:smallvec-predicate-obligations, r=compiler-errors 2024-10-16 04:06:14 +00:00
rustc_driver Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_driver_impl Rollup merge of #130899 - bjorn3:wasi_bootstrap_fixes, r=davidtwco 2024-10-07 11:10:53 -07:00
rustc_error_codes Fix typo in E0793 2024-10-09 10:28:16 -07:00
rustc_error_messages Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_errors Rollup merge of #131344 - nnethercote:ref-Lrc, r=compiler-errors 2024-10-07 12:23:54 +02:00
rustc_expand Auto merge of #131723 - matthiaskrgr:rollup-krcslig, r=matthiaskrgr 2024-10-15 11:50:31 +00:00
rustc_feature Auto merge of #129458 - EnzymeAD:enzyme-frontend, r=jieyouxu 2024-10-15 01:30:01 +00:00
rustc_fluent_macro Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_fs_util Couple of changes to make it easier to compile rustc for wasm 2024-09-26 19:51:14 +00:00
rustc_graphviz Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_hir Auto merge of #131723 - matthiaskrgr:rollup-krcslig, r=matthiaskrgr 2024-10-15 11:50:31 +00:00
rustc_hir_analysis Auto merge of #131422 - GnomedDev:smallvec-predicate-obligations, r=compiler-errors 2024-10-16 04:06:14 +00:00
rustc_hir_pretty Move trait bound modifiers into hir::PolyTraitRef 2024-10-14 09:20:38 -04:00
rustc_hir_typeck Auto merge of #131422 - GnomedDev:smallvec-predicate-obligations, r=compiler-errors 2024-10-16 04:06:14 +00:00
rustc_incremental Rename NestedMetaItem to MetaItemInner 2024-10-06 23:28:30 +09:00
rustc_index Rollup merge of #130625 - heiseish:issue-124028-fix, r=jieyouxu 2024-10-10 12:49:18 +02:00
rustc_index_macros Remove 'apostrophes' from rustc_parse_format 2024-10-14 23:22:51 +02:00
rustc_infer Swap PredicateObligation to ThinVec 2024-10-12 15:17:16 +01:00
rustc_interface stabilize -Znext-solver=coherence 2024-10-15 13:11:00 +02:00
rustc_lexer Reserve guarded string literals (RFC 3593) 2024-10-08 18:21:16 -06:00
rustc_lint Rollup merge of #131652 - compiler-errors:modifiers, r=Nadrieril,jieyouxu 2024-10-15 05:11:37 +02:00
rustc_lint_defs Update lint message for ABI not supported 2024-10-14 10:02:33 +02:00
rustc_llvm Rollup merge of #131552 - durin42:llvm-20-getOrInsertDeclaration, r=cuviper 2024-10-11 16:53:50 -05:00
rustc_log Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_macros Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_metadata Auto merge of #131045 - compiler-errors:remove-unnamed_fields, r=wesleywiser 2024-10-11 13:11:13 +00:00
rustc_middle Auto merge of #131422 - GnomedDev:smallvec-predicate-obligations, r=compiler-errors 2024-10-16 04:06:14 +00:00
rustc_mir_build Auto merge of #131045 - compiler-errors:remove-unnamed_fields, r=wesleywiser 2024-10-11 13:11:13 +00:00
rustc_mir_dataflow Auto merge of #131235 - codemountains:rename-nestedmetaitem-to-metaitemlnner, r=nnethercote 2024-10-07 08:59:55 +00:00
rustc_mir_transform coverage. Warn about too many test vectors 2024-10-08 11:15:26 +08:00
rustc_monomorphize Use wide pointers consistenly across the compiler 2024-10-04 14:06:48 +02:00
rustc_next_trait_solver Shallowly match opaque key in storage 2024-10-12 09:10:07 -04:00
rustc_parse Auto merge of #131723 - matthiaskrgr:rollup-krcslig, r=matthiaskrgr 2024-10-15 11:50:31 +00:00
rustc_parse_format Remove 'apostrophes' from rustc_parse_format 2024-10-14 23:22:51 +02:00
rustc_passes Auto merge of #131724 - matthiaskrgr:rollup-ntgkkk8, r=matthiaskrgr 2024-10-15 05:02:38 +00:00
rustc_pattern_analysis cleanup: don't clone types that are Copy 2024-09-29 13:31:30 +02:00
rustc_privacy Visit opaques for visibilities. 2024-10-04 23:31:55 +00:00
rustc_query_impl Handle rustc_query_impl cases of rustc::potential_query_instability lint 2024-10-03 12:47:08 +03:00
rustc_query_system add unstable support for outputting file checksums for use in cargo 2024-10-01 21:23:20 -06:00
rustc_resolve Auto merge of #131723 - matthiaskrgr:rollup-krcslig, r=matthiaskrgr 2024-10-15 11:50:31 +00:00
rustc_sanitizers Fix some pub(crate) that were undetected bc of instrument 2024-10-04 14:02:09 -04:00
rustc_serialize Stabilize const_option 2024-10-12 17:07:13 -04:00
rustc_session stabilize -Znext-solver=coherence 2024-10-15 13:11:00 +02:00
rustc_smir various fixes for naked_asm! implementation 2024-10-06 19:00:09 +02:00
rustc_span Auto merge of #129458 - EnzymeAD:enzyme-frontend, r=jieyouxu 2024-10-15 01:30:01 +00:00
rustc_symbol_mangling Rollup merge of #130344 - Jaic1:fix-116306, r=BoxyUwU 2024-09-23 06:45:33 +02:00
rustc_target Rollup merge of #131667 - taiki-e:aarch64-inline-asm-reg-emit, r=Amanieu 2024-10-14 17:06:38 +02:00
rustc_trait_selection Auto merge of #131422 - GnomedDev:smallvec-predicate-obligations, r=compiler-errors 2024-10-16 04:06:14 +00:00
rustc_traits Swap Vec<PredicateObligation> to type alias 2024-10-12 15:17:08 +01:00
rustc_transmute Fix some pub(crate) that were undetected bc of instrument 2024-10-04 14:02:09 -04:00
rustc_ty_utils rename RcBox in other places too 2024-10-11 10:04:22 +02:00
rustc_type_ir Swap PredicateObligation to ThinVec 2024-10-12 15:17:16 +01:00
rustc_type_ir_macros Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
stable_mir Fix uninlined_format_args in stable_mir 2024-10-15 13:49:07 +02:00