Skip to content

gccrs: Handle more llvm_asm usages - #4786

Merged
P-E-P merged 1 commit into
Rust-GCC:masterfrom
powerboat9:llvm-asm-2
Aug 17, 2026
Merged

gccrs: Handle more llvm_asm usages#4786
P-E-P merged 1 commit into
Rust-GCC:masterfrom
powerboat9:llvm-asm-2

Conversation

@powerboat9

@powerboat9 powerboat9 commented Aug 16, 2026

Copy link
Copy Markdown
Collaborator

More subtle differences between GCC and LLVM inline assembly might be an issue in the future, but this should handle or safely reject most usages.

@powerboat9
powerboat9 marked this pull request as draft August 16, 2026 16:52
More subtle differences between GCC and LLVM inline assembly might be
an issue in the future, but this should handle or safely reject most
usages.

gcc/rust/ChangeLog:

	* ast/rust-expr.h (LlvmInlineAsm::LlvmInlineAsm): Initialize
	more member variables.
	(LlvmInlineAsm::get_dialect): Make function const qualified.
	(LlvmInlineAsm::is_stack_aligned): Likewise.
	(LlvmInlineAsm::is_volatile): Likewise.
	* backend/rust-compile-asm.cc
	(CompileLlvmAsm::construct_operands): Handle llvm-specific "=*m"
	constraint.
	(CompileLlvmAsm::tree_codegen_asm): Handle change from multiple
	template strings to a single template string.
	* hir/rust-ast-lower-expr.cc (convert_template_str): New
	function.
	(check_llvm_asm_support): Remove unnecessary parameters and
	expand the set of allowed llvm_asm usages.
	(ASTLoweringExpr::visit (LlvmInlineAsm)): Adjust lowering.
	* hir/tree/rust-hir-expr.h (LlvmInlineAsm::templates): Remove
	member variable and replace with...
	(LlvmInlineAsm::template_str): ...new member variable.
	(LlvmInlineAsm::LlvmInlineAsm): Handle member variable changes.
	(LlvmInlineAsm::get_templates): Remove member function and
	replace with...
	(LlvmInlineAsm::get_template): ...new member function.
	* hir/tree/rust-hir-visitor.cc
	(DefaultHIRVisitor::walk (LlvmInlineAsm)): Visit outer
	attributes.
	* typecheck/rust-hir-type-check-expr.cc
	(TypeCheckExpr::visit (LlvmInlineAsm)): Adjust comments.

Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>
@powerboat9
powerboat9 marked this pull request as ready for review August 17, 2026 02:34
@P-E-P
P-E-P added this pull request to the merge queue Aug 17, 2026
Merged via the queue into Rust-GCC:master with commit 0029e0e Aug 17, 2026
13 checks passed
@powerboat9
powerboat9 deleted the llvm-asm-2 branch August 17, 2026 23:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants