-
Notifications
You must be signed in to change notification settings - Fork 13.6k
[compiler-rt][cmake] Test COMPILER_RT_HAS_AARCH64_SME with arm64 #141115
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
Merged
+15
−2
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we document somewhere which compilers are supported to build compiler-rt? If we support non-clang compilers, this test won't work on such compilers. (And if we don't support non-clang compilers, why are we checking this?)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This SME test is to check the clang being used is new enough to support compiling the builtins for SME.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So you're saying the only supported compiler is clang? What versions of clang?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The idea of this test is to check if the clang version is new enough in terms of features that it doesn't barf when given SME2 constructs and the keyword attributes
__arm_streaming_compatible
. It doesn't need to check for a specific clang version.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't need to hardcode versions here, but we need to have some idea, in general, of what compilers we support. Like, are we going to add code to support clang 3.0? Probably not, but have we written that down anywhere?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If I'm understanding your point right, I think the question of what we support for compiler-rt in general is something I don't know. I can only speak for this SME feature test.
If I had to guess: the de-facto compiler we support has always been clang since the runtime was intended to be a companion, a la libgcc. It wasn't intended to always be rev-locked to a particular clang since before the monorepo transition it wasn't coupled at the svn level.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Historically, it's been possible to build compiler-rt with LLVM_ENABLE_PROJECTS, and that just picks the same host compiler you use to build LLVM itself. Which isn't necessarily clang; could be gcc, or msvc. Not sure that's something we're interested in supporting long-term, I guess, but I don't think there's anything currently preventing it. (See #124012 .)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was under the impression that LLVM_ENABLE_PROJECTS wasn't supposed to be used anymore for compiler-rt and it was only a matter of time before support is removed completely. On that basis it seems the expectation is that eventually they become rev-locked. At which point some of these tests will become redundant except for ones check a particular target has been built.
And yes, I know that's a self-incriminating statement. I believe we are trying to move to LLVM_ENABLE_RUNTIMES but software is hard.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The removal from LLVM_ENABLE_PROJECTS doesn't necessarily imply anything about the compiler; even in a "runtimes" build you can point to any compiler you want.
libcxx has a specific policy around this.