[llvm-branch-commits] [llvm] [KeyInstr] Inline atom info (PR #133481)
Stephen Tozer via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue Apr 8 08:55:52 PDT 2025
================
@@ -0,0 +1,53 @@
+; RUN: opt %s -passes=inline -S -o - | FileCheck %s
+
+;; Inline `f` into `g`. The inlined assignment store and add should retain
+;; their atom info.
+
+; CHECK: _Z1gi
+; CHECK-NOT: _Z1fi
+; CHECK: %add.i = add nsw i32 %mul.i, 1, !dbg [[G1R2:!.*]]
+; CHECK-NEXT: store i32 %add.i, ptr %x.i, align 4, !dbg [[G1R1:!.*]]
+
+; CHECK: [[G1R2]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 2)
+; CHECK: [[G1R1]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 1)
+
+define hidden void @_Z1fi(i32 noundef %a) !dbg !11 {
+entry:
+ %a.addr = alloca i32, align 4
+ %x = alloca i32, align 4
+ store i32 %a, ptr %a.addr, align 4
+ %0 = load i32, ptr %a.addr, align 4, !dbg !18
+ %mul = mul nsw i32 %0, 2, !dbg !18
+ %add = add nsw i32 %mul, 1, !dbg !19
+ store i32 %add, ptr %x, align 4, !dbg !20
+ ret void, !dbg !22
+}
+
+define hidden void @_Z1gi(i32 noundef %b) !dbg !23 {
+entry:
+ %b.addr = alloca i32, align 4
+ store i32 %b, ptr %b.addr, align 4
+ %0 = load i32, ptr %b.addr, align 4, !dbg !24
+ call void @_Z1fi(i32 noundef %0), !dbg !24
+ ret void, !dbg !25
----------------
SLTozer wrote:
Nit, could remove DILocations from the instructions that aren't relevant to the test.
https://github.com/llvm/llvm-project/pull/133481
More information about the llvm-branch-commits
mailing list