https://github.com/OCHyams updated 
https://github.com/llvm/llvm-project/pull/134653

>From 5725d90b6828e1aa9822f3a8af4e45a613480f74 Mon Sep 17 00:00:00 2001
From: Orlando Cazalet-Hyams <orlando.hy...@sony.com>
Date: Mon, 7 Apr 2025 08:59:09 +0100
Subject: [PATCH 1/6] [KeyInstr][Clang] Coerced store atoms

This patch is part of a stack that teaches Clang to generate Key Instructions
metadata for C and C++.

The Key Instructions project is introduced, including a "quick summary" section
at the top which adds context for this PR, here:
https://discourse.llvm.org/t/rfc-improving-is-stmt-placement-for-better-interactive-debugging/82668

The feature is only functional in LLVM if LLVM is built with CMake flag
LLVM_EXPERIMENTAL_KEY_INSTRUCTIONs. Eventually that flag will be removed.

The Clang-side work is demoed here:
https://github.com/llvm/llvm-project/pull/130943
---
 clang/lib/CodeGen/CGCall.cpp         |  3 ++-
 clang/test/KeyInstructions/coerced.c | 24 ++++++++++++++++++++++++
 2 files changed, 26 insertions(+), 1 deletion(-)
 create mode 100644 clang/test/KeyInstructions/coerced.c

