[llvm-branch-commits] [llvm] release/18.x: [llvm][LoongArch] Improve loongarch_lasx_xvpermi_q instrinsic (#82984) (PR #83540)

2024-03-01 Thread via llvm-branch-commits

https://github.com/llvmbot milestoned 
https://github.com/llvm/llvm-project/pull/83540
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] release/18.x: [llvm][LoongArch] Improve loongarch_lasx_xvpermi_q instrinsic (#82984) (PR #83540)

2024-03-01 Thread via llvm-branch-commits

https://github.com/llvmbot created 
https://github.com/llvm/llvm-project/pull/83540

Backport d7c80bba698bded48c1df4b4bb7424a181aa6195

Requested by: @leecheechen

>From 3009ba6242d2e334b499a36d2706c0a4c004cfeb Mon Sep 17 00:00:00 2001
From: leecheechen 
Date: Tue, 27 Feb 2024 15:38:11 +0800
Subject: [PATCH] [llvm][LoongArch] Improve loongarch_lasx_xvpermi_q instrinsic
 (#82984)

For instruction xvpermi.q, only [1:0] and [5:4] bits of operands[3] are
used. The unused bits in operands[3] need to be set to 0 to avoid
causing undefined behavior.

(cherry picked from commit d7c80bba698bded48c1df4b4bb7424a181aa6195)
---
 .../LoongArch/LoongArchISelLowering.cpp   | 25 +++-
 .../CodeGen/LoongArch/lasx/intrinsic-permi.ll | 30 +++
 2 files changed, 54 insertions(+), 1 deletion(-)

diff --git a/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp 
b/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
index 76c1a14fe0156c..3324dd2e8fc217 100644
--- a/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+++ b/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
@@ -968,6 +968,28 @@ static SDValue checkIntrinsicImmArg(SDValue Op, unsigned 
ImmOp,
   return SDValue();
 }
 
+static SDValue checkAndModifyXVPERMI_QIntrinsicImmArg(SDValue Op,
+  SelectionDAG &DAG) {
+  SDValue Op3 = Op->getOperand(3);
+  uint64_t Imm = Op3->getAsZExtVal();
+  // Check the range of ImmArg.
+  if (!isUInt<8>(Imm)) {
+DAG.getContext()->emitError(Op->getOperationName(0) +
+": argument out of range.");
+return DAG.getNode(ISD::UNDEF, SDLoc(Op), Op.getValueType());
+  }
+
+  // For instruction xvpermi.q, only [1:0] and [5:4] bits of operands[3]
+  // are used. The unused bits in operands[3] need to be set to 0 to avoid
+  // causing undefined behavior on LA464.
+  if ((Imm & 0x33) != Imm) {
+Op3 = DAG.getTargetConstant(Imm & 0x33, SDLoc(Op), Op3.getValueType());
+DAG.UpdateNodeOperands(Op.getNode(), Op->getOperand(0), Op->getOperand(1),
+   Op->getOperand(2), Op3);
+  }
+  return SDValue();
+}
+
 SDValue
 LoongArchTargetLowering::lowerINTRINSIC_WO_CHAIN(SDValue Op,
  SelectionDAG &DAG) const {
@@ -1225,13 +1247,14 @@ 
LoongArchTargetLowering::lowerINTRINSIC_WO_CHAIN(SDValue Op,
   case Intrinsic::loongarch_lsx_vextrins_d:
   case Intrinsic::loongarch_lasx_xvshuf4i_d:
   case Intrinsic::loongarch_lasx_xvpermi_w:
-  case Intrinsic::loongarch_lasx_xvpermi_q:
   case Intrinsic::loongarch_lasx_xvbitseli_b:
   case Intrinsic::loongarch_lasx_xvextrins_b:
   case Intrinsic::loongarch_lasx_xvextrins_h:
   case Intrinsic::loongarch_lasx_xvextrins_w:
   case Intrinsic::loongarch_lasx_xvextrins_d:
 return checkIntrinsicImmArg<8>(Op, 3, DAG);
+  case Intrinsic::loongarch_lasx_xvpermi_q:
+return checkAndModifyXVPERMI_QIntrinsicImmArg(Op, DAG);
   case Intrinsic::loongarch_lsx_vrepli_b:
   case Intrinsic::loongarch_lsx_vrepli_h:
   case Intrinsic::loongarch_lsx_vrepli_w:
diff --git a/llvm/test/CodeGen/LoongArch/lasx/intrinsic-permi.ll 
b/llvm/test/CodeGen/LoongArch/lasx/intrinsic-permi.ll
index 0d9f9daabc4488..92669d2e589558 100644
--- a/llvm/test/CodeGen/LoongArch/lasx/intrinsic-permi.ll
+++ b/llvm/test/CodeGen/LoongArch/lasx/intrinsic-permi.ll
@@ -36,3 +36,33 @@ entry:
   %res = call <32 x i8> @llvm.loongarch.lasx.xvpermi.q(<32 x i8> %va, <32 x 
i8> %vb, i32 1)
   ret <32 x i8> %res
 }
+
+define <32 x i8> @lasx_xvpermi_q_204(<32 x i8> %va, <32 x i8> %vb) nounwind {
+; CHECK-LABEL: lasx_xvpermi_q_204:
+; CHECK:   # %bb.0: # %entry
+; CHECK-NEXT:xvpermi.q $xr0, $xr1, 0
+; CHECK-NEXT:ret
+entry:
+  %res = call <32 x i8> @llvm.loongarch.lasx.xvpermi.q(<32 x i8> %va, <32 x 
i8> %vb, i32 204)
+  ret <32 x i8> %res
+}
+
+define <32 x i8> @lasx_xvpermi_q_221(<32 x i8> %va, <32 x i8> %vb) nounwind {
+; CHECK-LABEL: lasx_xvpermi_q_221:
+; CHECK:   # %bb.0: # %entry
+; CHECK-NEXT:xvpermi.q $xr0, $xr1, 17
+; CHECK-NEXT:ret
+entry:
+  %res = call <32 x i8> @llvm.loongarch.lasx.xvpermi.q(<32 x i8> %va, <32 x 
i8> %vb, i32 221)
+  ret <32 x i8> %res
+}
+
+define <32 x i8> @lasx_xvpermi_q_255(<32 x i8> %va, <32 x i8> %vb) nounwind {
+; CHECK-LABEL: lasx_xvpermi_q_255:
+; CHECK:   # %bb.0: # %entry
+; CHECK-NEXT:xvpermi.q $xr0, $xr1, 51
+; CHECK-NEXT:ret
+entry:
+  %res = call <32 x i8> @llvm.loongarch.lasx.xvpermi.q(<32 x i8> %va, <32 x 
i8> %vb, i32 255)
+  ret <32 x i8> %res
+}

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] release/18.x: [llvm][LoongArch] Improve loongarch_lasx_xvpermi_q instrinsic (#82984) (PR #83540)

2024-03-01 Thread via llvm-branch-commits

llvmbot wrote:




@llvm/pr-subscribers-backend-loongarch

Author: None (llvmbot)


Changes

Backport d7c80bba698bded48c1df4b4bb7424a181aa6195

Requested by: @leecheechen

---
Full diff: https://github.com/llvm/llvm-project/pull/83540.diff


2 Files Affected:

- (modified) llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp (+24-1) 
- (modified) llvm/test/CodeGen/LoongArch/lasx/intrinsic-permi.ll (+30) 


``diff
diff --git a/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp 
b/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
index 76c1a14fe0156c..3324dd2e8fc217 100644
--- a/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+++ b/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
@@ -968,6 +968,28 @@ static SDValue checkIntrinsicImmArg(SDValue Op, unsigned 
ImmOp,
   return SDValue();
 }
 
+static SDValue checkAndModifyXVPERMI_QIntrinsicImmArg(SDValue Op,
+  SelectionDAG &DAG) {
+  SDValue Op3 = Op->getOperand(3);
+  uint64_t Imm = Op3->getAsZExtVal();
+  // Check the range of ImmArg.
+  if (!isUInt<8>(Imm)) {
+DAG.getContext()->emitError(Op->getOperationName(0) +
+": argument out of range.");
+return DAG.getNode(ISD::UNDEF, SDLoc(Op), Op.getValueType());
+  }
+
+  // For instruction xvpermi.q, only [1:0] and [5:4] bits of operands[3]
+  // are used. The unused bits in operands[3] need to be set to 0 to avoid
+  // causing undefined behavior on LA464.
+  if ((Imm & 0x33) != Imm) {
+Op3 = DAG.getTargetConstant(Imm & 0x33, SDLoc(Op), Op3.getValueType());
+DAG.UpdateNodeOperands(Op.getNode(), Op->getOperand(0), Op->getOperand(1),
+   Op->getOperand(2), Op3);
+  }
+  return SDValue();
+}
+
 SDValue
 LoongArchTargetLowering::lowerINTRINSIC_WO_CHAIN(SDValue Op,
  SelectionDAG &DAG) const {
@@ -1225,13 +1247,14 @@ 
LoongArchTargetLowering::lowerINTRINSIC_WO_CHAIN(SDValue Op,
   case Intrinsic::loongarch_lsx_vextrins_d:
   case Intrinsic::loongarch_lasx_xvshuf4i_d:
   case Intrinsic::loongarch_lasx_xvpermi_w:
-  case Intrinsic::loongarch_lasx_xvpermi_q:
   case Intrinsic::loongarch_lasx_xvbitseli_b:
   case Intrinsic::loongarch_lasx_xvextrins_b:
   case Intrinsic::loongarch_lasx_xvextrins_h:
   case Intrinsic::loongarch_lasx_xvextrins_w:
   case Intrinsic::loongarch_lasx_xvextrins_d:
 return checkIntrinsicImmArg<8>(Op, 3, DAG);
+  case Intrinsic::loongarch_lasx_xvpermi_q:
+return checkAndModifyXVPERMI_QIntrinsicImmArg(Op, DAG);
   case Intrinsic::loongarch_lsx_vrepli_b:
   case Intrinsic::loongarch_lsx_vrepli_h:
   case Intrinsic::loongarch_lsx_vrepli_w:
diff --git a/llvm/test/CodeGen/LoongArch/lasx/intrinsic-permi.ll 
b/llvm/test/CodeGen/LoongArch/lasx/intrinsic-permi.ll
index 0d9f9daabc4488..92669d2e589558 100644
--- a/llvm/test/CodeGen/LoongArch/lasx/intrinsic-permi.ll
+++ b/llvm/test/CodeGen/LoongArch/lasx/intrinsic-permi.ll
@@ -36,3 +36,33 @@ entry:
   %res = call <32 x i8> @llvm.loongarch.lasx.xvpermi.q(<32 x i8> %va, <32 x 
i8> %vb, i32 1)
   ret <32 x i8> %res
 }
+
+define <32 x i8> @lasx_xvpermi_q_204(<32 x i8> %va, <32 x i8> %vb) nounwind {
+; CHECK-LABEL: lasx_xvpermi_q_204:
+; CHECK:   # %bb.0: # %entry
+; CHECK-NEXT:xvpermi.q $xr0, $xr1, 0
+; CHECK-NEXT:ret
+entry:
+  %res = call <32 x i8> @llvm.loongarch.lasx.xvpermi.q(<32 x i8> %va, <32 x 
i8> %vb, i32 204)
+  ret <32 x i8> %res
+}
+
+define <32 x i8> @lasx_xvpermi_q_221(<32 x i8> %va, <32 x i8> %vb) nounwind {
+; CHECK-LABEL: lasx_xvpermi_q_221:
+; CHECK:   # %bb.0: # %entry
+; CHECK-NEXT:xvpermi.q $xr0, $xr1, 17
+; CHECK-NEXT:ret
+entry:
+  %res = call <32 x i8> @llvm.loongarch.lasx.xvpermi.q(<32 x i8> %va, <32 x 
i8> %vb, i32 221)
+  ret <32 x i8> %res
+}
+
+define <32 x i8> @lasx_xvpermi_q_255(<32 x i8> %va, <32 x i8> %vb) nounwind {
+; CHECK-LABEL: lasx_xvpermi_q_255:
+; CHECK:   # %bb.0: # %entry
+; CHECK-NEXT:xvpermi.q $xr0, $xr1, 51
+; CHECK-NEXT:ret
+entry:
+  %res = call <32 x i8> @llvm.loongarch.lasx.xvpermi.q(<32 x i8> %va, <32 x 
i8> %vb, i32 255)
+  ret <32 x i8> %res
+}

``




https://github.com/llvm/llvm-project/pull/83540
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] be63af9 - Revert "[AArch64][GlobalISel] Legalize G_SHUFFLE_VECTOR for Odd-Sized Vectors…"

2024-03-01 Thread via llvm-branch-commits

Author: chuongg3
Date: 2024-03-01T08:45:48Z
New Revision: be63af9a247bbc612dcea3397d26229210db8d20

URL: 
https://github.com/llvm/llvm-project/commit/be63af9a247bbc612dcea3397d26229210db8d20
DIFF: 
https://github.com/llvm/llvm-project/commit/be63af9a247bbc612dcea3397d26229210db8d20.diff

LOG: Revert "[AArch64][GlobalISel] Legalize G_SHUFFLE_VECTOR for Odd-Sized 
Vectors…"

This reverts commit a344db793aca6881379c7c83f5112d2870dbf958.

Added: 


Modified: 
llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
llvm/test/CodeGen/AArch64/GlobalISel/legalize-select.mir
llvm/test/CodeGen/AArch64/shufflevector.ll

Removed: 




diff  --git a/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h 
b/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
index 6afaea3f3fc5c6f..637c2c71b02411f 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
@@ -908,18 +908,6 @@ class LegalizeRuleSet {
 LegalizeMutations::widenScalarOrEltToNextPow2(TypeIdx, MinSize));
   }
 
-  /// Widen the scalar or vector element type to the next power of two that is
-  /// at least MinSize.  No effect if the scalar size is a power of two.
-  LegalizeRuleSet &widenScalarOrEltToNextPow2OrMinSize(unsigned TypeIdx,
-   unsigned MinSize = 0) {
-using namespace LegalityPredicates;
-return actionIf(
-LegalizeAction::WidenScalar,
-any(scalarOrEltNarrowerThan(TypeIdx, MinSize),
-scalarOrEltSizeNotPow2(typeIdx(TypeIdx))),
-LegalizeMutations::widenScalarOrEltToNextPow2(TypeIdx, MinSize));
-  }
-
   LegalizeRuleSet &narrowScalar(unsigned TypeIdx, LegalizeMutation Mutation) {
 using namespace LegalityPredicates;
 return actionIf(LegalizeAction::NarrowScalar, isScalar(typeIdx(TypeIdx)),

diff  --git a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp 
b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
index 1d016e684c48f60..8079f853aef855d 100644
--- a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
@@ -2495,7 +2495,6 @@ LegalizerHelper::widenScalar(MachineInstr &MI, unsigned 
TypeIdx, LLT WideTy) {
   case TargetOpcode::G_OR:
   case TargetOpcode::G_XOR:
   case TargetOpcode::G_SUB:
-  case TargetOpcode::G_SHUFFLE_VECTOR:
 // Perform operation at larger width (any extension is fines here, high 
bits
 // don't affect the result) and then truncate the result back to the
 // original type.

diff  --git a/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp 
b/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
index 33f04e6ad0c7635..117c4004d41df89 100644
--- a/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
+++ b/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
@@ -956,9 +956,6 @@ AArch64LegalizerInfo::AArch64LegalizerInfo(const 
AArch64Subtarget &ST)
   },
   changeTo(1, 0))
   .moreElementsToNextPow2(0)
-  .widenScalarOrEltToNextPow2OrMinSize(0, 8)
-  .clampNumElements(0, v8s8, v16s8)
-  .clampNumElements(0, v4s16, v8s16)
   .clampNumElements(0, v4s32, v4s32)
   .clampNumElements(0, v2s64, v2s64)
   .moreElementsIf(

diff  --git a/llvm/test/CodeGen/AArch64/GlobalISel/legalize-select.mir 
b/llvm/test/CodeGen/AArch64/GlobalISel/legalize-select.mir
index 63a26dcfea4762e..4879ffd28784c16 100644
--- a/llvm/test/CodeGen/AArch64/GlobalISel/legalize-select.mir
+++ b/llvm/test/CodeGen/AArch64/GlobalISel/legalize-select.mir
@@ -287,47 +287,39 @@ body: |
 ; CHECK-NEXT: %q0:_(<4 x s32>) = COPY $q0
 ; CHECK-NEXT: %q1:_(<4 x s32>) = COPY $q1
 ; CHECK-NEXT: %q2:_(<4 x s32>) = COPY $q2
-; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<4 x s32>) = G_ICMP intpred(eq), %q0(<4 x 
s32>), %q1
-; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(<4 x s32>) = G_ICMP intpred(eq), %q0(<4 
x s32>), %q2
+; CHECK-NEXT: %vec_cond0:_(<4 x s1>) = G_ICMP intpred(eq), %q0(<4 x s32>), 
%q1
+; CHECK-NEXT: %vec_cond1:_(<4 x s1>) = G_ICMP intpred(eq), %q0(<4 x s32>), 
%q2
 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4100
-; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), %w0(s32), 
[[C]]
-; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[ICMP2]], 1
-; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s8) = G_IMPLICIT_DEF
-; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF
-; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY [[DEF1]](s16)
-; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY [[DEF1]](s16)
-; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s16) = COPY [[DEF1]](s16)
-; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s16>) = G_BUILD_VECTOR 
[[COPY]](s16), [[COPY1]](s16), [[COPY2]](s16), [[DEF1]](s16)
-; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONST

