================ @@ -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 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits