rust/compiler
Matthias Krüger b66c6e719f
Rollup merge of #117095 - klinvill:smir-fn-arg-count, r=oli-obk
Add way to differentiate argument locals from other locals in Stable MIR

This PR resolves rust-lang/project-stable-mir#47 which request a way to differentiate argument locals in a SMIR `Body` from other locals.

Specifically, this PR exposes the `arg_count` field from the MIR `Body`. However, I'm opening this as a draft PR because I think there are a few outstanding questions on how this information should be exposed and described. Namely:

- Is exposing `arg_count` the best way to surface this information to SMIR users? Would it be better to leave `arg_count` as a private field and add public methods (e.g. `fn arguments(&self) -> Iter<'_, LocalDecls>`) that may use the underlying `arg_count` info from the MIR body, but expose this information to users in a more convenient form? Or is it best to stick close to the current MIR convention?
- If the answer to the above point is to stick with the current MIR convention (`arg_count`), is it reasonable to also commit to sticking to the current MIR convention that the first local is always the return local, while the next `arg_count` locals are always the (in-order) argument locals?
- Should `Body` in SMIR only represent function bodies (as implied by the comment I added)? That seems to be the current case in MIR, but should this restriction always be the case for SMIR?

r? `@celinval`
r? `@oli-obk`
2023-10-26 17:45:43 +02:00
..
rustc Split out the stable part of smir into its own crate to prevent accidental usage of forever unstable things 2023-09-25 14:38:27 +00:00
rustc_abi s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
rustc_arena rustdoc: remove rust logo from non-Rust crates 2023-10-08 20:17:53 -07:00
rustc_ast use visibility to check unused imports and delete some stmts 2023-10-22 21:27:46 +08:00
rustc_ast_lowering Rename AsyncCoroutineKind to CoroutineSource 2023-10-25 16:14:05 +00:00
rustc_ast_passes s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
rustc_ast_pretty Auto merge of #116822 - notriddle:notriddle/rust-logo, r=fmease 2023-10-17 04:41:20 +00:00
rustc_attr Expose a non-Symbol way to access current rustc version string 2023-10-24 18:11:20 -07:00
rustc_baked_icu_data docs: add Rust logo to more compiler crates 2023-10-16 15:38:08 -07:00
rustc_borrowck Rename AsyncCoroutineKind to CoroutineSource 2023-10-25 16:14:05 +00:00
rustc_builtin_macros Auto merge of #116236 - dtolnay:builtinmacrocomment, r=cjgillot 2023-10-25 06:57:37 +00:00
rustc_codegen_cranelift Merge commit '93a5433f17ab5ed48cc88f1e69b0713b16183373' into sync_cg_clif-2023-10-24 2023-10-24 12:22:23 +00:00
rustc_codegen_gcc s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
rustc_codegen_llvm Auto merge of #116033 - bvanjoi:fix-116032, r=petrochenkov 2023-10-23 20:24:09 +00:00
rustc_codegen_ssa Auto merge of #117115 - zetafunction:linking, r=bjorn3 2023-10-26 04:04:50 +00:00
rustc_const_eval Refactor away the need for some descr methods. 2023-10-25 16:40:32 +00:00
rustc_data_structures Auto merge of #116849 - oli-obk:error_shenanigans, r=cjgillot 2023-10-23 09:59:40 +00:00
rustc_driver docs: add Rust logo to more compiler crates 2023-10-16 15:38:08 -07:00
rustc_driver_impl Auto merge of #116818 - Nilstrieb:stop-submitting-bug-reports, r=wesleywiser 2023-10-26 02:08:07 +00:00
rustc_error_codes Replace all uses of generator in markdown documentation with coroutine 2023-10-20 21:14:02 +00:00
rustc_error_messages docs: add Rust logo to more compiler crates 2023-10-16 15:38:08 -07:00
rustc_errors Auto merge of #116962 - estebank:issue-63835, r=oli-obk 2023-10-20 10:52:24 +00:00
rustc_expand Auto merge of #116818 - Nilstrieb:stop-submitting-bug-reports, r=wesleywiser 2023-10-26 02:08:07 +00:00
rustc_feature Rollup merge of #116943 - heiher:target-features, r=wesleywiser 2023-10-24 19:29:55 +02:00
rustc_fluent_macro Use v0.0.0 in compiler crates 2023-10-18 21:55:15 +00:00
rustc_fs_util
rustc_graphviz rustdoc: remove rust logo from non-Rust crates 2023-10-08 20:17:53 -07:00
rustc_hir Rollup merge of #117175 - oli-obk:gen_fn_split, r=compiler-errors 2023-10-25 23:37:11 +02:00
rustc_hir_analysis Rollup merge of #116553 - gurry:116464-assoc-type-invalid-suggestion, r=compiler-errors 2023-10-25 23:37:09 +02:00
rustc_hir_pretty Fiddle with State functions. 2023-10-11 10:46:55 +11:00
rustc_hir_typeck Auto merge of #113262 - Nilstrieb:rawr-casting, r=lcnr 2023-10-26 12:54:19 +00:00
rustc_incremental Auto merge of #115964 - bjorn3:cgu_reuse_tracker_global_state, r=cjgillot 2023-10-13 00:09:30 +00:00
rustc_index Preserve DebugInfo in DeadStoreElimination. 2023-10-06 15:46:11 +00:00
rustc_infer Refactor away the need for some descr methods. 2023-10-25 16:40:32 +00:00
rustc_interface Auto merge of #116818 - Nilstrieb:stop-submitting-bug-reports, r=wesleywiser 2023-10-26 02:08:07 +00:00
rustc_lexer Use v0.0.0 in compiler crates 2023-10-18 21:55:15 +00:00
rustc_lint Make ty::print::Printer take &mut self instead of self 2023-10-21 11:33:05 +02:00
rustc_lint_defs Auto merge of #116734 - Nadrieril:lint-per-column, r=cjgillot 2023-10-21 11:04:19 +00:00
rustc_llvm rustdoc: remove rust logo from non-Rust crates 2023-10-08 20:17:53 -07:00
rustc_log use env variable to control thread ids in rustc_log 2023-10-10 09:39:47 +08:00
rustc_macros Allow ensure queries to return Result<(), ErrorGuaranteed> 2023-10-23 08:20:29 +00:00
rustc_metadata s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
rustc_middle Auto merge of #112875 - compiler-errors:negative-coherence-rework, r=lcnr 2023-10-26 10:57:21 +00:00
rustc_mir_build Auto merge of #113262 - Nilstrieb:rawr-casting, r=lcnr 2023-10-26 12:54:19 +00:00
rustc_mir_dataflow Auto merge of #116300 - cjgillot:split-move, r=petrochenkov 2023-10-24 00:25:32 +00:00
rustc_mir_transform Rollup merge of #117141 - tmiasko:inline-target-features, r=oli-obk 2023-10-25 19:51:14 +02:00
rustc_monomorphize coverage: Change query codegened_and_inlined_items to a plain function 2023-10-21 12:20:05 +11:00
rustc_parse s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
rustc_parse_format rustdoc: remove rust logo from non-Rust crates 2023-10-08 20:17:53 -07:00
rustc_passes Keep track of #[stable] attribute even if version cannot be parsed 2023-10-24 15:50:23 -07:00
rustc_plugin_impl rustdoc: remove rust logo from non-Rust crates 2023-10-08 20:17:53 -07:00
rustc_privacy Merge associated types with the other alias types 2023-10-23 10:10:22 +00:00
rustc_query_impl rustdoc: remove rust logo from non-Rust crates 2023-10-08 20:17:53 -07:00
rustc_query_system fix broken link: update incremental compilation url 2023-10-22 07:20:36 -07:00
rustc_resolve Rollup merge of #116905 - Fenex:refactor/compiler/resolve, r=petrochenkov 2023-10-26 17:45:43 +02:00
rustc_serialize rustdoc: remove rust logo from non-Rust crates 2023-10-08 20:17:53 -07:00
rustc_session Auto merge of #116818 - Nilstrieb:stop-submitting-bug-reports, r=wesleywiser 2023-10-26 02:08:07 +00:00
rustc_smir Rollup merge of #117095 - klinvill:smir-fn-arg-count, r=oli-obk 2023-10-26 17:45:43 +02:00
rustc_span Make Iterator a lang item 2023-10-25 16:18:57 +00:00
rustc_symbol_mangling Make ty::print::Printer take &mut self instead of self 2023-10-21 11:33:05 +02:00
rustc_target implement C ABI lowering for CSKY 2023-10-25 20:47:06 +08:00
rustc_trait_selection Auto merge of #112875 - compiler-errors:negative-coherence-rework, r=lcnr 2023-10-26 10:57:21 +00:00
rustc_traits Detect cycle errors hidden by opaques during monomorphization 2023-09-13 17:35:44 +00:00
rustc_transmute Use v0.0.0 in compiler crates 2023-10-18 21:55:15 +00:00
rustc_ty_utils Rollup merge of #117136 - compiler-errors:defid-list, r=oli-obk 2023-10-25 17:40:29 +02:00
rustc_type_ir Uplift Canonical to rustc_type_ir 2023-10-25 16:25:09 +00:00
stable_mir Rollup merge of #117095 - klinvill:smir-fn-arg-count, r=oli-obk 2023-10-26 17:45:43 +02:00