Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

llvm_asm!() with indirects broken on LLVM 14 #92794

Closed
durin42 opened this issue Jan 11, 2022 · 2 comments · Fixed by #92816
Closed

llvm_asm!() with indirects broken on LLVM 14 #92794

durin42 opened this issue Jan 11, 2022 · 2 comments · Fixed by #92816
Labels
A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.

Comments

@durin42
Copy link
Contributor

durin42 commented Jan 11, 2022

This broke at LLVM change bec726f - I've spent some time poking at it but it looks like it may require the attention of someone a little more familiar with inline assembly than me. Basically we need to explicitly emit the elementtype(TYPE) attribute for each indirect argument of an inline assembly call. That's mostly easy for outputs, but for inputs I think it's going to take a bit of a refactor to make it work.

@nikic
Copy link
Contributor

nikic commented Jan 12, 2022

@Amanieu To avoid unnecessary work, how far away are we from just deleting llvm_asm, now that asm has been stabilized?

@Amanieu
Copy link
Member

Amanieu commented Jan 12, 2022

llvm_asm! can be useful since it has some features that are not available with plain asm! such as multi-constraints and memory constraints. However I doubt anyone is actually relying on these so I'm happy to go ahead and just remove it.

@nikic nikic added the A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. label Jan 12, 2022
@bors bors closed this as completed in a34c079 Jan 17, 2022
flip1995 pushed a commit to flip1995/rust that referenced this issue Jan 27, 2022
Remove deprecated LLVM-style inline assembly

The `llvm_asm!` was deprecated back in rust-lang#87590 1.56.0, with intention to remove
it once `asm!` was stabilized, which already happened in rust-lang#91728 1.59.0. Now it
is time to remove `llvm_asm!` to avoid continued maintenance cost.

Closes rust-lang#70173.
Closes rust-lang#92794.
Closes rust-lang#87612.
Closes rust-lang#82065.

cc `@rust-lang/wg-inline-asm`

r? `@Amanieu`
bjorn3 pushed a commit to bjorn3/rust that referenced this issue Feb 23, 2022
Remove deprecated LLVM-style inline assembly

The `llvm_asm!` was deprecated back in rust-lang#87590 1.56.0, with intention to remove
it once `asm!` was stabilized, which already happened in rust-lang#91728 1.59.0. Now it
is time to remove `llvm_asm!` to avoid continued maintenance cost.

Closes rust-lang#70173.
Closes rust-lang#92794.
Closes rust-lang#87612.
Closes rust-lang#82065.

cc `@rust-lang/wg-inline-asm`

r? `@Amanieu`
calebcartwright pushed a commit to calebcartwright/rust that referenced this issue Mar 30, 2022
Remove deprecated LLVM-style inline assembly

The `llvm_asm!` was deprecated back in rust-lang#87590 1.56.0, with intention to remove
it once `asm!` was stabilized, which already happened in rust-lang#91728 1.59.0. Now it
is time to remove `llvm_asm!` to avoid continued maintenance cost.

Closes rust-lang#70173.
Closes rust-lang#92794.
Closes rust-lang#87612.
Closes rust-lang#82065.

cc `@rust-lang/wg-inline-asm`

r? `@Amanieu`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants