@@ -11145,7 +11148,24 @@ bool Sema::areMultiversionVariantFunctionsCompatible(
FunctionType::ExtInfo OldTypeInfo = OldType->getExtInfo();
FunctionType::ExtInfo NewTypeInfo = NewType->getExtInfo();
-if (OldTypeInfo.getCC() != NewTypeInfo.getCC())
+const auto *Ol
@@ -3183,6 +3183,25 @@ class ASTContext : public RefCountedBase {
const FunctionDecl *FD,
llvm::function_ref Pred) const;
+ bool areFMVCompatible(const FunctionDecl *FD1,
+const FunctionDecl *FD2) const {
+if (!hasSameType(FD1->getRetur
@@ -11145,7 +11148,22 @@ bool Sema::areMultiversionVariantFunctionsCompatible(
FunctionType::ExtInfo OldTypeInfo = OldType->getExtInfo();
FunctionType::ExtInfo NewTypeInfo = NewType->getExtInfo();
-if (OldTypeInfo.getCC() != NewTypeInfo.getCC())
+const auto *Ol
@@ -0,0 +1,46 @@
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sme
-Waarch64-sme-attributes -fsyntax-only -verify %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sme
-Waarch64-sme-attributes -fsyntax-only -verify=expected-cpp -x c++ %
https://github.com/sdesmalen-arm approved this pull request.
Thanks for addressing the feedback @labrinea, LGTM!
https://github.com/llvm/llvm-project/pull/100181
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mai
https://github.com/sdesmalen-arm updated
https://github.com/llvm/llvm-project/pull/100740
>From 596654157c6e1124d5eac9fd415d957179897b90 Mon Sep 17 00:00:00 2001
From: Sander de Smalen
Date: Fri, 26 Jul 2024 13:24:10 +0100
Subject: [PATCH 1/2] [Clang] Demote always_inline error to warning for
sdesmalen-arm wrote:
> At a glance, this seems like a good use case for a warning + `DefaultError`?
I'd rather not make that change, because in practice it will be unlikely that
inlining will result in changes to runtime behaviour. We'd rather not burden
the users with explicit errors for some
https://github.com/sdesmalen-arm updated
https://github.com/llvm/llvm-project/pull/100740
>From 596654157c6e1124d5eac9fd415d957179897b90 Mon Sep 17 00:00:00 2001
From: Sander de Smalen
Date: Fri, 26 Jul 2024 13:24:10 +0100
Subject: [PATCH 1/2] [Clang] Demote always_inline error to warning for
https://github.com/sdesmalen-arm milestoned
https://github.com/llvm/llvm-project/pull/100740
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sdesmalen-arm closed
https://github.com/llvm/llvm-project/pull/100740
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
sdesmalen-arm wrote:
/cherry-pick 5430f73b501f9fc0a38c3768592f5f31bcbdf2f0
https://github.com/llvm/llvm-project/pull/100740
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sdesmalen-arm created
https://github.com/llvm/llvm-project/pull/100991
Reverts llvm/llvm-project#100740
>From e3e9cde46626ff525442b21963c03675c6bfa368 Mon Sep 17 00:00:00 2001
From: Sander de Smalen
Date: Mon, 29 Jul 2024 10:18:27 +0100
Subject: [PATCH] =?UTF-8?q?Revert=20"[
https://github.com/sdesmalen-arm closed
https://github.com/llvm/llvm-project/pull/100991
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sdesmalen-arm created
https://github.com/llvm/llvm-project/pull/100996
Test `aarch64-sme-inline-streaming-attrs.c` caused some buildbot failures,
because the test was missing a `REQUIRES: aarch64-registered target`. This was
because we've demoted the error to a warning, whic
https://github.com/sdesmalen-arm closed
https://github.com/llvm/llvm-project/pull/100996
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sdesmalen-arm milestoned
https://github.com/llvm/llvm-project/pull/100996
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
sdesmalen-arm wrote:
/cherry-pick 389679d5f9055bffe8bbd25ae41f084a8d08e0f8
https://github.com/llvm/llvm-project/pull/100996
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sdesmalen-arm approved this pull request.
https://github.com/llvm/llvm-project/pull/99446
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sdesmalen-arm closed
https://github.com/llvm/llvm-project/pull/99446
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sdesmalen-arm approved this pull request.
https://github.com/llvm/llvm-project/pull/88380
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sdesmalen-arm milestoned
https://github.com/llvm/llvm-project/pull/105657
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
sdesmalen-arm wrote:
/cherry-pick 2617023923175b0fd2a8cb94ad677c061c01627f
https://github.com/llvm/llvm-project/pull/105657
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Author: Sander de Smalen
Date: 2024-05-02T16:13:37Z
New Revision: 0708500ce0149c501e802b7ab6581770cc7a5334
URL:
https://github.com/llvm/llvm-project/commit/0708500ce0149c501e802b7ab6581770cc7a5334
DIFF:
https://github.com/llvm/llvm-project/commit/0708500ce0149c501e802b7ab6581770cc7a5334.diff
L
Author: Sander de Smalen
Date: 2024-05-07T15:33:24Z
New Revision: 6a6fcbffbb31f83fab7425d43e28eb6aa39dbfe9
URL:
https://github.com/llvm/llvm-project/commit/6a6fcbffbb31f83fab7425d43e28eb6aa39dbfe9
DIFF:
https://github.com/llvm/llvm-project/commit/6a6fcbffbb31f83fab7425d43e28eb6aa39dbfe9.diff
L
https://github.com/sdesmalen-arm created
https://github.com/llvm/llvm-project/pull/91356
Scalable types are only available when:
* The function is compiled with +sve
* The function is compiled with +sme and the function is executed in
Streaming-SVE mode.
>From 1cc17981a612dcb31fba86c5d64c444f2
https://github.com/sdesmalen-arm updated
https://github.com/llvm/llvm-project/pull/91356
>From 9cbff1320d6f47245c97559bf3c614b931e80f06 Mon Sep 17 00:00:00 2001
From: Sander de Smalen
Date: Fri, 3 May 2024 13:07:18 +0100
Subject: [PATCH] [Clang][AArch64] Require SVE or SSVE for scalable types.
@@ -3768,6 +3768,12 @@ def err_conflicting_attributes_arm_state : Error<
"conflicting attributes for state '%0'">;
def err_sme_streaming_cannot_be_multiversioned : Error<
"streaming function cannot be multi-versioned">;
+def err_sme_streaming_mode_change_no_sve : Error<
+
@@ -1552,6 +1553,57 @@ bool AArch64ExpandPseudo::expandMI(MachineBasicBlock
&MBB,
case AArch64::COALESCER_BARRIER_FPR128:
MI.eraseFromParent();
return true;
+ case AArch64::VGSavePseudo:
+ case AArch64::VGRestorePseudo: {
+ MachineFunction &MF = *MBB.getPa
@@ -1552,6 +1553,57 @@ bool AArch64ExpandPseudo::expandMI(MachineBasicBlock
&MBB,
case AArch64::COALESCER_BARRIER_FPR128:
MI.eraseFromParent();
return true;
+ case AArch64::VGSavePseudo:
+ case AArch64::VGRestorePseudo: {
+ MachineFunction &MF = *MBB.getPa
@@ -8287,6 +8289,13 @@ AArch64TargetLowering::LowerCall(CallLoweringInfo &CLI,
SDValue InGlue;
if (RequiresSMChange) {
+
+if (Subtarget->hasSVE()) {
sdesmalen-arm wrote:
I think we can only emit this pseudo when we have asynchronous unwind tables
ena
@@ -1552,6 +1553,57 @@ bool AArch64ExpandPseudo::expandMI(MachineBasicBlock
&MBB,
case AArch64::COALESCER_BARRIER_FPR128:
MI.eraseFromParent();
return true;
+ case AArch64::VGSavePseudo:
+ case AArch64::VGRestorePseudo: {
+ MachineFunction &MF = *MBB.getPa
@@ -1552,6 +1553,57 @@ bool AArch64ExpandPseudo::expandMI(MachineBasicBlock
&MBB,
case AArch64::COALESCER_BARRIER_FPR128:
MI.eraseFromParent();
return true;
+ case AArch64::VGSavePseudo:
+ case AArch64::VGRestorePseudo: {
+ MachineFunction &MF = *MBB.getPa
@@ -8443,9 +8452,16 @@ AArch64TargetLowering::LowerCall(CallLoweringInfo &CLI,
if (RequiresSMChange) {
assert(PStateSM && "Expected a PStateSM to be set");
+
sdesmalen-arm wrote:
nit: unnecessary newline.
https://github.com/llvm/llvm-project/pull/83301
@@ -223,6 +228,12 @@ class AArch64FunctionInfo final : public
MachineFunctionInfo {
Register getPStateSMReg() const { return PStateSMReg; };
void setPStateSMReg(Register Reg) { PStateSMReg = Reg; };
+ int64_t getVGIdx() const { return VGIdx; };
+ void setVGIdx(unsigned
@@ -1552,6 +1553,57 @@ bool AArch64ExpandPseudo::expandMI(MachineBasicBlock
&MBB,
case AArch64::COALESCER_BARRIER_FPR128:
MI.eraseFromParent();
return true;
+ case AArch64::VGSavePseudo:
+ case AArch64::VGRestorePseudo: {
+ MachineFunction &MF = *MBB.getPa
@@ -9,6 +9,12 @@
#include
+#if defined __ARM_FEATURE_SME
+#define MODE_ATTR __arm_streaming
+#else
+#define MODE_ATTR __arm_streaming_compatible
sdesmalen-arm wrote:
I guess not. I initially thought it would give some additional checks that the
SVE instruc
@@ -8982,11 +8982,18 @@ void Sema::CheckVariableDeclarationType(VarDecl *NewVD)
{
const FunctionDecl *FD = cast(CurContext);
llvm::StringMap CallerFeatureMap;
Context.getFunctionFeatureMap(CallerFeatureMap, FD);
-if (!Builtin::evaluateRequiredTargetFeatures(
-
https://github.com/sdesmalen-arm updated
https://github.com/llvm/llvm-project/pull/91356
>From 9cbff1320d6f47245c97559bf3c614b931e80f06 Mon Sep 17 00:00:00 2001
From: Sander de Smalen
Date: Fri, 3 May 2024 13:07:18 +0100
Subject: [PATCH 1/2] [Clang][AArch64] Require SVE or SSVE for scalable typ
https://github.com/sdesmalen-arm created
https://github.com/llvm/llvm-project/pull/92427
The intrinsics are currently defined as:
__aio __attribute__((target("sve")))
svint8_t svreinterpret_s8(svuint8_t op) __arm_streaming_compatible {
return __builtin_sve_reinterpret_s8_u8(op);
}
wh
https://github.com/sdesmalen-arm closed
https://github.com/llvm/llvm-project/pull/91356
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sdesmalen-arm closed
https://github.com/llvm/llvm-project/pull/92427
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Author: Sander de Smalen
Date: 2022-01-20T16:42:08Z
New Revision: 990bab89fff75b9afb98762f6e90eb634afc6d42
URL:
https://github.com/llvm/llvm-project/commit/990bab89fff75b9afb98762f6e90eb634afc6d42
DIFF:
https://github.com/llvm/llvm-project/commit/990bab89fff75b9afb98762f6e90eb634afc6d42.diff
L
Author: Sander de Smalen
Date: 2021-04-02T10:55:22+01:00
New Revision: 0f7bbbc481e20a152c74bc315f8995b62d54c8c0
URL:
https://github.com/llvm/llvm-project/commit/0f7bbbc481e20a152c74bc315f8995b62d54c8c0
DIFF:
https://github.com/llvm/llvm-project/commit/0f7bbbc481e20a152c74bc315f8995b62d54c8c0.di
Author: Sander de Smalen
Date: 2021-04-12T11:16:28+01:00
New Revision: 6bf806b3e2fddf79fa0326df1da341de9da35d08
URL:
https://github.com/llvm/llvm-project/commit/6bf806b3e2fddf79fa0326df1da341de9da35d08
DIFF:
https://github.com/llvm/llvm-project/commit/6bf806b3e2fddf79fa0326df1da341de9da35d08.di
Author: Sander de Smalen
Date: 2021-04-13T10:55:20+01:00
New Revision: fa936b610fd019b73de82f61de83bae553251fdb
URL:
https://github.com/llvm/llvm-project/commit/fa936b610fd019b73de82f61de83bae553251fdb
DIFF:
https://github.com/llvm/llvm-project/commit/fa936b610fd019b73de82f61de83bae553251fdb.di
Author: Sander de Smalen
Date: 2021-04-13T21:12:53+01:00
New Revision: 204aaf879548616df407f662bc03d28b8d08d1fb
URL:
https://github.com/llvm/llvm-project/commit/204aaf879548616df407f662bc03d28b8d08d1fb
DIFF:
https://github.com/llvm/llvm-project/commit/204aaf879548616df407f662bc03d28b8d08d1fb.di
https://github.com/sdesmalen-arm approved this pull request.
Thanks, this looks good to me.
https://github.com/llvm/llvm-project/pull/105657
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-com
https://github.com/sdesmalen-arm created
https://github.com/llvm/llvm-project/pull/96482
One reason to want to split this up is to simplify the code added in #93802,
where it checks the SME streaming-mode requirements for a builtin by checking
for the absence of SVE. If the target guards are s
https://github.com/sdesmalen-arm closed
https://github.com/llvm/llvm-project/pull/96482
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
sdesmalen-arm wrote:
Hi @CarolineConcatto could you give a quick status update on this PR? Is there
any reason you've held off merging it?
https://github.com/llvm/llvm-project/pull/88499
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://
@@ -4652,18 +4652,35 @@ llvm::Constant *CodeGenModule::GetOrCreateLLVMFunction(
// If there are two attempts to define the same mangled name, issue an
// error.
-if (IsForDefinition && !Entry->isDeclaration()) {
- GlobalDecl OtherGD;
- // Check that GD is
@@ -0,0 +1,30 @@
+// REQUIRES: aarch64-registered-target
+
+// RUN: %clang_cc1 -triple aarch64 -target-feature +sme -target-feature +sme2
-emit-llvm -o - %s -verify -DTEST1
+// RUN: %clang_cc1 -triple aarch64 -target-feature +sme -target-feature +sme2
-emit-llvm -o - %s -verify
@@ -0,0 +1,30 @@
+// REQUIRES: aarch64-registered-target
+
+// RUN: %clang_cc1 -triple aarch64 -target-feature +sme -target-feature +sme2
-emit-llvm -o - %s -verify -DTEST1
+// RUN: %clang_cc1 -triple aarch64 -target-feature +sme -target-feature +sme2
-emit-llvm -o - %s -verify
@@ -4652,18 +4652,35 @@ llvm::Constant *CodeGenModule::GetOrCreateLLVMFunction(
// If there are two attempts to define the same mangled name, issue an
// error.
-if (IsForDefinition && !Entry->isDeclaration()) {
- GlobalDecl OtherGD;
- // Check that GD is
@@ -0,0 +1,31 @@
+// REQUIRES: aarch64-registered-target
+
+// RUN: %clang_cc1 -triple aarch64 -emit-llvm -o - %s -verify -DTEST1
+// RUN: %clang_cc1 -triple aarch64 -target-feature +sme -target-feature +sme2
-emit-llvm -o - %s -verify -DTEST2
sdesmalen-arm wrote
https://github.com/sdesmalen-arm closed
https://github.com/llvm/llvm-project/pull/109420
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Author: Sander de Smalen
Date: 2024-11-11T08:53:36Z
New Revision: 34f8fbd269fc0d2d7d527d3661faea3eeb4587ac
URL:
https://github.com/llvm/llvm-project/commit/34f8fbd269fc0d2d7d527d3661faea3eeb4587ac
DIFF:
https://github.com/llvm/llvm-project/commit/34f8fbd269fc0d2d7d527d3661faea3eeb4587ac.diff
L
https://github.com/sdesmalen-arm updated
https://github.com/llvm/llvm-project/pull/109420
>From af4cd0b3643e682fcb34042d209df03037743eb0 Mon Sep 17 00:00:00 2001
From: Sander de Smalen
Date: Fri, 20 Sep 2024 14:16:23 +0100
Subject: [PATCH 1/2] [Clang][AArch64] Fix checkArmStreamingBuiltin for
@@ -1802,9 +1854,29 @@ void SVEEmitter::createStreamingAttrs(raw_ostream &OS,
ACLEKind Kind) {
if (Def->isFlagSet(IsStreamingFlag))
StreamingMap["ArmStreaming"].insert(Def->getMangledName());
-else if (Def->isFlagSet(VerifyRuntimeMode))
+else if (Def->isFlag
https://github.com/sdesmalen-arm approved this pull request.
https://github.com/llvm/llvm-project/pull/109423
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sdesmalen-arm created
https://github.com/llvm/llvm-project/pull/109420
The implementation made the assumption that any feature starting with "sve"
meant that this was an SVE feature. This is not the case for "sve-b16b16", as
this is a feature that applies to both SVE and SME
@@ -3535,6 +3536,74 @@ void CXXNameMangler::mangleExtFunctionInfo(const
FunctionType *T) {
// FIXME: noreturn
}
+enum SMEState {
+ Normal = 0,
+ SM_Enabled = 1 << 0,
+ SM_Compatible = 1 << 1,
+ ZA_Agnostic = 1 << 2,
+ ZA_Shift = 3,
+ ZT0_Shift = 6,
sd
@@ -3535,6 +3536,74 @@ void CXXNameMangler::mangleExtFunctionInfo(const
FunctionType *T) {
// FIXME: noreturn
}
+enum SMEState {
+ Normal = 0,
+ SM_Enabled = 1 << 0,
+ SM_Compatible = 1 << 1,
+ ZA_Agnostic = 1 << 2,
+ ZA_Shift = 3,
+ ZT0_Shift = 6,
+ None = 0b000,
+
@@ -3535,6 +3536,74 @@ void CXXNameMangler::mangleExtFunctionInfo(const
FunctionType *T) {
// FIXME: noreturn
}
+enum SMEState {
+ Normal = 0,
sdesmalen-arm wrote:
nit: I'd remove `Normal` and just keep these values for bits that would be set.
https://gi
@@ -3535,6 +3536,74 @@ void CXXNameMangler::mangleExtFunctionInfo(const
FunctionType *T) {
// FIXME: noreturn
}
+enum SMEState {
+ Normal = 0,
+ SM_Enabled = 1 << 0,
+ SM_Compatible = 1 << 1,
+ ZA_Agnostic = 1 << 2,
+ ZA_Shift = 3,
+ ZT0_Shift = 6,
+ None = 0b000,
+
@@ -3535,6 +3536,74 @@ void CXXNameMangler::mangleExtFunctionInfo(const
FunctionType *T) {
// FIXME: noreturn
}
+enum SMEState {
sdesmalen-arm wrote:
Please make this an `enum class` instead. Also, I'd recommend renaming this
class so that it's clear that
@@ -3535,6 +3536,74 @@ void CXXNameMangler::mangleExtFunctionInfo(const
FunctionType *T) {
// FIXME: noreturn
}
+enum SMEState {
+ Normal = 0,
+ SM_Enabled = 1 << 0,
+ SM_Compatible = 1 << 1,
+ ZA_Agnostic = 1 << 2,
+ ZA_Shift = 3,
+ ZT0_Shift = 6,
+ None = 0b000,
+
@@ -3535,6 +3536,74 @@ void CXXNameMangler::mangleExtFunctionInfo(const
FunctionType *T) {
// FIXME: noreturn
}
+enum SMEState {
+ Normal = 0,
+ SM_Enabled = 1 << 0,
+ SM_Compatible = 1 << 1,
+ ZA_Agnostic = 1 << 2,
+ ZA_Shift = 3,
+ ZT0_Shift = 6,
+ None = 0b000,
+
@@ -3535,6 +3536,74 @@ void CXXNameMangler::mangleExtFunctionInfo(const
FunctionType *T) {
// FIXME: noreturn
}
+enum SMEState {
+ Normal = 0,
+ SM_Enabled = 1 << 0,
+ SM_Compatible = 1 << 1,
+ ZA_Agnostic = 1 << 2,
+ ZA_Shift = 3,
+ ZT0_Shift = 6,
+ None = 0b000,
+
@@ -3535,6 +3536,74 @@ void CXXNameMangler::mangleExtFunctionInfo(const
FunctionType *T) {
// FIXME: noreturn
}
+enum SMEState {
+ Normal = 0,
+ SM_Enabled = 1 << 0,
+ SM_Compatible = 1 << 1,
+ ZA_Agnostic = 1 << 2,
+ ZA_Shift = 3,
+ ZT0_Shift = 6,
+ None = 0b000,
+
@@ -3535,6 +3536,74 @@ void CXXNameMangler::mangleExtFunctionInfo(const
FunctionType *T) {
// FIXME: noreturn
}
+enum SMEState {
+ Normal = 0,
+ SM_Enabled = 1 << 0,
+ SM_Compatible = 1 << 1,
+ ZA_Agnostic = 1 << 2,
+ ZA_Shift = 3,
+ ZT0_Shift = 6,
+ None = 0b000,
+
@@ -3532,6 +3533,72 @@ void CXXNameMangler::mangleExtFunctionInfo(const
FunctionType *T) {
// FIXME: noreturn
}
+enum class AAPCSBitmaskSME : unsigned {
+ ArmStreamingBit = 1 << 0,
+ ArmStreamingCompatibleBit = 1 << 1,
+ ArmAgnosticSMEZAStateBit = 1 << 2,
+ ZA_Shift = 3
https://github.com/sdesmalen-arm approved this pull request.
https://github.com/llvm/llvm-project/pull/114209
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -423,131 +434,143 @@ const std::array
SVEEmitter::Reinterprets =
// Type implementation
//===--===//
-std::string SVEType::builtin_str() const {
- std::string S;
- if (isVoid())
+std::string SVEType::bu
@@ -431,133 +434,130 @@ const std::array
SVEEmitter::Reinterprets =
// Type implementation
//===--===//
-std::string SVEType::builtin_str() const {
- std::string OutStr;
-
- if (isScalarPredicate())
-r
@@ -50,20 +50,30 @@ using TypeSpec = std::string;
namespace {
class SVEType {
- bool Float, Signed, Immediate, Void, Constant, Pointer, BFloat, MFloat;
- bool DefaultType, IsScalable, Predicate, PredicatePattern, PrefetchOp,
- Svcount;
+
+ enum TypeKind {
+Void,
+
https://github.com/sdesmalen-arm edited
https://github.com/llvm/llvm-project/pull/117717
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sdesmalen-arm commented:
One minor comment, but otherwise looks good!
https://github.com/llvm/llvm-project/pull/117717
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commit
@@ -3535,6 +3536,70 @@ void CXXNameMangler::mangleExtFunctionInfo(const
FunctionType *T) {
// FIXME: noreturn
}
+enum class AAPCSBitmaskSME : unsigned {
+ ArmStreamingBit = 1 << 0,
+ ArmStreamingCompatibleBit = 1 << 1,
+ ArmAgnosticSMEZAStateBit = 1 << 2,
+ ZA_Shift = 3
@@ -423,131 +434,143 @@ const std::array
SVEEmitter::Reinterprets =
// Type implementation
//===--===//
-std::string SVEType::builtin_str() const {
- std::string S;
- if (isVoid())
+std::string SVEType::bu
@@ -431,133 +434,130 @@ const std::array
SVEEmitter::Reinterprets =
// Type implementation
//===--===//
-std::string SVEType::builtin_str() const {
- std::string OutStr;
-
- if (isScalarPredicate())
-r
sdesmalen-arm wrote:
> Do we really need to do this in the frontend? The inliner itself should be
> doing safety checks.
The inliner avoids any safety checks when `alwaysinline` is specified, and this
can't easily be changed (I previously raised this on
[Discourse](https://discourse.llvm.org/
https://github.com/sdesmalen-arm approved this pull request.
https://github.com/llvm/llvm-project/pull/116391
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -424,72 +432,87 @@ const std::array
SVEEmitter::Reinterprets =
//===--===//
std::string SVEType::builtin_str() const {
- std::string S;
- if (isVoid())
-return "v";
+ std::string OutStr;
if (i
@@ -424,72 +432,87 @@ const std::array
SVEEmitter::Reinterprets =
//===--===//
std::string SVEType::builtin_str() const {
- std::string S;
- if (isVoid())
-return "v";
+ std::string OutStr;
if (i
https://github.com/sdesmalen-arm edited
https://github.com/llvm/llvm-project/pull/117717
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sdesmalen-arm commented:
Thanks for cleaning this up, this part was always quite messy!
https://github.com/llvm/llvm-project/pull/117717
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/l
@@ -570,27 +579,35 @@ void SVEType::applyTypespec(StringRef TS) {
for (char I : TS) {
switch (I) {
case 'Q':
+ assert(Kind == Invalid && "Invalid use of modifer!");
Kind = Svcount;
break;
case 'P':
+ assert(Kind == Invalid && "Invalid use
@@ -570,27 +579,35 @@ void SVEType::applyTypespec(StringRef TS) {
for (char I : TS) {
switch (I) {
case 'Q':
+ assert(Kind == Invalid && "Invalid use of modifer!");
Kind = Svcount;
break;
case 'P':
+ assert(Kind == Invalid && "Invalid use
https://github.com/sdesmalen-arm approved this pull request.
LGTM, thanks for fixing!
https://github.com/llvm/llvm-project/pull/118109
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -50,20 +50,30 @@ using TypeSpec = std::string;
namespace {
class SVEType {
- bool Float, Signed, Immediate, Void, Constant, Pointer, BFloat, MFloat;
- bool DefaultType, IsScalable, Predicate, PredicatePattern, PrefetchOp,
- Svcount;
+
+ enum TypeKind {
+Void,
+
@@ -570,27 +579,35 @@ void SVEType::applyTypespec(StringRef TS) {
for (char I : TS) {
switch (I) {
case 'Q':
+ assert(Kind == Invalid && "Invalid use of modifer!");
Kind = Svcount;
break;
case 'P':
+ assert(Kind == Invalid && "Invalid use
https://github.com/sdesmalen-arm approved this pull request.
Thanks, LGTM!
https://github.com/llvm/llvm-project/pull/117717
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -3536,35 +3536,64 @@ void CXXNameMangler::mangleExtFunctionInfo(const
FunctionType *T) {
// FIXME: noreturn
}
-bool hasSharedState(unsigned SMEAttrs) {
+unsigned getZAState(unsigned SMEAttrs) {
sdesmalen-arm wrote:
nit: use the word `encode` instead of
@@ -3536,35 +3536,64 @@ void CXXNameMangler::mangleExtFunctionInfo(const
FunctionType *T) {
// FIXME: noreturn
}
-bool hasSharedState(unsigned SMEAttrs) {
+unsigned getZAState(unsigned SMEAttrs) {
switch (SMEAttrs) {
case FunctionType::ARM_In:
+return 1;
case F
@@ -3536,35 +3536,64 @@ void CXXNameMangler::mangleExtFunctionInfo(const
FunctionType *T) {
// FIXME: noreturn
}
-bool hasSharedState(unsigned SMEAttrs) {
+unsigned getZAState(unsigned SMEAttrs) {
switch (SMEAttrs) {
case FunctionType::ARM_In:
+return 1;
case F
@@ -3536,35 +3536,64 @@ void CXXNameMangler::mangleExtFunctionInfo(const
FunctionType *T) {
// FIXME: noreturn
}
-bool hasSharedState(unsigned SMEAttrs) {
+unsigned getZAState(unsigned SMEAttrs) {
switch (SMEAttrs) {
case FunctionType::ARM_In:
+return 1;
case F
@@ -1143,30 +1146,63 @@ void AArch64TargetCodeGenInfo::checkFunctionABI(
}
}
-void AArch64TargetCodeGenInfo::checkFunctionCallABIStreaming(
-CodeGenModule &CGM, SourceLocation CallLoc, const FunctionDecl *Caller,
-const FunctionDecl *Callee) const {
- if (!Caller ||
@@ -1143,30 +1146,63 @@ void AArch64TargetCodeGenInfo::checkFunctionABI(
}
}
-void AArch64TargetCodeGenInfo::checkFunctionCallABIStreaming(
-CodeGenModule &CGM, SourceLocation CallLoc, const FunctionDecl *Caller,
-const FunctionDecl *Callee) const {
- if (!Caller ||
@@ -1143,30 +1146,63 @@ void AArch64TargetCodeGenInfo::checkFunctionABI(
}
}
-void AArch64TargetCodeGenInfo::checkFunctionCallABIStreaming(
-CodeGenModule &CGM, SourceLocation CallLoc, const FunctionDecl *Caller,
-const FunctionDecl *Callee) const {
- if (!Caller ||
501 - 600 of 667 matches
Mail list logo