You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[AArch64] Add support for MSVC-style mangling for SVE #196170
The latest MSVC release candidate has support for SVE, and with it a set of new SVE mangling patterns. We should mangle like MSVC instead of using the manglings we invented before (in #141887).
Example code:
#include <arm_sve.h>
void f(svint32_t x) {}
Latest MSVC produces the mangled symbol ?f@@YAX$$_CD@Z.
The relevant code is in MicrosoftCXXNameMangler::mangleType; replace the existing code which does #include "clang/Basic/AArch64ACLETypes.def".
(As a followup, we should also add demangling support in llvm/lib/Demangle/MicrosoftDemangle.cpp.)
This issue may be a good introductory issue for people new to working on LLVM. If you would like to work on this issue, your first steps are:
Check that no other contributor is working on this issue. If someone is assigned to the issue or claimed to be working on it, ping the person. After one week without a response, the assignee may be changed.
Leave a comment indicating that you are working on the issue, or just create a pull request after following the steps below. Mention this issue in the description of the pull request.
Fix the issue locally. Be aware that LLVM's AI policy forbids the use of AI tools to fix good first issues since it squanders a learning opportunity. Using LLMs to search and learn is permitted, since the goal is learning.
Run the test suite locally. Remember that the subdirectories under test/ create fine-grained testing targets, so you can e.g. use make check-clang-ast to only run Clang's AST tests.
Details
The latest MSVC release candidate has support for SVE, and with it a set of new SVE mangling patterns. We should mangle like MSVC instead of using the manglings we invented before (in #141887).
Example code:
#include <arm_sve.h>
void f(svint32_t x) {}
Latest MSVC produces the mangled symbol ?f@@<!-- -->YAX$$_CD@<!-- -->Z.
The relevant code is in MicrosoftCXXNameMangler::mangleType; replace the existing code which does #include "clang/Basic/AArch64ACLETypes.def".
(As a followup, we should also add demangling support in llvm/lib/Demangle/MicrosoftDemangle.cpp.)
Details
The latest MSVC release candidate has support for SVE, and with it a set of new SVE mangling patterns. We should mangle like MSVC instead of using the manglings we invented before (in #141887).
Example code:
#include <arm_sve.h>
void f(svint32_t x) {}
Latest MSVC produces the mangled symbol ?f@@<!-- -->YAX$$_CD@<!-- -->Z.
The relevant code is in MicrosoftCXXNameMangler::mangleType; replace the existing code which does #include "clang/Basic/AArch64ACLETypes.def".
(As a followup, we should also add demangling support in llvm/lib/Demangle/MicrosoftDemangle.cpp.)
Details
The latest MSVC release candidate has support for SVE, and with it a set of new SVE mangling patterns. We should mangle like MSVC instead of using the manglings we invented before (in #141887).
Example code:
#include <arm_sve.h>
void f(svint32_t x) {}
Latest MSVC produces the mangled symbol ?f@@<!-- -->YAX$$_CD@<!-- -->Z.
The relevant code is in MicrosoftCXXNameMangler::mangleType; replace the existing code which does #include "clang/Basic/AArch64ACLETypes.def".
(As a followup, we should also add demangling support in llvm/lib/Demangle/MicrosoftDemangle.cpp.)
Activity
edwardnvv57k commentedon May 6, 2026
I'm working on this.
llvmorg-github-actions commentedon May 6, 2026
Hi!
This issue may be a good introductory issue for people new to working on LLVM. If you would like to work on this issue, your first steps are:
test/create fine-grained testing targets, so you can e.g. usemake check-clang-astto only run Clang's AST tests.git clang-format HEAD~1to format your changes.If you have any further questions about this issue, don't hesitate to ask via a comment in the thread below.
llvmorg-github-actions commentedon May 6, 2026
@llvm/issue-subscribers-good-first-issue
Author: Eli Friedman (efriedma-quic)
Details
The latest MSVC release candidate has support for SVE, and with it a set of new SVE mangling patterns. We should mangle like MSVC instead of using the manglings we invented before (in #141887).Example code:
Latest MSVC produces the mangled symbol
?f@@<!-- -->YAX$$_CD@<!-- -->Z.The relevant code is in MicrosoftCXXNameMangler::mangleType; replace the existing code which does
#include "clang/Basic/AArch64ACLETypes.def".(As a followup, we should also add demangling support in llvm/lib/Demangle/MicrosoftDemangle.cpp.)
llvmorg-github-actions commentedon May 6, 2026
@llvm/issue-subscribers-backend-aarch64
Author: Eli Friedman (efriedma-quic)
Details
The latest MSVC release candidate has support for SVE, and with it a set of new SVE mangling patterns. We should mangle like MSVC instead of using the manglings we invented before (in #141887).Example code:
Latest MSVC produces the mangled symbol
?f@@<!-- -->YAX$$_CD@<!-- -->Z.The relevant code is in MicrosoftCXXNameMangler::mangleType; replace the existing code which does
#include "clang/Basic/AArch64ACLETypes.def".(As a followup, we should also add demangling support in llvm/lib/Demangle/MicrosoftDemangle.cpp.)
llvmorg-github-actions commentedon May 6, 2026
@llvm/issue-subscribers-clang-codegen
Author: Eli Friedman (efriedma-quic)
Details
The latest MSVC release candidate has support for SVE, and with it a set of new SVE mangling patterns. We should mangle like MSVC instead of using the manglings we invented before (in #141887).Example code:
Latest MSVC produces the mangled symbol
?f@@<!-- -->YAX$$_CD@<!-- -->Z.The relevant code is in MicrosoftCXXNameMangler::mangleType; replace the existing code which does
#include "clang/Basic/AArch64ACLETypes.def".(As a followup, we should also add demangling support in llvm/lib/Demangle/MicrosoftDemangle.cpp.)
[AArch64] Add support for MSVC-style mangling for SVE (#196738)
[simd] Disable SVE implementation of array search for older ClangCL
deps: V8: cherry-pick 820f3d72a638
deps: V8: cherry-pick 820f3d72a638
deps: V8: cherry-pick 820f3d72a638
deps: V8: cherry-pick 820f3d72a638
deps: V8: cherry-pick 820f3d72a638
deps: V8: cherry-pick 820f3d72a638
deps: V8: cherry-pick 820f3d72a638
deps: V8: cherry-pick 820f3d72a638
deps: V8: cherry-pick 820f3d72a638
deps: V8: cherry-pick 820f3d72a638
deps: V8: cherry-pick 820f3d72a638