[llvm-branch-commits] [clang] [Serialization] Code cleanups and polish 83233 (PR #83237)

2024-03-01 Thread Vassil Vassilev via llvm-branch-commits

vgvassilev wrote:

> The error message looks odd since the language options shouldn't be involved.

Sorry, I did not push. Now you can take a look.

https://github.com/llvm/llvm-project/pull/83237
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] [Serialization] Code cleanups and polish 83233 (PR #83237)

2024-03-01 Thread Chuanqi Xu via llvm-branch-commits

ChuanqiXu9 wrote:

> > The error message looks odd since the language options shouldn't be 
> > involved.
> 
> Sorry, I did not push. Now you can take a look.

I mean your local results.

https://github.com/llvm/llvm-project/pull/83237
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [lld] release/18.x: [ELF] Internalize enum (PR #83613)

2024-03-01 Thread via llvm-branch-commits

https://github.com/llvmbot created 
https://github.com/llvm/llvm-project/pull/83613

Backport 4a3f7e798a31072a80a0731b8fb1da21b9c626ed

Requested by: @MaskRay

>From 939ee549a2c40a356137a404464039c9a5691cb3 Mon Sep 17 00:00:00 2001
From: Fangrui Song 
Date: Fri, 1 Mar 2024 11:17:22 -0800
Subject: [PATCH] [ELF] Internalize enum

g++ -flto has a diagnostic `-Wodr` about mismatched redeclarations,
which even apply to `enum`.

Fix #83529

Reviewers: thesamesam

Reviewed By: thesamesam

Pull Request: https://github.com/llvm/llvm-project/pull/83604

(cherry picked from commit 4a3f7e798a31072a80a0731b8fb1da21b9c626ed)
---
 lld/ELF/Arch/LoongArch.cpp | 2 ++
 lld/ELF/Arch/PPC64.cpp | 3 ++-
 lld/ELF/Arch/RISCV.cpp | 2 ++
 3 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/lld/ELF/Arch/LoongArch.cpp b/lld/ELF/Arch/LoongArch.cpp
index 05fd38fb753fda..1dab98115d9dea 100644
--- a/lld/ELF/Arch/LoongArch.cpp
+++ b/lld/ELF/Arch/LoongArch.cpp
@@ -41,6 +41,7 @@ class LoongArch final : public TargetInfo {
 };
 } // end anonymous namespace
 
+namespace {
 enum Op {
   SUB_W = 0x0011,
   SUB_D = 0x00118000,
@@ -65,6 +66,7 @@ enum Reg {
   R_T2 = 14,
   R_T3 = 15,
 };
+} // namespace
 
 // Mask out the input's lowest 12 bits for use with `pcalau12i`, in sequences
 // like `pcalau12i + addi.[wd]` or `pcalau12i + {ld,st}.*` where the 
`pcalau12i`
diff --git a/lld/ELF/Arch/PPC64.cpp b/lld/ELF/Arch/PPC64.cpp
index de52f6a79a40b9..019c073bd541b6 100644
--- a/lld/ELF/Arch/PPC64.cpp
+++ b/lld/ELF/Arch/PPC64.cpp
@@ -26,6 +26,7 @@ using namespace lld::elf;
 constexpr uint64_t ppc64TocOffset = 0x8000;
 constexpr uint64_t dynamicThreadPointerOffset = 0x8000;
 
+namespace {
 // The instruction encoding of bits 21-30 from the ISA for the Xform and Dform
 // instructions that can be used as part of the initial exec TLS sequence.
 enum XFormOpcd {
@@ -139,6 +140,7 @@ enum class PPCPrefixedInsn : uint64_t {
   PSTXV = PREFIX_8LS | 0xd800,
   PSTXVP = PREFIX_8LS | 0xf800
 };
+
 static bool checkPPCLegacyInsn(uint32_t encoding) {
   PPCLegacyInsn insn = static_cast(encoding);
   if (insn == PPCLegacyInsn::NOINSN)
@@ -164,7 +166,6 @@ enum class LegacyToPrefixMask : uint64_t {
   0x83e0, // S/T (6-10) - The [S/T]X bit moves from 28 to 5.
 };
 
-namespace {
 class PPC64 final : public TargetInfo {
 public:
   PPC64();
diff --git a/lld/ELF/Arch/RISCV.cpp b/lld/ELF/Arch/RISCV.cpp
index 5fcab4d39d43a8..4798c86f7d1b61 100644
--- a/lld/ELF/Arch/RISCV.cpp
+++ b/lld/ELF/Arch/RISCV.cpp
@@ -57,6 +57,7 @@ class RISCV final : public TargetInfo {
 
 const uint64_t dtpOffset = 0x800;
 
+namespace {
 enum Op {
   ADDI = 0x13,
   AUIPC = 0x17,
@@ -78,6 +79,7 @@ enum Reg {
   X_A0 = 10,
   X_T3 = 28,
 };
+} // namespace
 
 static uint32_t hi20(uint32_t val) { return (val + 0x800) >> 12; }
 static uint32_t lo12(uint32_t val) { return val & 4095; }

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [lld] release/18.x: [ELF] Internalize enum (PR #83613)

2024-03-01 Thread via llvm-branch-commits

https://github.com/llvmbot milestoned 
https://github.com/llvm/llvm-project/pull/83613
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [lld] release/18.x: [ELF] Internalize enum (PR #83613)

2024-03-01 Thread via llvm-branch-commits

llvmbot wrote:

@thesamesam What do you think about merging this PR to the release branch?

https://github.com/llvm/llvm-project/pull/83613
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [lld] release/18.x: [ELF] Internalize enum (PR #83613)

2024-03-01 Thread via llvm-branch-commits

llvmbot wrote:




@llvm/pr-subscribers-lld-elf

Author: None (llvmbot)


Changes

Backport 4a3f7e798a31072a80a0731b8fb1da21b9c626ed

Requested by: @MaskRay

---
Full diff: https://github.com/llvm/llvm-project/pull/83613.diff


3 Files Affected:

- (modified) lld/ELF/Arch/LoongArch.cpp (+2) 
- (modified) lld/ELF/Arch/PPC64.cpp (+2-1) 
- (modified) lld/ELF/Arch/RISCV.cpp (+2) 


``diff
diff --git a/lld/ELF/Arch/LoongArch.cpp b/lld/ELF/Arch/LoongArch.cpp
index 05fd38fb753fda..1dab98115d9dea 100644
--- a/lld/ELF/Arch/LoongArch.cpp
+++ b/lld/ELF/Arch/LoongArch.cpp
@@ -41,6 +41,7 @@ class LoongArch final : public TargetInfo {
 };
 } // end anonymous namespace
 
+namespace {
 enum Op {
   SUB_W = 0x0011,
   SUB_D = 0x00118000,
@@ -65,6 +66,7 @@ enum Reg {
   R_T2 = 14,
   R_T3 = 15,
 };
+} // namespace
 
 // Mask out the input's lowest 12 bits for use with `pcalau12i`, in sequences
 // like `pcalau12i + addi.[wd]` or `pcalau12i + {ld,st}.*` where the 
`pcalau12i`
diff --git a/lld/ELF/Arch/PPC64.cpp b/lld/ELF/Arch/PPC64.cpp
index de52f6a79a40b9..019c073bd541b6 100644
--- a/lld/ELF/Arch/PPC64.cpp
+++ b/lld/ELF/Arch/PPC64.cpp
@@ -26,6 +26,7 @@ using namespace lld::elf;
 constexpr uint64_t ppc64TocOffset = 0x8000;
 constexpr uint64_t dynamicThreadPointerOffset = 0x8000;
 
+namespace {
 // The instruction encoding of bits 21-30 from the ISA for the Xform and Dform
 // instructions that can be used as part of the initial exec TLS sequence.
 enum XFormOpcd {
@@ -139,6 +140,7 @@ enum class PPCPrefixedInsn : uint64_t {
   PSTXV = PREFIX_8LS | 0xd800,
   PSTXVP = PREFIX_8LS | 0xf800
 };
+
 static bool checkPPCLegacyInsn(uint32_t encoding) {
   PPCLegacyInsn insn = static_cast(encoding);
   if (insn == PPCLegacyInsn::NOINSN)
@@ -164,7 +166,6 @@ enum class LegacyToPrefixMask : uint64_t {
   0x83e0, // S/T (6-10) - The [S/T]X bit moves from 28 to 5.
 };
 
-namespace {
 class PPC64 final : public TargetInfo {
 public:
   PPC64();
diff --git a/lld/ELF/Arch/RISCV.cpp b/lld/ELF/Arch/RISCV.cpp
index 5fcab4d39d43a8..4798c86f7d1b61 100644
--- a/lld/ELF/Arch/RISCV.cpp
+++ b/lld/ELF/Arch/RISCV.cpp
@@ -57,6 +57,7 @@ class RISCV final : public TargetInfo {
 
 const uint64_t dtpOffset = 0x800;
 
+namespace {
 enum Op {
   ADDI = 0x13,
   AUIPC = 0x17,
@@ -78,6 +79,7 @@ enum Reg {
   X_A0 = 10,
   X_T3 = 28,
 };
+} // namespace
 
 static uint32_t hi20(uint32_t val) { return (val + 0x800) >> 12; }
 static uint32_t lo12(uint32_t val) { return val & 4095; }

``




https://github.com/llvm/llvm-project/pull/83613
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] [SLP] Initial vectorization of non-power-of-2 ops. (PR #77790)

2024-03-01 Thread Florian Hahn via llvm-branch-commits

https://github.com/fhahn closed https://github.com/llvm/llvm-project/pull/77790
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] [SLP] Initial vectorization of non-power-of-2 ops. (PR #77790)

2024-03-01 Thread Florian Hahn via llvm-branch-commits

https://github.com/fhahn reopened 
https://github.com/llvm/llvm-project/pull/77790
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [lld] release/18.x: [ELF] Internalize enum (PR #83613)

2024-03-01 Thread Sam James via llvm-branch-commits

https://github.com/thesamesam approved this pull request.


https://github.com/llvm/llvm-project/pull/83613
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] [Sparc] limit MaxAtomicSizeInBitsSupported to 32 for 32-bit Sparc. (#81655) (PR #81713)

2024-03-01 Thread Brad Smith via llvm-branch-commits

https://github.com/brad0 closed https://github.com/llvm/llvm-project/pull/81713
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [compiler-rt] [compiler-rt] Build libfuzzer sources with the chosen C++ compiler (PR #83090)

2024-03-01 Thread Alexander Richardson via llvm-branch-commits

https://github.com/arichardson updated 
https://github.com/llvm/llvm-project/pull/83090

>From 8d86b5ea7c696367173335997f5aab2d25a31ad0 Mon Sep 17 00:00:00 2001
From: Alex Richardson 
Date: Mon, 26 Feb 2024 17:08:23 -0800
Subject: [PATCH] add missing part of diff

Created using spr 1.3.4
---
 compiler-rt/cmake/Modules/CompilerRTCompile.cmake | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/compiler-rt/cmake/Modules/CompilerRTCompile.cmake 
b/compiler-rt/cmake/Modules/CompilerRTCompile.cmake
index 8c804acb44ae4d..2bf115973a49b3 100644
--- a/compiler-rt/cmake/Modules/CompilerRTCompile.cmake
+++ b/compiler-rt/cmake/Modules/CompilerRTCompile.cmake
@@ -107,7 +107,7 @@ function(clang_compile object_file source)
 
   add_custom_command(
 OUTPUT ${object_file}
-COMMAND ${COMPILER_RT_TEST_COMPILER} ${compile_flags} -c
+COMMAND ${compiler} ${compile_flags} -c
 -o "${object_file}"
 ${source_rpath}
 MAIN_DEPENDENCY ${source}

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [compiler-rt] [compiler-rt] Build libfuzzer sources with the chosen C++ compiler (PR #83090)

2024-03-01 Thread Alexander Richardson via llvm-branch-commits

https://github.com/arichardson updated 
https://github.com/llvm/llvm-project/pull/83090

>From 8d86b5ea7c696367173335997f5aab2d25a31ad0 Mon Sep 17 00:00:00 2001
From: Alex Richardson 
Date: Mon, 26 Feb 2024 17:08:23 -0800
Subject: [PATCH] add missing part of diff

Created using spr 1.3.4
---
 compiler-rt/cmake/Modules/CompilerRTCompile.cmake | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/compiler-rt/cmake/Modules/CompilerRTCompile.cmake 
b/compiler-rt/cmake/Modules/CompilerRTCompile.cmake
index 8c804acb44ae4d..2bf115973a49b3 100644
--- a/compiler-rt/cmake/Modules/CompilerRTCompile.cmake
+++ b/compiler-rt/cmake/Modules/CompilerRTCompile.cmake
@@ -107,7 +107,7 @@ function(clang_compile object_file source)
 
   add_custom_command(
 OUTPUT ${object_file}
-COMMAND ${COMPILER_RT_TEST_COMPILER} ${compile_flags} -c
+COMMAND ${compiler} ${compile_flags} -c
 -o "${object_file}"
 ${source_rpath}
 MAIN_DEPENDENCY ${source}

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [compiler-rt] Remove llvm_gtest dependency from unit tests (PR #83649)

2024-03-01 Thread Alexander Richardson via llvm-branch-commits

https://github.com/arichardson created 
https://github.com/llvm/llvm-project/pull/83649

All these unit tests already include ${COMPILER_RT_GTEST_SOURCE} as an
input source file and the target llvm_gtest does not exist for
standalone builds. Currently the DEPS argument is ignored for standalone
builds so the missing target is not a problem, but as part of fixing a
build race for standalone builds I am planning to include those
dependencies in COMPILER_RT_TEST_STANDALONE_BUILD_LIBS configurations.



___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [compiler-rt] Fix build race with COMPILER_RT_TEST_STANDALONE_BUILD_LIBS (PR #83650)

2024-03-01 Thread Alexander Richardson via llvm-branch-commits

https://github.com/arichardson created 
https://github.com/llvm/llvm-project/pull/83650

Since this standalone build configuration uses the runtime libraries that
are being built just now, we need to ensure that e.g. the TSan unit tests
depend on the tsan runtime library. Also fix TSAN_DEPS being overridden
to not include the tsan runtime (commit .).
This change fixes a build race seen in the CI checks for
TsanRtlTest-x86_64-Test in https://github.com/llvm/llvm-project/pull/83088.



___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [compiler-rt] Remove llvm_gtest dependency from unit tests (PR #83649)

2024-03-01 Thread via llvm-branch-commits

llvmbot wrote:




@llvm/pr-subscribers-compiler-rt-sanitizer

Author: Alexander Richardson (arichardson)


Changes

All these unit tests already include ${COMPILER_RT_GTEST_SOURCE} as an
input source file and the target llvm_gtest does not exist for
standalone builds. Currently the DEPS argument is ignored for standalone
builds so the missing target is not a problem, but as part of fixing a
build race for standalone builds I am planning to include those
dependencies in COMPILER_RT_TEST_STANDALONE_BUILD_LIBS configurations.


---
Full diff: https://github.com/llvm/llvm-project/pull/83649.diff


10 Files Affected:

- (modified) compiler-rt/lib/asan/tests/CMakeLists.txt (+1-1) 
- (modified) compiler-rt/lib/fuzzer/tests/CMakeLists.txt (+2-2) 
- (modified) compiler-rt/lib/gwp_asan/tests/CMakeLists.txt (+1-1) 
- (modified) compiler-rt/lib/interception/tests/CMakeLists.txt (-1) 
- (modified) compiler-rt/lib/msan/tests/CMakeLists.txt (+1-1) 
- (modified) compiler-rt/lib/orc/tests/CMakeLists.txt (+1-1) 
- (modified) compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt (-1) 
- (modified) compiler-rt/lib/scudo/standalone/tests/CMakeLists.txt (+1-1) 
- (modified) compiler-rt/lib/tsan/tests/CMakeLists.txt (+1-1) 
- (modified) compiler-rt/lib/xray/tests/CMakeLists.txt (+1-1) 


``diff
diff --git a/compiler-rt/lib/asan/tests/CMakeLists.txt 
b/compiler-rt/lib/asan/tests/CMakeLists.txt
index 6ee2fb01c0df49..bda47bd7fd6a22 100644
--- a/compiler-rt/lib/asan/tests/CMakeLists.txt
+++ b/compiler-rt/lib/asan/tests/CMakeLists.txt
@@ -172,7 +172,7 @@ function(add_asan_tests arch test_runtime)
   function(generate_asan_tests test_objects test_suite testname)
 generate_compiler_rt_tests(${test_objects} ${test_suite} ${testname} 
${arch}
   COMPILE_DEPS ${ASAN_UNITTEST_HEADERS} ${ASAN_IGNORELIST_FILE}
-  DEPS llvm_gtest asan
+  DEPS asan
   KIND ${TEST_KIND}
   ${ARGN}
   )
diff --git a/compiler-rt/lib/fuzzer/tests/CMakeLists.txt 
b/compiler-rt/lib/fuzzer/tests/CMakeLists.txt
index dd82c492e83a45..8f5707c687ac50 100644
--- a/compiler-rt/lib/fuzzer/tests/CMakeLists.txt
+++ b/compiler-rt/lib/fuzzer/tests/CMakeLists.txt
@@ -74,7 +74,7 @@ if(COMPILER_RT_DEFAULT_TARGET_ARCH IN_LIST 
FUZZER_SUPPORTED_ARCH)
 FuzzerUnitTests "Fuzzer-${arch}-Test" ${arch}
 SOURCES FuzzerUnittest.cpp ${COMPILER_RT_GTEST_SOURCE}
 RUNTIME ${LIBFUZZER_TEST_RUNTIME}
-DEPS llvm_gtest ${LIBFUZZER_TEST_RUNTIME_DEPS}
+DEPS ${LIBFUZZER_TEST_RUNTIME_DEPS}
 CFLAGS ${LIBFUZZER_UNITTEST_CFLAGS} ${LIBFUZZER_TEST_RUNTIME_CFLAGS}
 LINK_FLAGS ${LIBFUZZER_UNITTEST_LINK_FLAGS} 
${LIBFUZZER_TEST_RUNTIME_LINK_FLAGS})
   set_target_properties(FuzzerUnitTests PROPERTIES
@@ -84,7 +84,7 @@ if(COMPILER_RT_DEFAULT_TARGET_ARCH IN_LIST 
FUZZER_SUPPORTED_ARCH)
   generate_compiler_rt_tests(FuzzedDataProviderTestObjects
 FuzzedDataProviderUnitTests "FuzzerUtils-${arch}-Test" ${arch}
 SOURCES FuzzedDataProviderUnittest.cpp ${COMPILER_RT_GTEST_SOURCE}
-DEPS llvm_gtest ${LIBFUZZER_TEST_RUNTIME_DEPS} 
${COMPILER_RT_SOURCE_DIR}/include/fuzzer/FuzzedDataProvider.h
+DEPS ${LIBFUZZER_TEST_RUNTIME_DEPS} 
${COMPILER_RT_SOURCE_DIR}/include/fuzzer/FuzzedDataProvider.h
 CFLAGS ${LIBFUZZER_UNITTEST_CFLAGS} ${LIBFUZZER_TEST_RUNTIME_CFLAGS}
 LINK_FLAGS ${LIBFUZZER_UNITTEST_LINK_FLAGS} 
${LIBFUZZER_TEST_RUNTIME_LINK_FLAGS})
   set_target_properties(FuzzedDataProviderUnitTests PROPERTIES
diff --git a/compiler-rt/lib/gwp_asan/tests/CMakeLists.txt 
b/compiler-rt/lib/gwp_asan/tests/CMakeLists.txt
index 4915c83d49ca9e..2ec332ea74c137 100644
--- a/compiler-rt/lib/gwp_asan/tests/CMakeLists.txt
+++ b/compiler-rt/lib/gwp_asan/tests/CMakeLists.txt
@@ -74,7 +74,7 @@ if(COMPILER_RT_DEFAULT_TARGET_ARCH IN_LIST 
GWP_ASAN_SUPPORTED_ARCH)
 GwpAsanUnitTests "GwpAsan-${arch}-Test" ${arch}
 SOURCES ${GWP_ASAN_UNITTESTS} ${COMPILER_RT_GTEST_SOURCE}
 RUNTIME ${GWP_ASAN_TEST_RUNTIME}
-DEPS llvm_gtest ${GWP_ASAN_UNIT_TEST_HEADERS}
+DEPS ${GWP_ASAN_UNIT_TEST_HEADERS}
 CFLAGS ${GWP_ASAN_UNITTEST_CFLAGS}
 LINK_FLAGS ${GWP_ASAN_UNITTEST_LINK_FLAGS})
   set_target_properties(GwpAsanUnitTests PROPERTIES
diff --git a/compiler-rt/lib/interception/tests/CMakeLists.txt 
b/compiler-rt/lib/interception/tests/CMakeLists.txt
index 644a57664cc490..0a235c662af3b0 100644
--- a/compiler-rt/lib/interception/tests/CMakeLists.txt
+++ b/compiler-rt/lib/interception/tests/CMakeLists.txt
@@ -107,7 +107,6 @@ macro(add_interception_tests_for_arch arch)
 RUNTIME ${INTERCEPTION_COMMON_LIB}
 SOURCES ${INTERCEPTION_UNITTESTS} ${COMPILER_RT_GTEST_SOURCE}
 COMPILE_DEPS ${INTERCEPTION_TEST_HEADERS}
-DEPS llvm_gtest
 CFLAGS ${INTERCEPTION_TEST_CFLAGS_COMMON}
 LINK_FLAGS ${INTERCEPTION_TEST_LINK_FLAGS_COMMON})
 endmacro()
diff --git a/compiler-rt/lib/msan/tests/CMakeLists.txt 
b/compiler-rt/lib/msan/tests/CMakeLists.txt
index 6ef63ff8216638..1cb03d8323f651 100644
--- a/compiler-rt/lib/msan/tests/CMakeLists.txt
+++ b/compile

[llvm-branch-commits] [compiler-rt] Fix build race with COMPILER_RT_TEST_STANDALONE_BUILD_LIBS (PR #83650)

2024-03-01 Thread via llvm-branch-commits

llvmbot wrote:




@llvm/pr-subscribers-compiler-rt-sanitizer

Author: Alexander Richardson (arichardson)


Changes

Since this standalone build configuration uses the runtime libraries that
are being built just now, we need to ensure that e.g. the TSan unit tests
depend on the tsan runtime library. Also fix TSAN_DEPS being overridden
to not include the tsan runtime (commit .).
This change fixes a build race seen in the CI checks for
TsanRtlTest-x86_64-Test in https://github.com/llvm/llvm-project/pull/83088.


---
Full diff: https://github.com/llvm/llvm-project/pull/83650.diff


2 Files Affected:

- (modified) compiler-rt/cmake/Modules/CompilerRTCompile.cmake (+1-1) 
- (modified) compiler-rt/lib/tsan/tests/CMakeLists.txt (+1-1) 


``diff
diff --git a/compiler-rt/cmake/Modules/CompilerRTCompile.cmake 
b/compiler-rt/cmake/Modules/CompilerRTCompile.cmake
index 2bf115973a49b3..3d7528ad2e52c0 100644
--- a/compiler-rt/cmake/Modules/CompilerRTCompile.cmake
+++ b/compiler-rt/cmake/Modules/CompilerRTCompile.cmake
@@ -46,7 +46,7 @@ function(sanitizer_test_compile obj_list source arch)
   # Write out architecture-specific flags into TARGET_CFLAGS variable.
   get_target_flags_for_arch(${arch} TARGET_CFLAGS)
   set(COMPILE_DEPS ${TEST_COMPILE_DEPS})
-  if(NOT COMPILER_RT_STANDALONE_BUILD)
+  if(NOT COMPILER_RT_STANDALONE_BUILD OR 
COMPILER_RT_TEST_STANDALONE_BUILD_LIBS)
 list(APPEND COMPILE_DEPS ${TEST_DEPS})
   endif()
   clang_compile(${output_obj} ${source}
diff --git a/compiler-rt/lib/tsan/tests/CMakeLists.txt 
b/compiler-rt/lib/tsan/tests/CMakeLists.txt
index ad8cc9b0eb05af..1bc08bbf7450c8 100644
--- a/compiler-rt/lib/tsan/tests/CMakeLists.txt
+++ b/compiler-rt/lib/tsan/tests/CMakeLists.txt
@@ -67,7 +67,7 @@ endforeach()
 set(TSAN_DEPS tsan)
 # TSan uses C++ standard library headers.
 if (TARGET cxx-headers OR HAVE_LIBCXX)
-  set(TSAN_DEPS cxx-headers)
+  list(APPEND TSAN_DEPS cxx-headers)
 endif()
 
 # add_tsan_unittest(

``




https://github.com/llvm/llvm-project/pull/83650
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [compiler-rt] [compiler-rt] Build libfuzzer sources with the chosen C++ compiler (PR #83090)

2024-03-01 Thread Alexander Richardson via llvm-branch-commits

https://github.com/arichardson updated 
https://github.com/llvm/llvm-project/pull/83090

>From 8d86b5ea7c696367173335997f5aab2d25a31ad0 Mon Sep 17 00:00:00 2001
From: Alex Richardson 
Date: Mon, 26 Feb 2024 17:08:23 -0800
Subject: [PATCH 1/2] add missing part of diff

Created using spr 1.3.4
---
 compiler-rt/cmake/Modules/CompilerRTCompile.cmake | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/compiler-rt/cmake/Modules/CompilerRTCompile.cmake 
b/compiler-rt/cmake/Modules/CompilerRTCompile.cmake
index 8c804acb44ae4d..2bf115973a49b3 100644
--- a/compiler-rt/cmake/Modules/CompilerRTCompile.cmake
+++ b/compiler-rt/cmake/Modules/CompilerRTCompile.cmake
@@ -107,7 +107,7 @@ function(clang_compile object_file source)
 
   add_custom_command(
 OUTPUT ${object_file}
-COMMAND ${COMPILER_RT_TEST_COMPILER} ${compile_flags} -c
+COMMAND ${compiler} ${compile_flags} -c
 -o "${object_file}"
 ${source_rpath}
 MAIN_DEPENDENCY ${source}

>From a2e7827fde0d87b7e8665926b2b9e73171e07369 Mon Sep 17 00:00:00 2001
From: Alexander Richardson 
Date: Fri, 1 Mar 2024 19:11:31 -0800
Subject: [PATCH 2/2] [compiler-rt] Relax CHECK line in reaches_function.c

In my build environment, the output is a relative path:
```
test/dfsan/reaches_function.c:34 add.dfsan
test/dfsan/reaches_function.c:56 main
```

This fixes check-dfsan in my configuration:
```
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -G Ninja
-DCMAKE_C_COMPILER=$HOME/output/upstream-llvm/bin/clang
-DCMAKE_CXX_COMPILER=$HOME/output/upstream-llvm/bin/clang++
-DCOMPILER_RT_INCLUDE_TESTS=ON
-DLLVM_EXTERNAL_LIT=$HOME/build/upstream-llvm-project-build/bin/llvm-lit
-DLLVM_CMAKE_DIR=$HOME/output/upstream-llvm
-DCOMPILER_RT_DEBUG=OFF
-S $HOME/src/upstream-llvm-project/compiler-rt
-B $HOME/src/upstream-llvm-project/compiler-rt/cmake-build-all-sanitizers
```

Reviewers: browneee, vitalybuka

Reviewed By: vitalybuka

Pull Request: https://github.com/llvm/llvm-project/pull/83089
---
 compiler-rt/test/dfsan/reaches_function.c | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/compiler-rt/test/dfsan/reaches_function.c 
b/compiler-rt/test/dfsan/reaches_function.c
index 9e2bcee935b2ac..a00654e7ae132d 100644
--- a/compiler-rt/test/dfsan/reaches_function.c
+++ b/compiler-rt/test/dfsan/reaches_function.c
@@ -32,11 +32,11 @@ void my_dfsan_reaches_function_callback(dfsan_label label, 
dfsan_origin origin,
 __attribute__((noinline)) uint64_t add(uint64_t *a, uint64_t *b) {
 
   return *a + *b;
-  // CHECK: {{.*}}compiler-rt/test/dfsan/reaches_function.c:[[# @LINE - 1]] 
add.dfsan
+  // CHECK: reaches_function.c:[[# @LINE - 1]] add.dfsan
   // CHECK-ORIGIN-TRACKING: Origin value: 0x1002, Taint value was stored 
to memory at
-  // CHECK-ORIGIN-TRACKING: #0 {{.*}} in add.dfsan 
{{.*}}compiler-rt/test/dfsan/reaches_function.c:[[# @LINE - 3]]:{{.*}}
+  // CHECK-ORIGIN-TRACKING: #0 {{.*}} in add.dfsan 
{{.*}}reaches_function.c:[[# @LINE - 3]]:{{.*}}
   // CHECK-ORIGIN-TRACKING: Origin value: 0x1, Taint value was created at
-  // CHECK-ORIGIN-TRACKING: #0 {{.*}} in main 
{{.*}}compiler-rt/test/dfsan/reaches_function.c:{{.*}}
+  // CHECK-ORIGIN-TRACKING: #0 {{.*}} in main {{.*}}reaches_function.c:{{.*}}
 }
 
 extern void my_dfsan_reaches_function_callback(dfsan_label label,
@@ -54,11 +54,11 @@ int main(int argc, char *argv[]) {
 
   dfsan_set_label(8, &a, sizeof(a));
   uint64_t c = add(&a, &b);
-  // CHECK: {{.*}}compiler-rt/test/dfsan/reaches_function.c:[[# @LINE - 1]] 
main
+  // CHECK: reaches_function.c:[[# @LINE - 1]] main
   // CHECK-ORIGIN-TRACKING: Origin value: 0x1002, Taint value was stored 
to memory at
-  // CHECK-ORIGIN-TRACKING: #0 {{.*}} in add.dfsan 
{{.*}}compiler-rt/test/dfsan/reaches_function.c:{{.*}}
+  // CHECK-ORIGIN-TRACKING: #0 {{.*}} in add.dfsan 
{{.*}}reaches_function.c:{{.*}}
   // CHECK-ORIGIN-TRACKING: Origin value: 0x1, Taint value was created at
-  // CHECK-ORIGIN-TRACKING: #0 {{.*}} in main 
{{.*}}compiler-rt/test/dfsan/reaches_function.c:[[# @LINE - 6]]:{{.*}}
+  // CHECK-ORIGIN-TRACKING: #0 {{.*}} in main {{.*}}reaches_function.c:[[# 
@LINE - 6]]:{{.*}}
   return c;
 }
 

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [compiler-rt] [compiler-rt] Build libfuzzer sources with the chosen C++ compiler (PR #83090)

2024-03-01 Thread Alexander Richardson via llvm-branch-commits

https://github.com/arichardson updated 
https://github.com/llvm/llvm-project/pull/83090

>From 8d86b5ea7c696367173335997f5aab2d25a31ad0 Mon Sep 17 00:00:00 2001
From: Alex Richardson 
Date: Mon, 26 Feb 2024 17:08:23 -0800
Subject: [PATCH 1/2] add missing part of diff

Created using spr 1.3.4
---
 compiler-rt/cmake/Modules/CompilerRTCompile.cmake | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/compiler-rt/cmake/Modules/CompilerRTCompile.cmake 
b/compiler-rt/cmake/Modules/CompilerRTCompile.cmake
index 8c804acb44ae4d..2bf115973a49b3 100644
--- a/compiler-rt/cmake/Modules/CompilerRTCompile.cmake
+++ b/compiler-rt/cmake/Modules/CompilerRTCompile.cmake
@@ -107,7 +107,7 @@ function(clang_compile object_file source)
 
   add_custom_command(
 OUTPUT ${object_file}
-COMMAND ${COMPILER_RT_TEST_COMPILER} ${compile_flags} -c
+COMMAND ${compiler} ${compile_flags} -c
 -o "${object_file}"
 ${source_rpath}
 MAIN_DEPENDENCY ${source}

>From a2e7827fde0d87b7e8665926b2b9e73171e07369 Mon Sep 17 00:00:00 2001
From: Alexander Richardson 
Date: Fri, 1 Mar 2024 19:11:31 -0800
Subject: [PATCH 2/2] [compiler-rt] Relax CHECK line in reaches_function.c

In my build environment, the output is a relative path:
```
test/dfsan/reaches_function.c:34 add.dfsan
test/dfsan/reaches_function.c:56 main
```

This fixes check-dfsan in my configuration:
```
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -G Ninja
-DCMAKE_C_COMPILER=$HOME/output/upstream-llvm/bin/clang
-DCMAKE_CXX_COMPILER=$HOME/output/upstream-llvm/bin/clang++
-DCOMPILER_RT_INCLUDE_TESTS=ON
-DLLVM_EXTERNAL_LIT=$HOME/build/upstream-llvm-project-build/bin/llvm-lit
-DLLVM_CMAKE_DIR=$HOME/output/upstream-llvm
-DCOMPILER_RT_DEBUG=OFF
-S $HOME/src/upstream-llvm-project/compiler-rt
-B $HOME/src/upstream-llvm-project/compiler-rt/cmake-build-all-sanitizers
```

Reviewers: browneee, vitalybuka

Reviewed By: vitalybuka

Pull Request: https://github.com/llvm/llvm-project/pull/83089
---
 compiler-rt/test/dfsan/reaches_function.c | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/compiler-rt/test/dfsan/reaches_function.c 
b/compiler-rt/test/dfsan/reaches_function.c
index 9e2bcee935b2ac..a00654e7ae132d 100644
--- a/compiler-rt/test/dfsan/reaches_function.c
+++ b/compiler-rt/test/dfsan/reaches_function.c
@@ -32,11 +32,11 @@ void my_dfsan_reaches_function_callback(dfsan_label label, 
dfsan_origin origin,
 __attribute__((noinline)) uint64_t add(uint64_t *a, uint64_t *b) {
 
   return *a + *b;
-  // CHECK: {{.*}}compiler-rt/test/dfsan/reaches_function.c:[[# @LINE - 1]] 
add.dfsan
+  // CHECK: reaches_function.c:[[# @LINE - 1]] add.dfsan
   // CHECK-ORIGIN-TRACKING: Origin value: 0x1002, Taint value was stored 
to memory at
-  // CHECK-ORIGIN-TRACKING: #0 {{.*}} in add.dfsan 
{{.*}}compiler-rt/test/dfsan/reaches_function.c:[[# @LINE - 3]]:{{.*}}
+  // CHECK-ORIGIN-TRACKING: #0 {{.*}} in add.dfsan 
{{.*}}reaches_function.c:[[# @LINE - 3]]:{{.*}}
   // CHECK-ORIGIN-TRACKING: Origin value: 0x1, Taint value was created at
-  // CHECK-ORIGIN-TRACKING: #0 {{.*}} in main 
{{.*}}compiler-rt/test/dfsan/reaches_function.c:{{.*}}
+  // CHECK-ORIGIN-TRACKING: #0 {{.*}} in main {{.*}}reaches_function.c:{{.*}}
 }
 
 extern void my_dfsan_reaches_function_callback(dfsan_label label,
@@ -54,11 +54,11 @@ int main(int argc, char *argv[]) {
 
   dfsan_set_label(8, &a, sizeof(a));
   uint64_t c = add(&a, &b);
-  // CHECK: {{.*}}compiler-rt/test/dfsan/reaches_function.c:[[# @LINE - 1]] 
main
+  // CHECK: reaches_function.c:[[# @LINE - 1]] main
   // CHECK-ORIGIN-TRACKING: Origin value: 0x1002, Taint value was stored 
to memory at
-  // CHECK-ORIGIN-TRACKING: #0 {{.*}} in add.dfsan 
{{.*}}compiler-rt/test/dfsan/reaches_function.c:{{.*}}
+  // CHECK-ORIGIN-TRACKING: #0 {{.*}} in add.dfsan 
{{.*}}reaches_function.c:{{.*}}
   // CHECK-ORIGIN-TRACKING: Origin value: 0x1, Taint value was created at
-  // CHECK-ORIGIN-TRACKING: #0 {{.*}} in main 
{{.*}}compiler-rt/test/dfsan/reaches_function.c:[[# @LINE - 6]]:{{.*}}
+  // CHECK-ORIGIN-TRACKING: #0 {{.*}} in main {{.*}}reaches_function.c:[[# 
@LINE - 6]]:{{.*}}
   return c;
 }
 

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [compiler-rt] [compiler-rt] Build libfuzzer sources with the chosen C++ compiler (PR #83090)

2024-03-01 Thread Alexander Richardson via llvm-branch-commits

https://github.com/arichardson closed 
https://github.com/llvm/llvm-project/pull/83090
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [compiler-rt] Remove llvm_gtest dependency from unit tests (PR #83649)

2024-03-01 Thread Alexander Richardson via llvm-branch-commits

https://github.com/arichardson updated 
https://github.com/llvm/llvm-project/pull/83649


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [compiler-rt] Remove llvm_gtest dependency from unit tests (PR #83649)

2024-03-01 Thread Alexander Richardson via llvm-branch-commits

https://github.com/arichardson updated 
https://github.com/llvm/llvm-project/pull/83649


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [compiler-rt] Fix build race with COMPILER_RT_TEST_STANDALONE_BUILD_LIBS (PR #83650)

2024-03-01 Thread Alexander Richardson via llvm-branch-commits

https://github.com/arichardson updated 
https://github.com/llvm/llvm-project/pull/83650


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [compiler-rt] Fix build race with COMPILER_RT_TEST_STANDALONE_BUILD_LIBS (PR #83650)

2024-03-01 Thread Alexander Richardson via llvm-branch-commits

https://github.com/arichardson updated 
https://github.com/llvm/llvm-project/pull/83650


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [compiler-rt] Don't check COMPILER_RT_STANDALONE_BUILD for test deps (PR #83651)

2024-03-01 Thread Alexander Richardson via llvm-branch-commits

https://github.com/arichardson created 
https://github.com/llvm/llvm-project/pull/83651

With https://github.com/llvm/llvm-project/pull/83088, we now need the
runtimes to be built before running test if
COMPILER_RT_TEST_STANDALONE_BUILD_LIBS is true, since otherwise we
get failures running `ninja check-all` such as the following:
```
/usr/bin/ld: cannot find 
.../compiler-rt/cmake-build-all-sanitizers/lib/linux/libclang_rt.fuzzer-x86_64.a:
 No such file or directory
/usr/bin/ld: cannot find 
.../compiler-rt/cmake-build-all-sanitizers/lib/linux/libclang_rt.xray-x86_64.a: 
No such file or directory
/usr/bin/ld: cannot find 
.../compiler-rt/cmake-build-all-sanitizers/lib/linux/libclang_rt.xray-basic-x86_64.a:
 No such file or directory
/usr/bin/ld: cannot find 
.../compiler-rt/cmake-build-all-sanitizers/lib/linux/libclang_rt.xray-fdr-x86_64.a:
 No such file or directory
```

This is a follow-up to 058e9b03 which started removing these checks
and it should make it easier to stop forcing COMPILER_RT_STANDALONE_BUILD
for runtimes builds in the future.



___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [MSan] Pass -fsanitize-ignorelist to the instrumented libcxxabi (PR #83652)

2024-03-01 Thread Alexander Richardson via llvm-branch-commits

https://github.com/arichardson created 
https://github.com/llvm/llvm-project/pull/83652

This ensures that the MSan unit tests are able to pass with an
uninstrumented libunwind. We need to avoid instrumentation for
__gxx_personality_v0, which is part of the default msan_ignorelist.txt
that is installed into the resource directory. However, if we are trying
to test the just-built libraries, this global ignore list may not be
present yet, so we still instrument the function.

Arguably this function should not be on the default ignore list since it
is only a problem when building libcxxabi with MSan instrumentation and
without an instrumented libunwind, so maybe the logic should really be
part of the libcxxabi build. However, that could be done as a follow-up.

See 2f856a36e0b270b184051d10a18d4b4238b4c033 for more context.



___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [compiler-rt] Don't check COMPILER_RT_STANDALONE_BUILD for test deps (PR #83651)

2024-03-01 Thread via llvm-branch-commits

llvmbot wrote:




@llvm/pr-subscribers-pgo

Author: Alexander Richardson (arichardson)


Changes

With https://github.com/llvm/llvm-project/pull/83088, we now need the
runtimes to be built before running test if
COMPILER_RT_TEST_STANDALONE_BUILD_LIBS is true, since otherwise we
get failures running `ninja check-all` such as the following:
```
/usr/bin/ld: cannot find 
.../compiler-rt/cmake-build-all-sanitizers/lib/linux/libclang_rt.fuzzer-x86_64.a:
 No such file or directory
/usr/bin/ld: cannot find 
.../compiler-rt/cmake-build-all-sanitizers/lib/linux/libclang_rt.xray-x86_64.a: 
No such file or directory
/usr/bin/ld: cannot find 
.../compiler-rt/cmake-build-all-sanitizers/lib/linux/libclang_rt.xray-basic-x86_64.a:
 No such file or directory
/usr/bin/ld: cannot find 
.../compiler-rt/cmake-build-all-sanitizers/lib/linux/libclang_rt.xray-fdr-x86_64.a:
 No such file or directory
```

This is a follow-up to 058e9b03 which started removing these checks
and it should make it easier to stop forcing COMPILER_RT_STANDALONE_BUILD
for runtimes builds in the future.


---
Full diff: https://github.com/llvm/llvm-project/pull/83651.diff


8 Files Affected:

- (modified) compiler-rt/cmake/Modules/CompilerRTCompile.cmake (+2-1) 
- (modified) compiler-rt/lib/msan/tests/CMakeLists.txt (+1-3) 
- (modified) compiler-rt/test/asan_abi/CMakeLists.txt (+1-4) 
- (modified) compiler-rt/test/fuzzer/CMakeLists.txt (+13-8) 
- (modified) compiler-rt/test/memprof/CMakeLists.txt (+3-6) 
- (modified) compiler-rt/test/msan/CMakeLists.txt (+1-5) 
- (modified) compiler-rt/test/ubsan/CMakeLists.txt (+1-3) 
- (modified) compiler-rt/test/xray/CMakeLists.txt (+2-3) 


``diff
diff --git a/compiler-rt/cmake/Modules/CompilerRTCompile.cmake 
b/compiler-rt/cmake/Modules/CompilerRTCompile.cmake
index 3d7528ad2e52c0..1629db18f1c2d9 100644
--- a/compiler-rt/cmake/Modules/CompilerRTCompile.cmake
+++ b/compiler-rt/cmake/Modules/CompilerRTCompile.cmake
@@ -65,8 +65,9 @@ function(clang_compile object_file source)
   cmake_parse_arguments(SOURCE "" "" "CFLAGS;DEPS" ${ARGN})
   get_filename_component(source_rpath ${source} REALPATH)
   if(NOT COMPILER_RT_STANDALONE_BUILD)
-list(APPEND SOURCE_DEPS clang compiler-rt-headers)
+list(APPEND SOURCE_DEPS clang)
   endif()
+  list(APPEND SOURCE_DEPS compiler-rt-headers)
   if (TARGET CompilerRTUnitTestCheckCxx)
 list(APPEND SOURCE_DEPS CompilerRTUnitTestCheckCxx)
   endif()
diff --git a/compiler-rt/lib/msan/tests/CMakeLists.txt 
b/compiler-rt/lib/msan/tests/CMakeLists.txt
index 1cb03d8323f651..0d43f432ab6a37 100644
--- a/compiler-rt/lib/msan/tests/CMakeLists.txt
+++ b/compiler-rt/lib/msan/tests/CMakeLists.txt
@@ -119,9 +119,7 @@ macro(add_msan_tests_for_arch arch kind cflags)
   set(MSAN_TEST_DEPS ${MSAN_TEST_OBJECTS} libcxx_msan_${arch}-build
  ${MSAN_LOADABLE_SO}
 "${MSAN_LIBCXX_DIR}/libc++.a" 
"${MSAN_LIBCXX_DIR}/libc++abi.a")
-  if(NOT COMPILER_RT_STANDALONE_BUILD)
-list(APPEND MSAN_TEST_DEPS msan)
-  endif()
+  list(APPEND MSAN_TEST_DEPS msan)
   get_target_flags_for_arch(${arch} TARGET_LINK_FLAGS)
   add_compiler_rt_test(MsanUnitTests "Msan-${arch}${kind}-Test" ${arch}
 OBJECTS ${MSAN_TEST_OBJECTS} "${MSAN_LIBCXX_DIR}/libc++.a" 
"${MSAN_LIBCXX_DIR}/libc++abi.a"
diff --git a/compiler-rt/test/asan_abi/CMakeLists.txt 
b/compiler-rt/test/asan_abi/CMakeLists.txt
index f28cf6cd1da6ea..1114ed1b82793d 100644
--- a/compiler-rt/test/asan_abi/CMakeLists.txt
+++ b/compiler-rt/test/asan_abi/CMakeLists.txt
@@ -9,10 +9,7 @@ macro(get_bits_for_arch arch bits)
   endif()
 endmacro()
 
-set(ASAN_ABI_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS})
-if(NOT COMPILER_RT_STANDALONE_BUILD)
-  list(APPEND ASAN_ABI_TEST_DEPS asan_abi)
-endif()
+set(ASAN_ABI_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS} asan_abi)
 
 set(ASAN_ABI_TEST_ARCH ${ASAN_ABI_SUPPORTED_ARCH})
 if(APPLE)
diff --git a/compiler-rt/test/fuzzer/CMakeLists.txt 
b/compiler-rt/test/fuzzer/CMakeLists.txt
index f0ba087a1b3260..5bcb44757bae46 100644
--- a/compiler-rt/test/fuzzer/CMakeLists.txt
+++ b/compiler-rt/test/fuzzer/CMakeLists.txt
@@ -1,12 +1,17 @@
-set(LIBFUZZER_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS})
+set(LIBFUZZER_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS} fuzzer)
+if (COMPILER_RT_HAS_UBSAN)
+  list(APPEND LIBFUZZER_TEST_DEPS ubsan)
+endif()
+if (COMPILER_RT_HAS_ASAN)
+  list(APPEND LIBFUZZER_TEST_DEPS asan)
+endif()
+if (COMPILER_RT_HAS_MSAN)
+  list(APPEND LIBFUZZER_TEST_DEPS msan)
+endif()
+if (COMPILER_RT_HAS_DFSAN)
+  list(APPEND LIBFUZZER_TEST_DEPS dfsan)
+endif()
 if (NOT COMPILER_RT_STANDALONE_BUILD)
-  list(APPEND LIBFUZZER_TEST_DEPS fuzzer asan ubsan)
-  if (COMPILER_RT_HAS_MSAN)
-list(APPEND LIBFUZZER_TEST_DEPS msan)
-  endif()
-  if (COMPILER_RT_HAS_DFSAN)
-list(APPEND LIBFUZZER_TEST_DEPS dfsan)
-  endif()
   if(NOT APPLE AND COMPILER_RT_HAS_LLD AND "lld" IN_LIST LLVM_ENABLE_PROJECTS)
 list(APPEND LIBFUZZER_TEST_DEPS lld)
   endif()
diff --git a/compiler-rt/test/memprof/C

[llvm-branch-commits] [MSan] Pass -fsanitize-ignorelist to the instrumented libcxxabi (PR #83652)

2024-03-01 Thread via llvm-branch-commits

llvmbot wrote:




@llvm/pr-subscribers-compiler-rt-sanitizer

Author: Alexander Richardson (arichardson)


Changes

This ensures that the MSan unit tests are able to pass with an
uninstrumented libunwind. We need to avoid instrumentation for
__gxx_personality_v0, which is part of the default msan_ignorelist.txt
that is installed into the resource directory. However, if we are trying
to test the just-built libraries, this global ignore list may not be
present yet, so we still instrument the function.

Arguably this function should not be on the default ignore list since it
is only a problem when building libcxxabi with MSan instrumentation and
without an instrumented libunwind, so maybe the logic should really be
part of the libcxxabi build. However, that could be done as a follow-up.

See 2f856a36e0b270b184051d10a18d4b4238b4c033 for more context.


---
Full diff: https://github.com/llvm/llvm-project/pull/83652.diff


1 Files Affected:

- (modified) compiler-rt/lib/msan/tests/CMakeLists.txt (+2-1) 


``diff
diff --git a/compiler-rt/lib/msan/tests/CMakeLists.txt 
b/compiler-rt/lib/msan/tests/CMakeLists.txt
index 0d43f432ab6a37..4f09f1e6a691fa 100644
--- a/compiler-rt/lib/msan/tests/CMakeLists.txt
+++ b/compiler-rt/lib/msan/tests/CMakeLists.txt
@@ -10,7 +10,8 @@ set(MSAN_LIBCXX_CFLAGS
   -fsanitize-memory-track-origins
   -fno-sanitize-memory-param-retval  # unittests test mostly this mode.
   -Wno-pedantic
-  -Xclang -fdepfile-entry=${COMPILER_RT_OUTPUT_DIR}/share/msan_ignorelist.txt
+# Do not instrument __gxx_personality_v0 (part of libcxxabi)
+  -fsanitize-ignorelist=${COMPILER_RT_OUTPUT_DIR}/share/msan_ignorelist.txt
   )
 
 # Unittest sources and build flags.

``




https://github.com/llvm/llvm-project/pull/83652
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] e1d58e4 - Revert "[FileCheck] Fix parsing empty global and pseudo variable names (#82595)"

2024-03-01 Thread via llvm-branch-commits

Author: Daniil Kovalev
Date: 2024-03-02T07:20:30+03:00
New Revision: e1d58e480eb92b21ae4989b15bf625fc8383e50f

URL: 
https://github.com/llvm/llvm-project/commit/e1d58e480eb92b21ae4989b15bf625fc8383e50f
DIFF: 
https://github.com/llvm/llvm-project/commit/e1d58e480eb92b21ae4989b15bf625fc8383e50f.diff

LOG: Revert "[FileCheck] Fix parsing empty global and pseudo variable names 
(#82595)"

This reverts commit aab3d13179dc5a37465a0e6fbf1b9369a4e6e50f.

Added: 


Modified: 
llvm/lib/FileCheck/FileCheck.cpp

Removed: 
llvm/test/FileCheck/empty-variable-name.txt



diff  --git a/llvm/lib/FileCheck/FileCheck.cpp 
b/llvm/lib/FileCheck/FileCheck.cpp
index 8f80a69c4abd3a..6d3a2b9cf46f7c 100644
--- a/llvm/lib/FileCheck/FileCheck.cpp
+++ b/llvm/lib/FileCheck/FileCheck.cpp
@@ -297,12 +297,6 @@ Pattern::parseVariable(StringRef &Str, const SourceMgr 
&SM) {
   if (Str[0] == '$' || IsPseudo)
 ++I;
 
-  if (I == Str.size())
-return ErrorDiagnostic::get(SM, Str.slice(I, StringRef::npos),
-StringRef("empty ") +
-(IsPseudo ? "pseudo " : "global ") +
-"variable name");
-
   if (!isValidVarNameStart(Str[I++]))
 return ErrorDiagnostic::get(SM, Str, "invalid variable name");
 

diff  --git a/llvm/test/FileCheck/empty-variable-name.txt 
b/llvm/test/FileCheck/empty-variable-name.txt
deleted file mode 100644
index 29c6317e6bb17e..00
--- a/llvm/test/FileCheck/empty-variable-name.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-a
-
-; RUN: not FileCheck -input-file %s %s 2>&1 | \
-; RUN:   FileCheck -check-prefix CHECK-ERROR -DDIR=%S \
-; RUN:   --match-full-lines --strict-whitespace %s
-
-; CHECK:a[[]]
-; CHECK-ERROR:[[DIR]]{{/|\\}}empty-variable-name.txt:7:13: error: empty 
variable name
-; CHECK-ERROR-NEXT:; CHECK: a{{\[\[\]\]}}
-;  CHECK-ERROR-NEXT:^
-
-b
-
-; RUN: not FileCheck -input-file %s -check-prefix CHECK-PSEUDO %s 2>&1 | \
-; RUN:   FileCheck -check-prefix CHECK-ERROR-PSEUDO -DDIR=%S \
-; RUN:   --match-full-lines --strict-whitespace %s
-
-; CHECK-PSEUDO: b[[@]]
-; CHECK-ERROR-PSEUDO:[[DIR]]{{/|\\}}empty-variable-name.txt:18:21: error: 
empty pseudo variable name
-; CHECK-ERROR-PSEUDO-NEXT:; CHECK-PSEUDO: b{{\[\[@\]\]}}
-;  CHECK-ERROR-PSEUDO-NEXT:^
-
-c
-
-; RUN: not FileCheck -input-file %s -check-prefix CHECK-GLOBAL %s 2>&1 | \
-; RUN:   FileCheck -check-prefix CHECK-ERROR-GLOBAL -DDIR=%S \
-; RUN:   --match-full-lines --strict-whitespace %s
-
-; CHECK-GLOBAL: c[[$]]
-; CHECK-ERROR-GLOBAL:[[DIR]]{{/|\\}}empty-variable-name.txt:29:21: error: 
empty global variable name
-; CHECK-ERROR-GLOBAL-NEXT:; CHECK-GLOBAL: c{{\[\[\$\]\]}}
-;   CHECK-ERROR-GLOBAL-NEXT:^



___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits