rust/compiler
Jubilee Young 7086dd83cc compiler: rustc_abi::Abi => BackendRepr
The initial naming of "Abi" was an awful mistake, conveying wrong ideas
about how psABIs worked and even more about what the enum meant.
It was only meant to represent the way the value would be described to
a codegen backend as it was lowered to that intermediate representation.
It was never meant to mean anything about the actual psABI handling!
The conflation is because LLVM typically will associate a certain form
with a certain ABI, but even that does not hold when the special cases
that actually exist arise, plus the IR annotations that modify the ABI.

Reframe `rustc_abi::Abi` as the `BackendRepr` of the type, and rename
`BackendRepr::Aggregate` as `BackendRepr::Memory`. Unfortunately, due to
the persistent misunderstandings, this too is now incorrect:
- Scattered ABI-relevant code is entangled with BackendRepr
- We do not always pre-compute a correct BackendRepr that reflects how
  we "actually" want this value to be handled, so we leave the backend
  interface to also inject various special-cases here
- In some cases `BackendRepr::Memory` is a "real" aggregate, but in
  others it is in fact using memory, and in some cases it is a scalar!

Our rustc-to-backend lowering code handles this sort of thing right now.
That will eventually be addressed by lifting duplicated lowering code
to either rustc_codegen_ssa or rustc_target as appropriate.
2024-10-29 14:56:00 -07:00
..
rustc disable size asserts in the compiler when randomizing layouts 2024-08-31 23:56:45 +02:00
rustc_abi compiler: rustc_abi::Abi => BackendRepr 2024-10-29 14:56:00 -07:00
rustc_arena move strict provenance lints to new feature gate, remove old feature gates 2024-10-21 15:22:17 +01:00
rustc_ast fix clippy::clone_on_ref_ptr for compiler 2024-10-28 18:05:08 +03:00
rustc_ast_ir Add sugar for &pin (const|mut) types 2024-10-07 11:15:04 -07:00
rustc_ast_lowering Rollup merge of #131375 - klensy:clone_on_ref_ptr, r=cjgillot 2024-10-29 03:11:39 -07:00
rustc_ast_passes Rollup merge of #132214 - fmease:mv-impl-trait-val-paths, r=compiler-errors 2024-10-27 19:49:07 +01:00
rustc_ast_pretty fix clippy::clone_on_ref_ptr for compiler 2024-10-28 18:05:08 +03:00
rustc_attr Re-do recursive const stability checks 2024-10-25 20:31:40 +02: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 fix clippy::clone_on_ref_ptr for compiler 2024-10-28 18:05:08 +03:00
rustc_builtin_macros Auto merge of #131284 - dingxiangfei2009:rename-smart-ptr-to-coerce-referent, r=compiler-errors 2024-10-27 17:04:12 +00:00
rustc_codegen_cranelift cg_clif: Rename LayoutS to LayoutData 2024-10-27 22:32:40 -07:00
rustc_codegen_gcc Effects cleanup 2024-10-26 10:19:07 +08:00
rustc_codegen_llvm compiler: rustc_abi::Abi => BackendRepr 2024-10-29 14:56:00 -07:00
rustc_codegen_ssa compiler: rustc_abi::Abi => BackendRepr 2024-10-29 14:56:00 -07:00
rustc_const_eval compiler: rustc_abi::Abi => BackendRepr 2024-10-29 14:56:00 -07:00
rustc_data_structures Replace an FTP link in comments with an equivalent HTTPS link 2024-10-24 17:02:11 +11:00
rustc_driver
rustc_driver_impl fix clippy::clone_on_ref_ptr for compiler 2024-10-28 18:05:08 +03:00
rustc_error_codes Auto merge of #132145 - RalfJung:stdarch, r=Amanieu 2024-10-28 16:25:56 +00: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 #131375 - klensy:clone_on_ref_ptr, r=cjgillot 2024-10-29 03:11:39 -07:00
rustc_expand Rollup merge of #131375 - klensy:clone_on_ref_ptr, r=cjgillot 2024-10-29 03:11:39 -07:00
rustc_feature Auto merge of #131284 - dingxiangfei2009:rename-smart-ptr-to-coerce-referent, r=compiler-errors 2024-10-27 17:04:12 +00:00
rustc_fluent_macro use tracked_path in rustc_fluent_macro 2024-10-19 22:32:38 +08: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 Remove associated type based effects logic 2024-10-24 09:46:36 +00:00
rustc_hir_analysis Rollup merge of #132194 - compiler-errors:rpitit-super-wc, r=spastorino 2024-10-29 03:11:41 -07:00
rustc_hir_pretty Remove associated type based effects logic 2024-10-24 09:46:36 +00:00
rustc_hir_typeck Remove ObligationCause::span() method 2024-10-27 23:54:06 +00:00
rustc_incremental nightly feature tracking: get rid of the per-feature bool fields 2024-10-23 09:14:41 +01: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 fix clippy::clone_on_ref_ptr for compiler 2024-10-28 18:05:08 +03:00
rustc_interface fix clippy::clone_on_ref_ptr for compiler 2024-10-28 18:05:08 +03:00
rustc_lexer Reserve guarded string literals (RFC 3593) 2024-10-08 18:21:16 -06:00
rustc_lint compiler: rustc_abi::Abi => BackendRepr 2024-10-29 14:56:00 -07:00
rustc_lint_defs Auto merge of #125116 - blyxyas:ignore-allowed-lints-final, r=cjgillot 2024-10-26 16:37:43 +00:00
rustc_llvm correct LLVMRustDIBuilderCreateOpLLVMFragment return type 2024-10-29 00:47:20 +03:00
rustc_log Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_macros give a better error for tuple structs in derive(Diagnostic) 2024-10-27 21:23:28 -04:00
rustc_metadata Rollup merge of #131375 - klensy:clone_on_ref_ptr, r=cjgillot 2024-10-29 03:11:39 -07:00
rustc_middle compiler: rustc_abi::Abi => BackendRepr 2024-10-29 14:56:00 -07:00
rustc_mir_build compiler: rustc_abi::Abi => BackendRepr 2024-10-29 14:56:00 -07:00
rustc_mir_dataflow compiler: rustc_abi::Abi => BackendRepr 2024-10-29 14:56:00 -07:00
rustc_mir_transform compiler: rustc_abi::Abi => BackendRepr 2024-10-29 14:56:00 -07:00
rustc_monomorphize Auto merge of #132171 - matthiaskrgr:rollup-tp75ge7, r=matthiaskrgr 2024-10-26 06:53:53 +00:00
rustc_next_trait_solver Add support for ~const item bounds 2024-10-24 23:43:31 +00:00
rustc_parse fix clippy::clone_on_ref_ptr for compiler 2024-10-28 18:05:08 +03:00
rustc_parse_format Remove 'apostrophes' from rustc_parse_format 2024-10-14 23:22:51 +02:00
rustc_passes compiler: rustc_abi::Abi => BackendRepr 2024-10-29 14:56:00 -07:00
rustc_pattern_analysis compiler: Add rustc_abi dependence to the compiler 2024-10-27 21:10:58 -07:00
rustc_privacy Implement const effect predicate in new solver 2024-10-24 09:46:36 +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 fix clippy::clone_on_ref_ptr for compiler 2024-10-28 18:05:08 +03:00
rustc_resolve Rollup merge of #131375 - klensy:clone_on_ref_ptr, r=cjgillot 2024-10-29 03:11:39 -07:00
rustc_sanitizers Rollup merge of #131049 - compiler-errors:more-validation, r=spastorino 2024-10-22 15:28:38 +02:00
rustc_serialize Fix explicit_iter_loop in rustc_serialize 2024-10-16 15:44:16 +02:00
rustc_session Rollup merge of #131375 - klensy:clone_on_ref_ptr, r=cjgillot 2024-10-29 03:11:39 -07:00
rustc_smir compiler: rustc_abi::Abi => BackendRepr 2024-10-29 14:56:00 -07:00
rustc_span Rollup merge of #131375 - klensy:clone_on_ref_ptr, r=cjgillot 2024-10-29 03:11:39 -07:00
rustc_symbol_mangling compiler: Add rustc_abi dependence to the compiler 2024-10-27 21:10:58 -07:00
rustc_target compiler: rustc_abi::Abi => BackendRepr 2024-10-29 14:56:00 -07:00
rustc_trait_selection compiler: rustc_abi::Abi => BackendRepr 2024-10-29 14:56:00 -07:00
rustc_traits Implement const effect predicate in new solver 2024-10-24 09:46:36 +00:00
rustc_transmute Rollup merge of #132255 - workingjubilee:layout-is-🏚️, r=compiler-errors 2024-10-28 10:18:50 -07:00
rustc_ty_utils compiler: rustc_abi::Abi => BackendRepr 2024-10-29 14:56:00 -07:00
rustc_type_ir Implement const effect predicate in new solver 2024-10-24 09:46:36 +00:00
rustc_type_ir_macros do not relate Abi and Safety 2024-10-22 23:13:04 +02:00
stable_mir Rollup merge of #132085 - celinval:update-smir-doc, r=compiler-errors 2024-10-24 23:23:55 -07:00