diff --git a/clang/lib/CodeGen/CGCall.cpp b/clang/lib/CodeGen/CGCall.cpp
index 6e5cb71e059e2..174a7f5f15a75 100644
--- a/clang/lib/CodeGen/CGCall.cpp
+++ b/clang/lib/CodeGen/CGCall.cpp
@@ -1432,7 +1432,8 @@ void CodeGenFunction::CreateCoercedStore(llvm::Value 
*Src, Address Dst,
       for (unsigned i = 0, e = STy->getNumElements(); i != e; ++i) {
         Address EltPtr = Builder.CreateStructGEP(Dst, i);
         llvm::Value *Elt = Builder.CreateExtractValue(Src, i);
-        Builder.CreateStore(Elt, EltPtr, DstIsVolatile);
+        auto *I = Builder.CreateStore(Elt, EltPtr, DstIsVolatile);
+        addInstToCurrentSourceAtom(I, Elt);
       }
     } else {
       Builder.CreateStore(Src, Dst.withElementType(SrcTy), DstIsVolatile);
diff --git a/clang/test/KeyInstructions/coerced.c 
b/clang/test/KeyInstructions/coerced.c
new file mode 100644
index 0000000000000..0e2a6464bb906
--- /dev/null
+++ b/clang/test/KeyInstructions/coerced.c
@@ -0,0 +1,24 @@
+// RUN: %clang -gkey-instructions -gno-column-info -x c++ %s -gmlt -S 
-emit-llvm -o - -target x86_64-unknown-linux \
+// RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not 
atomRank
+
+// RUN: %clang -gkey-instructions -gno-column-info -x c %s -gmlt -S -emit-llvm 
-o - -target x86_64-unknown-linux \
+// RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not 
atomRank
+
+typedef struct {
+  void* a;
+  void* b;
+} Struct;
+
+Struct get();
+void store() {
+  // CHECK: %1 = extractvalue { ptr, ptr } %call, 0, !dbg [[G1R2:!.*]]
+  // CHECK: store ptr %1, ptr {{.*}}, !dbg [[G1R1:!.*]]
+  // CHECK: %3 = extractvalue { ptr, ptr } %call, 1, !dbg [[G1R2]]
+  // CHECK: store ptr %3, ptr {{.*}}, !dbg [[G1R1:!.*]]
+  Struct s = get();
+  // CHECK: ret void, !dbg [[G2R1:!.*]]
+}
+
+// CHECK: [[G1R2]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 2)
+// CHECK: [[G1R1]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 1)
+// CHECK: [[G2R1]] = !DILocation({{.*}}, atomGroup: 2, atomRank: 1)

>From d5eee6fa800bf6ac61a9caebf4f3bcf913a36a7f Mon Sep 17 00:00:00 2001
From: Orlando Cazalet-Hyams <orlando.hy...@sony.com>
Date: Mon, 7 Apr 2025 10:23:55 +0100
Subject: [PATCH 2/6] [KeyInstr][Clang] Coerced to int atom

---
 clang/lib/CodeGen/CGCall.cpp         |  3 ++-
 clang/test/KeyInstructions/coerced.c | 34 ++++++++++++++++++++--------
 2 files changed, 27 insertions(+), 10 deletions(-)

diff --git a/clang/lib/CodeGen/CGCall.cpp b/clang/lib/CodeGen/CGCall.cpp
index 174a7f5f15a75..41636bbcda293 100644
--- a/clang/lib/CodeGen/CGCall.cpp
+++ b/clang/lib/CodeGen/CGCall.cpp
@@ -1436,7 +1436,8 @@ void CodeGenFunction::CreateCoercedStore(llvm::Value 
*Src, Address Dst,
         addInstToCurrentSourceAtom(I, Elt);
       }
     } else {
-      Builder.CreateStore(Src, Dst.withElementType(SrcTy), DstIsVolatile);
+      auto * I = Builder.CreateStore(Src, Dst.withElementType(SrcTy), 
DstIsVolatile);
+      addInstToCurrentSourceAtom(I, Src);
     }
   } else if (SrcTy->isIntegerTy()) {
     // If the source is a simple integer, coerce it directly.
diff --git a/clang/test/KeyInstructions/coerced.c 
b/clang/test/KeyInstructions/coerced.c
index 0e2a6464bb906..db570719689fd 100644
--- a/clang/test/KeyInstructions/coerced.c
+++ b/clang/test/KeyInstructions/coerced.c
@@ -1,24 +1,40 @@
 // RUN: %clang -gkey-instructions -gno-column-info -x c++ %s -gmlt -S 
-emit-llvm -o - -target x86_64-unknown-linux \
-// RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not 
atomRank
+// RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not 
atomRank --check-prefixes=CHECK,CHECK-CXX
 
 // RUN: %clang -gkey-instructions -gno-column-info -x c %s -gmlt -S -emit-llvm 
-o - -target x86_64-unknown-linux \
-// RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not 
atomRank
+// RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not 
atomRank --check-prefixes=CHECK,CHECK-C
 
 typedef struct {
   void* a;
   void* b;
 } Struct;
-
 Struct get();
-void store() {
-  // CHECK: %1 = extractvalue { ptr, ptr } %call, 0, !dbg [[G1R2:!.*]]
-  // CHECK: store ptr %1, ptr {{.*}}, !dbg [[G1R1:!.*]]
-  // CHECK: %3 = extractvalue { ptr, ptr } %call, 1, !dbg [[G1R2]]
-  // CHECK: store ptr %3, ptr {{.*}}, !dbg [[G1R1:!.*]]
+
+void test() {
+// CHECK: %1 = extractvalue { ptr, ptr } %call, 0, !dbg [[G1R2:!.*]]
+// CHECK: store ptr %1, ptr {{.*}}, !dbg [[G1R1:!.*]]
+// CHECK: %3 = extractvalue { ptr, ptr } %call, 1, !dbg [[G1R2]]
+// CHECK: store ptr %3, ptr {{.*}}, !dbg [[G1R1:!.*]]
   Struct s = get();
-  // CHECK: ret void, !dbg [[G2R1:!.*]]
+// CHECK: ret void, !dbg [[G2R1:!.*]]
+}
+
+typedef struct { int i; } Int;
+Int getInt(void);
+
+// CHECK-C: @test2
+// CHECK-CXX: @_Z5test2v
+void test2() {
+// CHECK: %call = call i32 @{{(_Z6)?}}getInt{{v?}}(), !dbg [[T2_G1R2:!.*]]
+// CHECK: [[gep:%.*]] = getelementptr inbounds nuw %struct.Int, ptr %i, i32 0, 
i32 0
+// CHECK: store i32 %call, ptr [[gep]]{{.*}}, !dbg [[T2_G1R1:!.*]]
+  Int i = getInt();
+// CHECK: ret void, !dbg [[T2_G2R1:!.*]]
 }
 
 // CHECK: [[G1R2]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 2)
 // CHECK: [[G1R1]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 1)
 // CHECK: [[G2R1]] = !DILocation({{.*}}, atomGroup: 2, atomRank: 1)
+// CHECK: [[T2_G1R2]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 2)
+// CHECK: [[T2_G1R1]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 1)
+// CHECK: [[T2_G2R1]] = !DILocation({{.*}}, atomGroup: 2, atomRank: 1)

>From 391f2b48f69aa660691bc7ac733297529534f41d Mon Sep 17 00:00:00 2001
From: Orlando Cazalet-Hyams <orlando.hy...@sony.com>
Date: Mon, 7 Apr 2025 10:51:49 +0100
Subject: [PATCH 3/6] [KeyInstr][Clang] Coerced ptr to int atom

---
 clang/lib/CodeGen/CGCall.cpp             |  3 ++-
 clang/test/KeyInstructions/coerced-ptr.c | 21 +++++++++++++++++++++
 2 files changed, 23 insertions(+), 1 deletion(-)
 create mode 100644 clang/test/KeyInstructions/coerced-ptr.c

diff --git a/clang/lib/CodeGen/CGCall.cpp b/clang/lib/CodeGen/CGCall.cpp
index 41636bbcda293..57e92ef75dc49 100644
--- a/clang/lib/CodeGen/CGCall.cpp
+++ b/clang/lib/CodeGen/CGCall.cpp
@@ -1424,7 +1424,8 @@ void CodeGenFunction::CreateCoercedStore(llvm::Value 
*Src, Address Dst,
         SrcSize == CGM.getDataLayout().getTypeAllocSize(Dst.getElementType())) 
{
       // If the value is supposed to be a pointer, convert it before storing 
it.
       Src = CoerceIntOrPtrToIntOrPtr(Src, Dst.getElementType(), *this);
-      Builder.CreateStore(Src, Dst, DstIsVolatile);
+      auto *I = Builder.CreateStore(Src, Dst, DstIsVolatile);
+      addInstToCurrentSourceAtom(I, Src);
     } else if (llvm::StructType *STy =
                    dyn_cast<llvm::StructType>(Src->getType())) {
       // Prefer scalar stores to first-class aggregate stores.
diff --git a/clang/test/KeyInstructions/coerced-ptr.c 
b/clang/test/KeyInstructions/coerced-ptr.c
new file mode 100644
index 0000000000000..4face4bc78a88
--- /dev/null
+++ b/clang/test/KeyInstructions/coerced-ptr.c
@@ -0,0 +1,21 @@
+// RUN: %clang -gkey-instructions -gno-column-info -x c++ %s -gmlt -S 
-emit-llvm -o - -target x86_64-windows-msvc \
+// RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not 
atomRank
+
+// RUN: %clang -gkey-instructions -gno-column-info -x c %s -gmlt -S -emit-llvm 
-o - -target x86_64-windows-msvc \
+// RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not 
atomRank
+
+typedef struct { int *p; } Ptr;
+Ptr getPtr();
+void f() {
+// CHECK: %call = call i64{{.*}}, !dbg [[G1R3:!.*]]
+// CHECK: [[gep:%.*]] = getelementptr inbounds nuw %struct.Ptr, ptr %p, i32 0, 
i32 0
+// CHECK: [[i2p:%.*]] = inttoptr i64 %call to ptr, !dbg [[G1R2:!.*]]
+// CHECK: store ptr [[i2p]], ptr [[gep]], align 8, !dbg [[G1R1:!.*]]
+    Ptr p = getPtr();
+// CHECK: ret void, !dbg [[G2R1:!.*]]
+}
+
+// CHECK: [[G1R3]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 3)
+// CHECK: [[G1R2]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 2)
+// CHECK: [[G1R1]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 1)
+// CHECK: [[G2R1]] = !DILocation({{.*}}, atomGroup: 2, atomRank: 1)

>From 3bd7879d0319572c72bdf554a844fb5f311d720f Mon Sep 17 00:00:00 2001
From: Orlando Cazalet-Hyams <orlando.hy...@sony.com>
Date: Mon, 7 Apr 2025 11:31:25 +0100
Subject: [PATCH 4/6] [KeyInstr][Clang] Coerce packed struct atom

---
 clang/lib/CodeGen/CGCall.cpp                |  3 ++-
 clang/test/KeyInstructions/coerced-packed.c | 22 +++++++++++++++++++++
 2 files changed, 24 insertions(+), 1 deletion(-)
 create mode 100644 clang/test/KeyInstructions/coerced-packed.c

diff --git a/clang/lib/CodeGen/CGCall.cpp b/clang/lib/CodeGen/CGCall.cpp
index 57e92ef75dc49..ef9a5e60a0dc2 100644
--- a/clang/lib/CodeGen/CGCall.cpp
+++ b/clang/lib/CodeGen/CGCall.cpp
@@ -1444,7 +1444,8 @@ void CodeGenFunction::CreateCoercedStore(llvm::Value 
*Src, Address Dst,
     // If the source is a simple integer, coerce it directly.
     llvm::Type *DstIntTy = Builder.getIntNTy(DstSize.getFixedValue() * 8);
     Src = CoerceIntOrPtrToIntOrPtr(Src, DstIntTy, *this);
-    Builder.CreateStore(Src, Dst.withElementType(DstIntTy), DstIsVolatile);
+    auto *I = Builder.CreateStore(Src, Dst.withElementType(DstIntTy), 
DstIsVolatile);
+    addInstToCurrentSourceAtom(I, Src);
   } else {
     // Otherwise do coercion through memory. This is stupid, but
     // simple.
diff --git a/clang/test/KeyInstructions/coerced-packed.c 
b/clang/test/KeyInstructions/coerced-packed.c
new file mode 100644
index 0000000000000..476d3f742cec2
--- /dev/null
+++ b/clang/test/KeyInstructions/coerced-packed.c
@@ -0,0 +1,22 @@
+// RUN: %clang -gkey-instructions -gno-column-info -x c++ %s -gmlt -S 
-emit-llvm -o - -target arm64-apple-ios11 \
+// RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not 
atomRank
+
+// RUN: %clang -gkey-instructions -gno-column-info -x c %s -gmlt -S -emit-llvm 
-o - -target arm64-apple-ios11 \
+// RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not 
atomRank
+
+typedef struct {
+  char a;
+  int x;
+} __attribute((packed)) S;
+
+S getS();
+void f() {
+// CHECK: [[call:%.*]] = call i40{{.*}}getS{{.*}}, !dbg [[G1R2:!.*]]
+// CHECK: store i40 [[call]], ptr %s, align 1, !dbg [[G1R1:!.*]]
+    S s = getS();
+// CHECK: ret void, !dbg [[G2R1:!.*]]
+}
+
+// CHECK: [[G1R2]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 2)
+// CHECK: [[G1R1]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 1)
+// CHECK: [[G2R1]] = !DILocation({{.*}}, atomGroup: 2, atomRank: 1)

>From e498cd2b30c9edb77ae6fe356161bc8eb8fb32c6 Mon Sep 17 00:00:00 2001
From: Orlando Cazalet-Hyams <orlando.hy...@sony.com>
Date: Mon, 7 Apr 2025 11:57:46 +0100
Subject: [PATCH 5/6] [KeyInstr][Clang] Coerce through memory atom

---
 clang/lib/CodeGen/CGCall.cpp                  |  9 ++++---
 .../KeyInstructions/coerced-through-memory.c  | 26 +++++++++++++++++++
 2 files changed, 31 insertions(+), 4 deletions(-)
 create mode 100644 clang/test/KeyInstructions/coerced-through-memory.c

diff --git a/clang/lib/CodeGen/CGCall.cpp b/clang/lib/CodeGen/CGCall.cpp
index ef9a5e60a0dc2..e2aba5f65eaf0 100644
--- a/clang/lib/CodeGen/CGCall.cpp
+++ b/clang/lib/CodeGen/CGCall.cpp
@@ -1459,10 +1459,11 @@ void CodeGenFunction::CreateCoercedStore(llvm::Value 
*Src, Address Dst,
     RawAddress Tmp =
         CreateTempAllocaForCoercion(*this, SrcTy, Dst.getAlignment());
     Builder.CreateStore(Src, Tmp);
-    Builder.CreateMemCpy(Dst.emitRawPointer(*this),
-                         Dst.getAlignment().getAsAlign(), Tmp.getPointer(),
-                         Tmp.getAlignment().getAsAlign(),
-                         Builder.CreateTypeSize(IntPtrTy, DstSize));
+    auto *I = Builder.CreateMemCpy(
+        Dst.emitRawPointer(*this), Dst.getAlignment().getAsAlign(),
+        Tmp.getPointer(), Tmp.getAlignment().getAsAlign(),
+        Builder.CreateTypeSize(IntPtrTy, DstSize));
+    addInstToCurrentSourceAtom(I, Src);
   }
 }
 
diff --git a/clang/test/KeyInstructions/coerced-through-memory.c 
b/clang/test/KeyInstructions/coerced-through-memory.c
new file mode 100644
index 0000000000000..7bdef09b88f5a
--- /dev/null
+++ b/clang/test/KeyInstructions/coerced-through-memory.c
@@ -0,0 +1,26 @@
+// RUN: %clang -gkey-instructions -gno-column-info -x c++ %s -gmlt -S 
-emit-llvm -o - -target aarch64-windows-msvc \
+// RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not 
atomRank
+
+// RUN: %clang -gkey-instructions -gno-column-info -x c %s -gmlt -S -emit-llvm 
-o - -target aarch64-windows-msvc \
+// RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not 
atomRank
+
+typedef struct {
+  short a;
+  int b;
+  short c;
+} S;
+
+S getS(void);
+
+void f() {
+// CHECK: %call = call [2 x i64] {{.*}}getS{{.*}}(), !dbg [[G1R2:!.*]]
+//// Note: The store to the tmp alloca isn't part of the atom.
+// CHECK: store [2 x i64] %call, ptr %tmp.coerce, align 8
+// CHECK: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %s, ptr align 8 
%tmp.coerce, i64 12, i1 false), !dbg [[G1R1:!.*]]
+  S s = getS();
+// CHECK: ret void, !dbg [[G2R1:!.*]]
+}
+
+// CHECK: [[G1R2]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 2)
+// CHECK: [[G1R1]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 1)
+// CHECK: [[G2R1]] = !DILocation({{.*}}, atomGroup: 2, atomRank: 1)

>From 47712a2e98849cdbd423c8683d47d63f8e214295 Mon Sep 17 00:00:00 2001
From: Orlando Cazalet-Hyams <orlando.hy...@sony.com>
Date: Wed, 21 May 2025 17:16:03 +0100
Subject: [PATCH 6/6] cc1

---
 clang/test/KeyInstructions/coerced-packed.c         | 4 ++--
 clang/test/KeyInstructions/coerced-ptr.c            | 4 ++--
 clang/test/KeyInstructions/coerced-through-memory.c | 4 ++--
 clang/test/KeyInstructions/coerced.c                | 4 ++--
 4 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/clang/test/KeyInstructions/coerced-packed.c 
b/clang/test/KeyInstructions/coerced-packed.c
index 476d3f742cec2..d3e86c5ec9e39 100644
--- a/clang/test/KeyInstructions/coerced-packed.c
+++ b/clang/test/KeyInstructions/coerced-packed.c
@@ -1,7 +1,7 @@
-// RUN: %clang -gkey-instructions -gno-column-info -x c++ %s -gmlt -S 
-emit-llvm -o - -target arm64-apple-ios11 \
+// RUN: %clang_cc1 -gkey-instructions -gno-column-info -x c++ %s 
%clang_cc1-debug-info-kind=line-tables-only -emit-llvm -o - -target 
arm64-apple-ios11 \
 // RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not 
atomRank
 
-// RUN: %clang -gkey-instructions -gno-column-info -x c %s -gmlt -S -emit-llvm 
-o - -target arm64-apple-ios11 \
+// RUN: %clang_cc1 -gkey-instructions -gno-column-info -x c %s 
%clang_cc1-debug-info-kind=line-tables-only -emit-llvm -o - -target 
arm64-apple-ios11 \
 // RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not 
atomRank
 
 typedef struct {
diff --git a/clang/test/KeyInstructions/coerced-ptr.c 
b/clang/test/KeyInstructions/coerced-ptr.c
index 4face4bc78a88..6f5cdf677a996 100644
--- a/clang/test/KeyInstructions/coerced-ptr.c
+++ b/clang/test/KeyInstructions/coerced-ptr.c
@@ -1,7 +1,7 @@
-// RUN: %clang -gkey-instructions -gno-column-info -x c++ %s -gmlt -S 
-emit-llvm -o - -target x86_64-windows-msvc \
+// RUN: %clang_cc1 -gkey-instructions -gno-column-info -x c++ %s 
%clang_cc1-debug-info-kind=line-tables-only -emit-llvm -o - -target 
x86_64-windows-msvc \
 // RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not 
atomRank
 
-// RUN: %clang -gkey-instructions -gno-column-info -x c %s -gmlt -S -emit-llvm 
-o - -target x86_64-windows-msvc \
+// RUN: %clang_cc1 -gkey-instructions -gno-column-info -x c %s 
%clang_cc1-debug-info-kind=line-tables-only -emit-llvm -o - -target 
x86_64-windows-msvc \
 // RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not 
atomRank
 
 typedef struct { int *p; } Ptr;
diff --git a/clang/test/KeyInstructions/coerced-through-memory.c 
b/clang/test/KeyInstructions/coerced-through-memory.c
index 7bdef09b88f5a..7560b500e0fcc 100644
--- a/clang/test/KeyInstructions/coerced-through-memory.c
+++ b/clang/test/KeyInstructions/coerced-through-memory.c
@@ -1,7 +1,7 @@
-// RUN: %clang -gkey-instructions -gno-column-info -x c++ %s -gmlt -S 
-emit-llvm -o - -target aarch64-windows-msvc \
+// RUN: %clang_cc1 -gkey-instructions -gno-column-info -x c++ %s 
%clang_cc1-debug-info-kind=line-tables-only -emit-llvm -o - -target 
aarch64-windows-msvc \
 // RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not 
atomRank
 
-// RUN: %clang -gkey-instructions -gno-column-info -x c %s -gmlt -S -emit-llvm 
-o - -target aarch64-windows-msvc \
+// RUN: %clang_cc1 -gkey-instructions -gno-column-info -x c %s 
%clang_cc1-debug-info-kind=line-tables-only -emit-llvm -o - -target 
aarch64-windows-msvc \
 // RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not 
atomRank
 
 typedef struct {
diff --git a/clang/test/KeyInstructions/coerced.c 
b/clang/test/KeyInstructions/coerced.c
index db570719689fd..a02c6c90ec77a 100644
--- a/clang/test/KeyInstructions/coerced.c
+++ b/clang/test/KeyInstructions/coerced.c
@@ -1,7 +1,7 @@
-// RUN: %clang -gkey-instructions -gno-column-info -x c++ %s -gmlt -S 
-emit-llvm -o - -target x86_64-unknown-linux \
+// RUN: %clang_cc1 -gkey-instructions -gno-column-info -x c++ %s 
%clang_cc1-debug-info-kind=line-tables-only -emit-llvm -o - -target 
x86_64-unknown-linux \
 // RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not 
atomRank --check-prefixes=CHECK,CHECK-CXX
 
-// RUN: %clang -gkey-instructions -gno-column-info -x c %s -gmlt -S -emit-llvm 
-o - -target x86_64-unknown-linux \
+// RUN: %clang_cc1 -gkey-instructions -gno-column-info -x c %s 
%clang_cc1-debug-info-kind=line-tables-only -emit-llvm -o - -target 
x86_64-unknown-linux \
 // RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not 
atomRank --check-prefixes=CHECK,CHECK-C
 
 typedef struct {

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

Reply via email to