rust/compiler
Guillaume Gomez 470c4f94e8
Rollup merge of #133452 - taiki-e:hexagon-asm-pred, r=Amanieu
Support predicate registers (clobber-only) in Hexagon inline assembly

The result of the Hexagon instructions such as comparison, store conditional, etc. is stored in predicate registers (`p[0-3]`), but currently there is no way to mark it as clobbered in `asm!`.

This is also needed for `clobber_abi` (although implementing `clobber_abi` will require the addition of support for [several more register classes](https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp#L71-L90). see also https://github.com/rust-lang/rust/issues/93335#issuecomment-2395210055).

Refs:
- [Section 6 "Conditional Execution" in Qualcomm Hexagon V73 Programmer’s Reference Manual](https://docs.qualcomm.com/bundle/publicresource/80-N2040-53_REV_AB_Qualcomm_Hexagon_V73_Programmers_Reference_Manual.pdf#page=90)
- [Register definition in LLVM](https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/llvm/lib/Target/Hexagon/HexagonRegisterInfo.td#L155)

cc `@androm3da` (target maintainer of hexagon-unknown-{[none-elf](https://doc.rust-lang.org/nightly/rustc/platform-support/hexagon-unknown-none-elf.html#target-maintainers),[linux-musl](https://doc.rust-lang.org/nightly/rustc/platform-support/hexagon-unknown-linux-musl.html#target-maintainers)})

r? `@Amanieu`

`@rustbot` label +A-inline-assembly
(Currently there is no O-hexagon label...)
2024-11-28 12:06:02 +01:00
..
rustc Auto merge of #132282 - Noratrieb:it-is-the-end-of-serial, r=cjgillot 2024-11-12 15:14:56 +00:00
rustc_abi Auto merge of #130867 - michirakara:steps_between, r=dtolnay 2024-11-22 10:54:22 +00:00
rustc_arena
rustc_ast Rollup merge of #133140 - dtolnay:precedence, r=fmease 2024-11-26 12:03:41 -05:00
rustc_ast_ir
rustc_ast_lowering Rollup merge of #133422 - taiki-e:riscv-e-clobber-abi, r=Amanieu 2024-11-28 12:06:01 +01:00
rustc_ast_passes Refactor where predicates, and reserve for attributes support 2024-11-25 16:38:35 +08:00
rustc_ast_pretty Rollup merge of #133140 - dtolnay:precedence, r=fmease 2024-11-26 12:03:41 -05:00
rustc_attr ensure that all publicly reachable const fn have const stability info 2024-11-10 10:16:26 +01:00
rustc_baked_icu_data Delete the cfg(not(parallel)) serial compiler 2024-11-12 13:38:58 +00:00
rustc_borrowck Structurally resolve before applying projection in borrowck 2024-11-27 20:39:49 +00:00
rustc_builtin_macros Auto merge of #132894 - frank-king:feature/where-refactor, r=cjgillot 2024-11-26 04:12:33 +00:00
rustc_codegen_cranelift Rollup merge of #133422 - taiki-e:riscv-e-clobber-abi, r=Amanieu 2024-11-28 12:06:01 +01:00
rustc_codegen_gcc Support predicate registers (clobber-only) in Hexagon inline assembly 2024-11-25 23:11:17 +09:00
rustc_codegen_llvm Rollup merge of #133452 - taiki-e:hexagon-asm-pred, r=Amanieu 2024-11-28 12:06:02 +01:00
rustc_codegen_ssa Rollup merge of #133384 - RalfJung:vector-abi-check-tests, r=jieyouxu 2024-11-25 00:39:06 +08:00
rustc_const_eval Move always_storage_live_locals. 2024-11-26 12:05:57 +11:00
rustc_data_structures Add UnordMap::clear method 2024-11-20 18:11:37 +01:00
rustc_driver
rustc_driver_impl Rollup merge of #132410 - bjorn3:yet_another_driver_refactor_round, r=cjgillot 2024-11-27 22:23:24 +01:00
rustc_error_codes remove support for rustc_safe_intrinsic attribute; use rustc_intrinsic functions instead 2024-11-08 09:16:00 +01:00
rustc_error_messages Delete the cfg(not(parallel)) serial compiler 2024-11-12 13:38:58 +00:00
rustc_errors Auto merge of #132954 - matthiaskrgr:rollup-x3rww9h, r=matthiaskrgr 2024-11-12 18:04:27 +00:00
rustc_expand Implement the unsafe-fields RFC. 2024-11-21 19:32:07 +01:00
rustc_feature Rollup merge of #131664 - taiki-e:s390x-asm-vreg-inout, r=Amanieu 2024-11-25 07:01:37 +01:00
rustc_fluent_macro
rustc_fs_util
rustc_graphviz
rustc_hir Auto merge of #133505 - compiler-errors:rollup-xjp8hdi, r=compiler-errors 2024-11-26 21:57:32 +00:00
rustc_hir_analysis Rollup merge of #133428 - compiler-errors:rpitit-unsound, r=lcnr 2024-11-28 03:14:47 +01:00
rustc_hir_pretty Rollup merge of #133140 - dtolnay:precedence, r=fmease 2024-11-26 12:03:41 -05:00
rustc_hir_typeck Rollup merge of #133358 - compiler-errors:pin-coerce, r=eholk 2024-11-28 12:06:00 +01:00
rustc_incremental Move some code from Compiler::enter to GlobalCtxt::finish 2024-11-09 17:55:39 +00:00
rustc_index reduce false positives of tail-expr-drop-order from consumed values 2024-11-20 20:53:11 +08:00
rustc_index_macros Auto merge of #130867 - michirakara:steps_between, r=dtolnay 2024-11-22 10:54:22 +00:00
rustc_infer Auto merge of #133242 - lcnr:questionable-uwu, r=compiler-errors,BoxyUwU 2024-11-23 18:01:21 +00:00
rustc_interface Rollup merge of #132410 - bjorn3:yet_another_driver_refactor_round, r=cjgillot 2024-11-27 22:23:24 +01:00
rustc_lexer Clean up c_or_byte_string. 2024-11-25 16:10:55 +11:00
rustc_lint Avoid even more decoding if not absolutely necessary 2024-11-27 07:35:55 +01:00
rustc_lint_defs show abi_unsupported_vector_types lint in future breakage reports 2024-11-23 09:15:25 +01:00
rustc_llvm Rollup merge of #127483 - BertalanD:no_sanitize-global-var, r=rcvalle 2024-11-23 20:19:51 +08:00
rustc_log
rustc_macros
rustc_metadata Auto merge of #133369 - Zalathar:profiler-builtins-no-core, r=jieyouxu 2024-11-27 10:19:38 +00:00
rustc_middle Rollup merge of #133418 - Zalathar:spans, r=jieyouxu 2024-11-27 22:23:25 +01:00
rustc_mir_build Auto merge of #131859 - chriskrycho:update-trpl, r=onur-ozkan 2024-11-23 23:26:19 +00:00
rustc_mir_dataflow Rollup merge of #133475 - nnethercote:MaybeStorage-improvements, r=lcnr 2024-11-26 20:35:40 -05:00
rustc_mir_transform Rollup merge of #133418 - Zalathar:spans, r=jieyouxu 2024-11-27 22:23:25 +01:00
rustc_monomorphize remove remaining references to Reveal 2024-11-23 13:52:56 +01:00
rustc_next_trait_solver remove remaining references to Reveal 2024-11-23 13:52:56 +01:00
rustc_parse Rollup merge of #133140 - dtolnay:precedence, r=fmease 2024-11-26 12:03:41 -05:00
rustc_parse_format
rustc_passes Refactor where predicates, and reserve for attributes support 2024-11-25 16:38:35 +08:00
rustc_pattern_analysis no more Reveal :( 2024-11-23 13:52:54 +01:00
rustc_privacy Simplify some places that deal with generic parameter defaults 2024-11-11 21:29:18 +01:00
rustc_query_impl Rollup merge of #132410 - bjorn3:yet_another_driver_refactor_round, r=cjgillot 2024-11-27 22:23:24 +01:00
rustc_query_system Auto merge of #124780 - Mark-Simulacrum:lockless-cache, r=lcnr 2024-11-19 02:07:48 +00:00
rustc_resolve Auto merge of #133274 - ehuss:macro_rules-edition-from-pm, r=compiler-errors 2024-11-27 04:54:08 +00:00
rustc_sanitizers use TypingEnv when no infcx is available 2024-11-18 10:38:56 +01:00
rustc_serialize
rustc_session Remove -Zfuel. 2024-11-26 10:45:21 +00:00
rustc_smir Rollup merge of #132410 - bjorn3:yet_another_driver_refactor_round, r=cjgillot 2024-11-27 22:23:24 +01:00
rustc_span rustc_span: Replace a HashMap<_, ()> with HashSet 2024-11-27 11:23:25 -08:00
rustc_symbol_mangling additional TypingEnv cleanups 2024-11-19 21:36:23 +01:00
rustc_target Rollup merge of #133452 - taiki-e:hexagon-asm-pred, r=Amanieu 2024-11-28 12:06:02 +01:00
rustc_trait_selection Auto merge of #133393 - compiler-errors:dyn-tweaks, r=lcnr,spastorino 2024-11-27 13:02:46 +00:00
rustc_traits Delay a bug when encountering an impl with unconstrained generics in codegen_select 2024-11-23 05:27:45 +00:00
rustc_transmute use TypingEnv when no infcx is available 2024-11-18 10:38:56 +01:00
rustc_ty_utils rebase 2024-11-23 13:52:57 +01:00
rustc_type_ir Auto merge of #133393 - compiler-errors:dyn-tweaks, r=lcnr,spastorino 2024-11-27 13:02:46 +00:00
rustc_type_ir_macros
stable_mir Rollup merge of #132161 - celinval:smir-fix-indent, r=compiler-errors 2024-11-08 18:51:28 +11:00