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

Integrated arm assembler doesn't understand -mimplicit-it=always #20836

Closed
nico opened this issue Jul 26, 2014 · 11 comments
Closed

Integrated arm assembler doesn't understand -mimplicit-it=always #20836

nico opened this issue Jul 26, 2014 · 11 comments
Labels
backend:ARM bugzilla Issues migrated from bugzilla duplicate Resolved as duplicate

Comments

@nico
Copy link
Contributor

nico commented Jul 26, 2014

Bugzilla Link 20462
Resolution DUPLICATE
Resolved on Aug 21, 2014 09:20
Version trunk
OS All
CC @rengolin

Extended Description

$ clang -target arm-linux-androideabi -Wa,-mimplicit-it=always clang-3.5: error: unsupported argument '-mimplicit-it=always' to option 'Wa,' Documented here: https://sourceware.org/binutils/docs/as/ARM-Options.html

@rengolin
Copy link
Member

rengolin commented Aug 5, 2014

Implicit IT block checking is not supported by the integrated assembler and it's a GNU extension.

I guess we could at least parse "-mimplicit-it=always", since that's what we do anyway, and warn that any other value will be ignored and defaulted to "always", at least until/if we implement this feature.

@nico
Copy link
Contributor Author

nico commented Aug 8, 2014

Sounds good. Do you want to prepare a patch for that? :-)

@rengolin
Copy link
Member

rengolin commented Aug 8, 2014

Yeah, I can do that.

@rengolin
Copy link
Member

rengolin commented Aug 9, 2014

So, it seems I was wrong. Like GCC, LLVM defaults to -mimplicit-it=arm.

To disable the check, we'd have to implicitly add the IT instruction, which is not trivial but can be done. What's the extent of your needs for the implicit IT to be there? Is this used in too many assembly files to be needed overall, or is it just an isolated case?

@nico
Copy link
Contributor Author

nico commented Aug 10, 2014

@rengolin
Copy link
Member

Ok I'll have a go at adding the IT instructions before Thumb conditionals, but that could take a while. If you could have a look at the copypasta issues, we should be able to trim the issues as much as possible until the feature is added.

@nico
Copy link
Contributor Author

nico commented Aug 11, 2014

(I suppose a good first step would be to accept -mimplicit-it=arm)

@nico
Copy link
Contributor Author

nico commented Aug 12, 2014

I've removed all uses of -mimplicit-it= from the chromium build. We'll see if someone comes shouting at me, but at the moment it looks like this isn't blocking issue 20422.

@rengolin
Copy link
Member

Hi Nico,

I have a patch for imlicit-it=arm, but I wanted to have some progress on the IT block detection before I put myself on the line. Do you have the =arm case in Chromium?

If you have removed all implicit-it uses and it still compiled, it means that there weren't any Thumb conditionals outside of an IT block, which kind of make sense, since the default inline asm is ARM. But it also may mean that you haven't compiled with -mthumb or something similar, which could break.

Lets keep this open for a while more, just to make sure we're not rushing on our decision.

@rengolin
Copy link
Member

Hi Nico,

Since I haven't heard back from you, I'm assuming this is really not blocking Chromium builds, so this goes from a bug to an enhancement. Let me know if that's ok.

cheers,
--renato

@rengolin
Copy link
Member

*** This bug has been marked as a duplicate of bug #20713 ***

@llvmbot llvmbot transferred this issue from llvm/llvm-bugzilla-archive Dec 9, 2021
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend:ARM bugzilla Issues migrated from bugzilla duplicate Resolved as duplicate
Projects
None yet
Development

No branches or pull requests

2 participants