[clang] [compiler-rt] [llvm] [FMV][AArch64] Unify features ssbs and ssbs2. (PR #110297)

2024-10-04 Thread Alexandros Lamprineas via cfe-commits
labrinea wrote: Ping https://github.com/llvm/llvm-project/pull/110297 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [compiler-rt] [llvm] [FMV][AArch64] Unify features ssbs and ssbs2. (PR #110297)

2024-10-03 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea updated https://github.com/llvm/llvm-project/pull/110297 >From 82047dc021979fe58001b15c740649c3d44dd23b Mon Sep 17 00:00:00 2001 From: Alexandros Lamprineas Date: Fri, 27 Sep 2024 16:37:26 +0100 Subject: [PATCH] [FMV][AArch64] Unify features ssbs and ssbs2. Accordin

[clang] [compiler-rt] [llvm] [FMV][AArch64] Unify features ssbs and ssbs2. (PR #110297)

2024-10-02 Thread Alexandros Lamprineas via cfe-commits
@@ -1125,31 +1125,32 @@ int caller(void) { return used_def_without_default_decl() + used_decl_without_de // CHECK: attributes #[[ATTR10]] = { noinline nounwind optnone "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+fp-armv8,+ls64,+neon" } // C

[clang] [llvm] [AArch64] Split FeatureAES to FEAT_AES and FEAT_PMULL. (PR #110816)

2024-10-02 Thread Alexandros Lamprineas via cfe-commits
@@ -88,9 +88,9 @@ def : FMVExtension<"sve-bf16", "FEAT_SVE_BF16", "+sve,+bf16,+fullfp16,+fp-armv8, def : FMVExtension<"sve-ebf16", "FEAT_SVE_EBF16", "+sve,+bf16,+fullfp16,+fp-armv8,+neon", 330>; def : FMVExtension<"sve-i8mm", "FEAT_SVE_I8MM", "+sve,+i8mm,+fullfp16,+fp-armv8,+

[clang] [llvm] [AArch64] Split FeatureAES to FEAT_AES and FEAT_PMULL. (PR #110816)

2024-10-02 Thread Alexandros Lamprineas via cfe-commits
@@ -1117,39 +1117,41 @@ int caller(void) { return used_def_without_default_decl() + used_decl_without_de // CHECK: attributes #[[ATTR2]] = { noinline nounwind optnone "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+fp-armv8,+lse,+neon,+sha2" }

[clang] [llvm] [AArch64] Split FeatureAES to FEAT_AES and FEAT_PMULL. (PR #110816)

2024-10-02 Thread Alexandros Lamprineas via cfe-commits
labrinea wrote: Adding the GCC folks @andrewcarlotti and @Wilco1 for visibility. https://github.com/llvm/llvm-project/pull/110816 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [compiler-rt] [llvm] [FMV][AArch64] Unify features ssbs and ssbs2. (PR #110297)

2024-09-30 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea updated https://github.com/llvm/llvm-project/pull/110297 >From 82047dc021979fe58001b15c740649c3d44dd23b Mon Sep 17 00:00:00 2001 From: Alexandros Lamprineas Date: Fri, 27 Sep 2024 16:37:26 +0100 Subject: [PATCH] [FMV][AArch64] Unify features ssbs and ssbs2. Accordin

[clang] [compiler-rt] [llvm] [FMV][AArch64] Unify features ssbs and ssbs2. (PR #110297)

2024-09-27 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea created https://github.com/llvm/llvm-project/pull/110297 According to https://developer.arm.com/documentation/102105/latest Arm Architecture Reference Manual for A-profile architecture: Known issues 2.206 D22789 In section C5.2.25 "SSBS, Speculative Store Bypass Saf

[clang] [compiler-rt] [llvm] [FMV][AArch64] Remove feature sha1 from FMV. (PR #108383)

2024-09-27 Thread Alexandros Lamprineas via cfe-commits
labrinea wrote: Fix here -> https://github.com/llvm/llvm-project/pull/110291 https://github.com/llvm/llvm-project/pull/108383 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [AArch64] Split FeatureLS64 to LS64_ACCDATA and LS64_V. (PR #101712)

2024-09-27 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea closed https://github.com/llvm/llvm-project/pull/101712 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [compiler-rt] [llvm] [FMV][AArch64] Remove feature sha1 from FMV. (PR #108383)

2024-09-27 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea closed https://github.com/llvm/llvm-project/pull/108383 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [compiler-rt] [llvm] [AArch64] Split FeatureMTE to FEAT_MTE and FEAT_MTE2. (PR #109299)

2024-09-26 Thread Alexandros Lamprineas via cfe-commits
labrinea wrote: > I don't quite get the code, but it seems that +mte or +mte2 may be emitted in > disassembly and/or supported by the assembler? They are supported in assembler for the sole purpose of providing more informative error messages. https://github.com/llvm/llvm-project/pull/109299

[clang] [compiler-rt] [llvm] [AArch64] Split FeatureMTE to FEAT_MTE and FEAT_MTE2. (PR #109299)

2024-09-25 Thread Alexandros Lamprineas via cfe-commits
labrinea wrote: > From the patch it is clear all CPUs that implement MTE only support MTE2 - > and it seems unlikely this will change. Not quite true. I didn't change those CPU entries to keep the behavior NFC, which may have been a mistake actually. The reference manual suggests that Neovers

[clang] [compiler-rt] [llvm] [FMV][AArch64] Remove feature sha1 from FMV. (PR #108383)

2024-09-23 Thread Alexandros Lamprineas via cfe-commits
labrinea wrote: ping https://github.com/llvm/llvm-project/pull/108383 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [compiler-rt] [llvm] [FMV][AArch64] Unify ls64, ls64_v and ls64_accdata. (PR #108024)

2024-09-20 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea closed https://github.com/llvm/llvm-project/pull/108024 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [compiler-rt] [llvm] [FMV][AArch64] Unify ls64, ls64_v and ls64_accdata. (PR #108024)

2024-09-20 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea updated https://github.com/llvm/llvm-project/pull/108024 >From b6abb4f0fcf50d7498a6f0d0ef8b75808c8b1eb1 Mon Sep 17 00:00:00 2001 From: Alexandros Lamprineas Date: Tue, 10 Sep 2024 14:02:17 +0100 Subject: [PATCH 1/2] [FMV][AArch64] Unify ls64, ls64_v and ls64_accdata.

[clang] [compiler-rt] [llvm] [FMV][AArch64] Unify ls64, ls64_v and ls64_accdata. (PR #108024)

2024-09-20 Thread Alexandros Lamprineas via cfe-commits
labrinea wrote: Just letting you know that I have reopened https://github.com/llvm/llvm-project/pull/101712 as a draft just to demonstrate that backwards compatibility can be preserved if we split the features (previously I thought it wasn't possible, but I found a way). However I couldn't co

[clang] [compiler-rt] [llvm] [AArch64] Split FeatureMTE to FEAT_MTE and FEAT_MTE2. (PR #109299)

2024-09-19 Thread Alexandros Lamprineas via cfe-commits
labrinea wrote: Adding the GCC folks @andrewcarlotti and @Wilco1 for visibility. https://github.com/llvm/llvm-project/pull/109299 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [compiler-rt] [llvm] [AArch64] Split FeatureMTE to FEAT_MTE and FEAT_MTE2. (PR #109299)

2024-09-19 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea created https://github.com/llvm/llvm-project/pull/109299 These extensions depend on each other as follows: mte -> mte2 Currently in LLVM FeatureMTE models both FEAT_MTE and FEAT_MTE2 lumped together. However the architecture does not mandate that both need to be im

[clang] [compiler-rt] [llvm] [FMV][AArch64] Unify ls64, ls64_v and ls64_accdata. (PR #108024)

2024-09-19 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea updated https://github.com/llvm/llvm-project/pull/108024 >From b6abb4f0fcf50d7498a6f0d0ef8b75808c8b1eb1 Mon Sep 17 00:00:00 2001 From: Alexandros Lamprineas Date: Tue, 10 Sep 2024 14:02:17 +0100 Subject: [PATCH 1/2] [FMV][AArch64] Unify ls64, ls64_v and ls64_accdata.

[clang] [compiler-rt] [llvm] [FMV][AArch64] Remove feature sha1 from FMV. (PR #108383)

2024-09-19 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea updated https://github.com/llvm/llvm-project/pull/108383 >From 50820f4f3ded438162a33eabca84c5077fd2a5aa Mon Sep 17 00:00:00 2001 From: Alexandros Lamprineas Date: Thu, 12 Sep 2024 13:55:24 +0100 Subject: [PATCH] [FMV][AArch64] Remove feature sha1 from FMV. Sha1 has

[clang] [compiler-rt] [llvm] [FMV][AArch64] Unify ls64, ls64_v and ls64_accdata. (PR #108024)

2024-09-19 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea edited https://github.com/llvm/llvm-project/pull/108024 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [compiler-rt] [llvm] [FMV][AArch64] Unify ls64, ls64_v and ls64_accdata. (PR #108024)

2024-09-19 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea updated https://github.com/llvm/llvm-project/pull/108024 >From b6abb4f0fcf50d7498a6f0d0ef8b75808c8b1eb1 Mon Sep 17 00:00:00 2001 From: Alexandros Lamprineas Date: Tue, 10 Sep 2024 14:02:17 +0100 Subject: [PATCH 1/2] [FMV][AArch64] Unify ls64, ls64_v and ls64_accdata.

[clang] [compiler-rt] [llvm] [FMV][AArch64] Unify ls64, ls64_v and ls64_accdata. (PR #108024)

2024-09-19 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea updated https://github.com/llvm/llvm-project/pull/108024 >From b6abb4f0fcf50d7498a6f0d0ef8b75808c8b1eb1 Mon Sep 17 00:00:00 2001 From: Alexandros Lamprineas Date: Tue, 10 Sep 2024 14:02:17 +0100 Subject: [PATCH] [FMV][AArch64] Unify ls64, ls64_v and ls64_accdata. Or

[clang] [llvm] [AArch64] Split FeatureLS64 to LS64_ACCDATA and LS64_V. (PR #101712)

2024-09-18 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea updated https://github.com/llvm/llvm-project/pull/101712 >From 2fe8ef63846989952a1c72b83114aabe6f36637a Mon Sep 17 00:00:00 2001 From: Alexandros Lamprineas Date: Fri, 2 Aug 2024 17:32:23 +0100 Subject: [PATCH 1/2] [AArch64] Split FeatureLS64 to LS64_ACCDATA and LS64

[clang] [llvm] [AArch64] Split FeatureLS64 to LS64_ACCDATA and LS64_V. (PR #101712)

2024-09-18 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea updated https://github.com/llvm/llvm-project/pull/101712 >From 2fe8ef63846989952a1c72b83114aabe6f36637a Mon Sep 17 00:00:00 2001 From: Alexandros Lamprineas Date: Fri, 2 Aug 2024 17:32:23 +0100 Subject: [PATCH] [AArch64] Split FeatureLS64 to LS64_ACCDATA and LS64_V.

[clang] [llvm] [AArch64] Split FeatureLS64 to LS64_ACCDATA and LS64_V. (PR #101712)

2024-09-18 Thread Alexandros Lamprineas via cfe-commits
@@ -3682,6 +3682,8 @@ static const struct Extension { {"sve2-bitperm", {AArch64::FeatureSVE2BitPerm}}, {"sve2p1", {AArch64::FeatureSVE2p1}}, {"ls64", {AArch64::FeatureLS64}}, +{"ls64_v", {AArch64::FeatureLS64_V}}, +{"ls64_accdata", {AArch64::FeatureLS64_ACCD

[clang] [llvm] [AArch64] Split FeatureLS64 to LS64_ACCDATA and LS64_V. (PR #101712)

2024-09-18 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea converted_to_draft https://github.com/llvm/llvm-project/pull/101712 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [AArch64] Split FeatureLS64 to LS64_ACCDATA and LS64_V. (PR #101712)

2024-09-18 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea updated https://github.com/llvm/llvm-project/pull/101712 >From 2fe8ef63846989952a1c72b83114aabe6f36637a Mon Sep 17 00:00:00 2001 From: Alexandros Lamprineas Date: Fri, 2 Aug 2024 17:32:23 +0100 Subject: [PATCH] [AArch64] Split FeatureLS64 to LS64_ACCDATA and LS64_V.

[clang] [llvm] [AArch64] Split FeatureLS64 to LS64_ACCDATA and LS64_V. (PR #101712)

2024-09-18 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea reopened https://github.com/llvm/llvm-project/pull/101712 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [compiler-rt] [llvm] [FMV][AArch64] Unify ls64, ls64_v and ls64_accdata. (PR #108024)

2024-09-17 Thread Alexandros Lamprineas via cfe-commits
labrinea wrote: This may sound like a bad idea in terms of future maintenance, but how about we guarded the enum entries I am removing with `#if __FUNCTION_MULTI_VERSIONING_SUPPORT_LEVEL < __ARM_ACLE_VERSION(2024, 3, 0)` ? https://github.com/llvm/llvm-project/pull/108024 __

[clang] [AArch64] Add missing ACLE predefined macros and update __ARM_ACLE. (PR #108857)

2024-09-17 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea closed https://github.com/llvm/llvm-project/pull/108857 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [AArch64] Add missing ACLE predefined macros and update __ARM_ACLE. (PR #108857)

2024-09-16 Thread Alexandros Lamprineas via cfe-commits
labrinea wrote: Thanks for reviewing! https://github.com/llvm/llvm-project/pull/108857 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [AArch64] Add missing ACLE predefined macros and update __ARM_ACLE. (PR #108857)

2024-09-16 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea updated https://github.com/llvm/llvm-project/pull/108857 >From cc3f72918aadab7df7397c25de280e713d1257f2 Mon Sep 17 00:00:00 2001 From: Alexandros Lamprineas Date: Mon, 16 Sep 2024 17:39:07 +0100 Subject: [PATCH 1/2] [AArch64] Add missing ACLE predefined macros and up

[clang] [AArch64] Add missing ACLE predefined macros and update __ARM_ACLE. (PR #108857)

2024-09-16 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea created https://github.com/llvm/llvm-project/pull/108857 Adds __ARM_ACLE_VERSION and __FUNCTION_MULTI_VERSIONING_SUPPORT_LEVEL as defined here https://github.com/ARM-software/acle/pull/301 and here https://github.com/ARM-software/acle/pull/302. Also bumps __ARM_ACL

[clang] [compiler-rt] [llvm] [FMV][AArch64] Unify ls64, ls64_v and ls64_accdata. (PR #108024)

2024-09-13 Thread Alexandros Lamprineas via cfe-commits
@@ -73,8 +73,6 @@ enum CPUFeatures { FEAT_SSBS, FEAT_SSBS2, FEAT_BTI, - FEAT_LS64, - FEAT_LS64_V, labrinea wrote: Thanks for flagging this up. I am puzzled though since I was under the impression that FMV is still not production ready. When did the en

[clang] [compiler-rt] [llvm] [FMV][AArch64] Remove feature sha1 from FMV. (PR #108383)

2024-09-13 Thread Alexandros Lamprineas via cfe-commits
@@ -33,7 +33,6 @@ enum CPUFeatures { FEAT_FP, FEAT_SIMD, FEAT_CRC, - FEAT_SHA1, labrinea wrote: It was raised on another pr, so perhaps it is. https://github.com/llvm/llvm-project/pull/108383 ___ cfe-commits

[clang] [compiler-rt] [llvm] [FMV][AArch64] Remove feature sha1 from FMV. (PR #108383)

2024-09-13 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea edited https://github.com/llvm/llvm-project/pull/108383 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [compiler-rt] [llvm] [FMV][AArch64] Remove feature sha1 from FMV. (PR #108383)

2024-09-12 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea created https://github.com/llvm/llvm-project/pull/108383 Sha1 has been unified with sha2 in the ACLE spec (see https://github.com/ARM-software/acle/pull/347) so I am changing the compiler to adhere to it. >From 50820f4f3ded438162a33eabca84c5077fd2a5aa Mon Sep 17 00:0

[clang] [compiler-rt] [llvm] [FMV][AArch64] Unify ls64, ls64_v and ls64_accdata. (PR #108024)

2024-09-10 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea created https://github.com/llvm/llvm-project/pull/108024 Originally I tried spliting these features in the compiler with https://github.com/llvm/llvm-project/pull/101712, but I realized that there's no way to preserve backwards compatibility, therefore we decided to

[clang] [llvm] [ARM][AArch64] Split FEAT_SHA1 from FEAT_SHA256. (PR #99816)

2024-09-10 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea closed https://github.com/llvm/llvm-project/pull/99816 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [ARM][AArch64] Split FEAT_SHA1 from FEAT_SHA256. (PR #99816)

2024-09-10 Thread Alexandros Lamprineas via cfe-commits
labrinea wrote: I am abandoning this PR in favor of https://github.com/ARM-software/acle/pull/346 https://github.com/llvm/llvm-project/pull/99816 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/c

[clang] [llvm] [AArch64] Split FeatureLS64 to LS64_ACCDATA and LS64_V. (PR #101712)

2024-09-10 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea closed https://github.com/llvm/llvm-project/pull/101712 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [AArch64] Split FeatureLS64 to LS64_ACCDATA and LS64_V. (PR #101712)

2024-09-10 Thread Alexandros Lamprineas via cfe-commits
labrinea wrote: I am abandoning this PR in favor of https://github.com/ARM-software/acle/pull/346 https://github.com/llvm/llvm-project/pull/101712 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/

[clang] [llvm] [AArch64] Split FeatureLS64 to LS64_ACCDATA and LS64_V. (PR #101712)

2024-08-30 Thread Alexandros Lamprineas via cfe-commits
@@ -3682,6 +3682,8 @@ static const struct Extension { {"sve2-bitperm", {AArch64::FeatureSVE2BitPerm}}, {"sve2p1", {AArch64::FeatureSVE2p1}}, {"ls64", {AArch64::FeatureLS64}}, +{"ls64_v", {AArch64::FeatureLS64_V}}, +{"ls64_accdata", {AArch64::FeatureLS64_ACCD

[clang] [llvm] [AArch64] Split FeatureLS64 to LS64_ACCDATA and LS64_V. (PR #101712)

2024-08-30 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea updated https://github.com/llvm/llvm-project/pull/101712 >From 2fe8ef63846989952a1c72b83114aabe6f36637a Mon Sep 17 00:00:00 2001 From: Alexandros Lamprineas Date: Fri, 2 Aug 2024 17:32:23 +0100 Subject: [PATCH] [AArch64] Split FeatureLS64 to LS64_ACCDATA and LS64_V.

[clang] [llvm] [AArch64] Split FeatureLS64 to LS64_ACCDATA and LS64_V. (PR #101712)

2024-08-29 Thread Alexandros Lamprineas via cfe-commits
@@ -3682,6 +3682,8 @@ static const struct Extension { {"sve2-bitperm", {AArch64::FeatureSVE2BitPerm}}, {"sve2p1", {AArch64::FeatureSVE2p1}}, {"ls64", {AArch64::FeatureLS64}}, +{"ls64_v", {AArch64::FeatureLS64_V}}, +{"ls64_accdata", {AArch64::FeatureLS64_ACCD

[clang] [llvm] [AArch64] Split FeatureLS64 to LS64_ACCDATA and LS64_V. (PR #101712)

2024-08-29 Thread Alexandros Lamprineas via cfe-commits
@@ -3682,6 +3682,8 @@ static const struct Extension { {"sve2-bitperm", {AArch64::FeatureSVE2BitPerm}}, {"sve2p1", {AArch64::FeatureSVE2p1}}, {"ls64", {AArch64::FeatureLS64}}, +{"ls64_v", {AArch64::FeatureLS64_V}}, +{"ls64_accdata", {AArch64::FeatureLS64_ACCD

[clang] [llvm] [AArch64] Split FeatureLS64 to LS64_ACCDATA and LS64_V. (PR #101712)

2024-08-29 Thread Alexandros Lamprineas via cfe-commits
@@ -305,9 +305,17 @@ def FeatureWFxT : ExtensionWithMArch<"wfxt", "WFxT", "FEAT_WFxT", def FeatureHCX : Extension<"hcx", "HCX", "FEAT_HCX", "Enable Armv8.7-A HCRX_EL2 system register">; -def FeatureLS64 : ExtensionWithMArch<"ls64", "LS64", - "FEAT_LS64, FEAT_LS64_V, FEAT_L

[clang] [llvm] [AArch64] Split FeatureLS64 to LS64_ACCDATA and LS64_V. (PR #101712)

2024-08-29 Thread Alexandros Lamprineas via cfe-commits
@@ -305,9 +305,17 @@ def FeatureWFxT : ExtensionWithMArch<"wfxt", "WFxT", "FEAT_WFxT", def FeatureHCX : Extension<"hcx", "HCX", "FEAT_HCX", "Enable Armv8.7-A HCRX_EL2 system register">; -def FeatureLS64 : ExtensionWithMArch<"ls64", "LS64", - "FEAT_LS64, FEAT_LS64_V, FEAT_L

[clang] [llvm] [AArch64] Split FeatureLS64 to LS64_ACCDATA and LS64_V. (PR #101712)

2024-08-27 Thread Alexandros Lamprineas via cfe-commits
labrinea wrote: ping https://github.com/llvm/llvm-project/pull/101712 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [AArch64] Split FeatureLS64 to LS64_ACCDATA and LS64_V. (PR #101712)

2024-08-27 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea updated https://github.com/llvm/llvm-project/pull/101712 >From 2fe8ef63846989952a1c72b83114aabe6f36637a Mon Sep 17 00:00:00 2001 From: Alexandros Lamprineas Date: Fri, 2 Aug 2024 17:32:23 +0100 Subject: [PATCH] [AArch64] Split FeatureLS64 to LS64_ACCDATA and LS64_V.

[clang] [clang][FMV] Pass the '+fmv' target-feature when FMV is enabled. (PR #87942)

2024-08-24 Thread Alexandros Lamprineas via cfe-commits
labrinea wrote: > @labrinea @jroelofs Is there anything that still needs to be done here or can > this be merged? Currently the dependent PR #87939 is on hold. Unless it moves forward this PR is not needed. https://github.com/llvm/llvm-project/pull/87942 __

[clang] [llvm] [AArch64] Split FeatureLS64 to LS64_ACCDATA and LS64_V. (PR #101712)

2024-08-02 Thread Alexandros Lamprineas via cfe-commits
labrinea wrote: Just letting you know that I will be on holiday for a couple of weeks before I have a chance to respond to review comments. https://github.com/llvm/llvm-project/pull/101712 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https:

[clang] [llvm] [AArch64] Split FeatureLS64 to LS64_ACCDATA and LS64_V. (PR #101712)

2024-08-02 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea created https://github.com/llvm/llvm-project/pull/101712 These extensions depend on each other as follows: ls64 -> ls64_v -> ls64_accdata Currently in LLVM FeatureLS64 models all three lumped together. However the architecture does not mandate that all three need to

[clang] [clang][FMV][AArch64] Improve streaming mode compatibility. (PR #100181)

2024-07-29 Thread Alexandros Lamprineas via cfe-commits
labrinea wrote: Created a PR for the backport https://github.com/llvm/llvm-project/pull/101007 https://github.com/llvm/llvm-project/pull/100181 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-

[clang] [clang][FMV][AArch64] Improve streaming mode compatibility. (PR #100181)

2024-07-29 Thread Alexandros Lamprineas via cfe-commits
labrinea wrote: /cherry-pick [f8ae128](https://github.com/llvm/llvm-project/commit/f8ae128755777424cf4133e4e8e819c0bc08d2b1) https://github.com/llvm/llvm-project/pull/100181 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.or

[clang] [clang][FMV][AArch64] Improve streaming mode compatibility. (PR #100181)

2024-07-26 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea closed https://github.com/llvm/llvm-project/pull/100181 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][FMV][AArch64] Improve streaming mode compatibility. (PR #100181)

2024-07-25 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea updated https://github.com/llvm/llvm-project/pull/100181 >From 6799eb869ed1f87eb65dae84b11e3dd3907b2157 Mon Sep 17 00:00:00 2001 From: Alexandros Lamprineas Date: Tue, 23 Jul 2024 19:24:41 +0100 Subject: [PATCH 1/5] [clang][FMV][AArch64] Improve streaming mode compa

[clang] [clang][FMV][AArch64] Improve streaming mode compatibility. (PR #100181)

2024-07-24 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea edited https://github.com/llvm/llvm-project/pull/100181 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][FMV][AArch64] Improve streaming mode compatibility. (PR #100181)

2024-07-24 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea updated https://github.com/llvm/llvm-project/pull/100181 >From 6799eb869ed1f87eb65dae84b11e3dd3907b2157 Mon Sep 17 00:00:00 2001 From: Alexandros Lamprineas Date: Tue, 23 Jul 2024 19:24:41 +0100 Subject: [PATCH 1/4] [clang][FMV][AArch64] Improve streaming mode compa

[clang] [clang][FMV][AArch64] Improve streaming mode compatibility. (PR #100181)

2024-07-24 Thread Alexandros Lamprineas via cfe-commits
@@ -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

[clang] [clang][FMV][AArch64] Improve streaming mode compatibility. (PR #100181)

2024-07-24 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea edited https://github.com/llvm/llvm-project/pull/100181 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][FMV][AArch64] Improve streaming mode compatibility. (PR #100181)

2024-07-24 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea updated https://github.com/llvm/llvm-project/pull/100181 >From 6799eb869ed1f87eb65dae84b11e3dd3907b2157 Mon Sep 17 00:00:00 2001 From: Alexandros Lamprineas Date: Tue, 23 Jul 2024 19:24:41 +0100 Subject: [PATCH 1/3] [clang][FMV][AArch64] Improve streaming mode compa

[clang] [clang][FMV][AArch64] Improve streaming mode compatibility. (PR #100181)

2024-07-24 Thread Alexandros Lamprineas via cfe-commits
@@ -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

[clang] [clang][FMV][AArch64] Improve streaming mode compatibility. (PR #100181)

2024-07-24 Thread Alexandros Lamprineas via cfe-commits
@@ -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

[clang] [clang][FMV][AArch64] Improve streaming mode compatibility. (PR #100181)

2024-07-24 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea updated https://github.com/llvm/llvm-project/pull/100181 >From 6799eb869ed1f87eb65dae84b11e3dd3907b2157 Mon Sep 17 00:00:00 2001 From: Alexandros Lamprineas Date: Tue, 23 Jul 2024 19:24:41 +0100 Subject: [PATCH 1/2] [clang][FMV][AArch64] Improve streaming mode compa

[clang] [clang][FMV][AArch64] Improve streaming mode compatibility. (PR #100181)

2024-07-23 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea created https://github.com/llvm/llvm-project/pull/100181 * Allow arm-streaming if all the functions versions adhere to it. * Allow arm-streaming-compatible if all the functions versions adhere to it. * Allow arm-locally-streaming regardless of the other functions vers

[clang] [llvm] [ARM][AArch64] Split FEAT_SHA1 from FEAT_SHA256. (PR #99816)

2024-07-21 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea converted_to_draft https://github.com/llvm/llvm-project/pull/99816 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [FMV][AArch64] Do not optimize away runtime checks for implied features (PR #99522)

2024-07-19 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea closed https://github.com/llvm/llvm-project/pull/99522 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [FMV][AArch64] Do not optimize away runtime checks for implied features (PR #99522)

2024-07-18 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea created https://github.com/llvm/llvm-project/pull/99522 When generating the body of the ifunc resolver, clang skips runtime checks for features that are implied from the command line. We bend this rule for certain features (memtag, bti, dgh), but this happens quite

[clang] [FMV][AArch64] Do not emit ifunc resolver on use. (PR #97761)

2024-07-18 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea closed https://github.com/llvm/llvm-project/pull/97761 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [FMV][AArch64] Do not emit ifunc resolver on use. (PR #97761)

2024-07-08 Thread Alexandros Lamprineas via cfe-commits
@@ -261,9 +261,9 @@ __attribute__((target_version("jscvt"))) int default_def_with_version_decls(void // CHECK: attributes #[[ATTR3]] = { noinline nounwind optnone "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+lse,-v9.5a" } // CHECK: attribute

[clang] [FMV][AArch64] Do not emit ifunc resolver on use. (PR #97761)

2024-07-08 Thread Alexandros Lamprineas via cfe-commits
labrinea wrote: > It's really hard to tell what is changing here because the existing tests are > so non-specific. I appreciate that. The tests would benefit from some tidying up, we should prioritize this at some point. In case it helps most of the test changes are due to symbols being gener

[clang] [FMV][AArch64] Do not emit ifunc resolver on use. (PR #97761)

2024-07-08 Thread Alexandros Lamprineas via cfe-commits
@@ -4224,10 +4204,8 @@ void CodeGenModule::emitMultiVersionFunctions() { llvm::Function *Func = createFunction(CurFD); Options.emplace_back(Func, TA->getArchitecture(), Feats); } else if (const auto *TVA = CurFD->getAttr()) { -bool

[clang] [FMV][AArch64] Do not emit ifunc resolver on use. (PR #97761)

2024-07-08 Thread Alexandros Lamprineas via cfe-commits
@@ -4210,9 +4192,7 @@ void CodeGenModule::emitMultiVersionFunctions() { return cast(Func); }; -bool HasDefaultDecl = !FD->isTargetVersionMultiVersion(); -bool ShouldEmitResolver = -!getContext().getTargetInfo().getTriple().isAArch64(); +bool Shoul

[clang] [FMV][AArch64] Do not emit ifunc resolver on use. (PR #97761)

2024-07-08 Thread Alexandros Lamprineas via cfe-commits
@@ -59,15 +59,22 @@ int bar() { return m.goo(1) + foo(1) + foo(); } +// Example to demonstrate that at the point of use we haven't yet seen the default. +// At that point a declaration for the unmangled symbol is emitted, which is later +// replaced by the ifunc symbol (on

[clang] [FMV][AArch64] Do not emit ifunc resolver on use. (PR #97761)

2024-07-08 Thread Alexandros Lamprineas via cfe-commits
@@ -11,7 +11,7 @@ int __attribute__((target_version("fp+aes"))) fmv(void) { return 6; } int __attribute__((target_version("crc+ls64_v"))) fmv(void) { return 7; } int __attribute__((target_version("bti"))) fmv(void) { return 8; } int __attribute__((target_version("sme2"))) fmv(

[clang] [FMV][AArch64] Do not emit ifunc resolver on use. (PR #97761)

2024-07-08 Thread Alexandros Lamprineas via cfe-commits
@@ -261,9 +261,9 @@ __attribute__((target_version("jscvt"))) int default_def_with_version_decls(void // CHECK: attributes #[[ATTR3]] = { noinline nounwind optnone "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+lse,-v9.5a" } // CHECK: attribute

[clang] [FMV][AArch64] Do not emit ifunc resolver on use. (PR #97761)

2024-07-08 Thread Alexandros Lamprineas via cfe-commits
@@ -59,15 +59,22 @@ int bar() { return m.goo(1) + foo(1) + foo(); } +// Example to demonstrate that at the point of use we haven't yet seen the default. +// At that point a declaration for the unmangled symbol is emitted, which is later +// replaced by the ifunc symbol (on

[clang] [FMV][AArch64] Do not emit ifunc resolver on use. (PR #97761)

2024-07-04 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea edited https://github.com/llvm/llvm-project/pull/97761 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [FMV][AArch64] Do not emit ifunc resolver on use. (PR #97761)

2024-07-04 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea edited https://github.com/llvm/llvm-project/pull/97761 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][FMV] Do not omit explicit default target_version attribute. (PR #96628)

2024-07-04 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea closed https://github.com/llvm/llvm-project/pull/96628 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][FMV] Do not omit explicit default target_version attribute. (PR #96628)

2024-07-04 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea updated https://github.com/llvm/llvm-project/pull/96628 >From ff4635208e9cd83c6735c95ebf12125ca737029a Mon Sep 17 00:00:00 2001 From: Alexandros Lamprineas Date: Tue, 25 Jun 2024 00:27:45 +0100 Subject: [PATCH 1/3] [clang][FMV] Do not omit explicit default target_ver

[clang] [clang][FMV] Do not omit explicit default target_version attribute. (PR #96628)

2024-07-02 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea updated https://github.com/llvm/llvm-project/pull/96628 >From ff4635208e9cd83c6735c95ebf12125ca737029a Mon Sep 17 00:00:00 2001 From: Alexandros Lamprineas Date: Tue, 25 Jun 2024 00:27:45 +0100 Subject: [PATCH 1/3] [clang][FMV] Do not omit explicit default target_ver

[clang] [clang][FMV] Do not omit explicit default target_version attribute. (PR #96628)

2024-07-01 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea updated https://github.com/llvm/llvm-project/pull/96628 >From ff4635208e9cd83c6735c95ebf12125ca737029a Mon Sep 17 00:00:00 2001 From: Alexandros Lamprineas Date: Tue, 25 Jun 2024 00:27:45 +0100 Subject: [PATCH 1/3] [clang][FMV] Do not omit explicit default target_ver

[clang] [clang][FMV] Do not omit explicit default target_version attribute. (PR #96628)

2024-06-28 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea edited https://github.com/llvm/llvm-project/pull/96628 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][FMV] Do not omit explicit default target_version attribute. (PR #96628)

2024-06-28 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea edited https://github.com/llvm/llvm-project/pull/96628 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][FMV] Do not omit explicit default target_version attribute. (PR #96628)

2024-06-28 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea updated https://github.com/llvm/llvm-project/pull/96628 >From ff4635208e9cd83c6735c95ebf12125ca737029a Mon Sep 17 00:00:00 2001 From: Alexandros Lamprineas Date: Tue, 25 Jun 2024 00:27:45 +0100 Subject: [PATCH 1/3] [clang][FMV] Do not omit explicit default target_ver

[clang] [clang][FMV] Do not omit explicit default target_version attribute. (PR #96628)

2024-06-28 Thread Alexandros Lamprineas via cfe-commits
@@ -11465,6 +11465,10 @@ static bool CheckMultiVersionFirstFunction(Sema &S, FunctionDecl *FD) { // otherwise it is treated as a normal function. if (TA && !TA->isDefaultVersion()) return false; + // The target_version attribute only causes Multiversioning if this +

[clang] [clang][FMV] Do not omit explicit default target_version attribute. (PR #96628)

2024-06-28 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea edited https://github.com/llvm/llvm-project/pull/96628 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][FMV] Do not omit explicit default target_version attribute. (PR #96628)

2024-06-28 Thread Alexandros Lamprineas via cfe-commits
@@ -11576,22 +11584,6 @@ static bool CheckTargetCausesMultiVersioning(Sema &S, FunctionDecl *OldFD, } } - if (NewTVA) { labrinea wrote: The assertion should be conditional when NewTVA is not null because the function is used for the target attribute

[clang] [clang][FMV] Do not omit explicit default target_version attribute. (PR #96628)

2024-06-28 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea edited https://github.com/llvm/llvm-project/pull/96628 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][FMV] Do not omit explicit default target_version attribute. (PR #96628)

2024-06-28 Thread Alexandros Lamprineas via cfe-commits
@@ -11523,10 +11525,17 @@ static bool CheckTargetCausesMultiVersioning(Sema &S, FunctionDecl *OldFD, const auto *OldTVA = OldFD->getAttr(); // If the old decl is NOT MultiVersioned yet, and we don't cause that // to change, this is a simple redeclaration. - if ((NewTA &

[clang] [clang][FMV] Do not omit explicit default target_version attribute. (PR #96628)

2024-06-28 Thread Alexandros Lamprineas via cfe-commits
@@ -11465,6 +11465,10 @@ static bool CheckMultiVersionFirstFunction(Sema &S, FunctionDecl *FD) { // otherwise it is treated as a normal function. if (TA && !TA->isDefaultVersion()) return false; + // The target_version attribute only causes Multiversioning if this +

[clang] [clang][FMV] Do not omit explicit default target_version attribute. (PR #96628)

2024-06-28 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea edited https://github.com/llvm/llvm-project/pull/96628 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][FMV] Do not omit explicit default target_version attribute. (PR #96628)

2024-06-28 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea edited https://github.com/llvm/llvm-project/pull/96628 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][FMV] Do not omit explicit default target_version attribute. (PR #96628)

2024-06-28 Thread Alexandros Lamprineas via cfe-commits
@@ -11576,22 +11584,6 @@ static bool CheckTargetCausesMultiVersioning(Sema &S, FunctionDecl *OldFD, } } - if (NewTVA) { labrinea wrote: This is checking things like ``` //expected-note@+1 {{previous declaration is here}} void __attribute__((target_ver

[clang] [clang][FMV] Do not omit explicit default target_version attribute. (PR #96628)

2024-06-28 Thread Alexandros Lamprineas via cfe-commits
https://github.com/labrinea updated https://github.com/llvm/llvm-project/pull/96628 >From ff4635208e9cd83c6735c95ebf12125ca737029a Mon Sep 17 00:00:00 2001 From: Alexandros Lamprineas Date: Tue, 25 Jun 2024 00:27:45 +0100 Subject: [PATCH 1/2] [clang][FMV] Do not omit explicit default target_ver

[clang] [clang][FMV] Do not omit explicit default target_version attribute. (PR #96628)

2024-06-27 Thread Alexandros Lamprineas via cfe-commits
@@ -11523,10 +11525,16 @@ static bool CheckTargetCausesMultiVersioning(Sema &S, FunctionDecl *OldFD, const auto *OldTVA = OldFD->getAttr(); // If the old decl is NOT MultiVersioned yet, and we don't cause that // to change, this is a simple redeclaration. - if ((NewTA &

  1   2   3   4   >