-
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
Conversation
architecture only. Apple configures CMake only once for compiler-rt, even when building for multiple architectures. As a result, we need to explicitly test for arm64 specific attributes by building for that architecture rdar://149068965
" | ||
void foo(void) __arm_streaming_compatible { | ||
asm(\".arch armv9-a+sme2\\n\" | ||
\"smstart\\n\" | ||
\"ldr zt0, [sp]\"); | ||
} | ||
") | ||
" "-target aarch64-linux-gnu") |
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 .)
LLVM Buildbot has detected a new failure on builder Full details are available at: https://lab.llvm.org/buildbot/#/builders/64/builds/3749 Here is the relevant piece of the build log for the reference
|
…m#141115) architecture only. Apple configures CMake only once for compiler-rt, even when building for multiple architectures. As a result, we need to explicitly test for arm64 specific attributes by building for that architecture
llvm#141280) …m64 (llvm#141115)" This reverts commit a2ce564.
architecture only.
Apple configures CMake only once for compiler-rt, even when building for multiple architectures. As a result, we need to explicitly test for arm64 specific attributes by building for that architecture