[llvm] [DebugInfo][GlobalOpt] Preserve source locs for optimized loads (PR #134828)
Orlando Cazalet-Hyams via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 23 01:25:23 PDT 2025
================
@@ -0,0 +1,99 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
+; RUN: opt < %s -p=globalopt -S | FileCheck %s
+
+;; Test that when we are able to simplify uses of global variables with loads of
+;; newly generated bool values, we transfer debuglocs over correctly.
+
+target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-unknown-linux-gnu"
+
+ at global = internal global i32 0
+ at global.1 = internal unnamed_addr global ptr null, align 8
+
+define void @ham() !dbg !7 {
+; CHECK-LABEL: define void @ham(
+; CHECK-SAME: ) local_unnamed_addr !dbg [[DBG4:![0-9]+]] {
+; CHECK-NEXT: [[BB:.*:]]
+; CHECK-NEXT: [[LOAD_B:%.*]] = load i1, ptr @global, align 1, !dbg [[DBG6:![0-9]+]]
+; CHECK-NEXT: [[LOAD_B1:%.*]] = load i1, ptr @global, align 1, !dbg [[DBG6]]
+; CHECK-NEXT: [[LOAD:%.*]] = zext i1 [[LOAD_B1]] to i32, !dbg [[DBG6]]
+; CHECK-NEXT: store i1 [[LOAD_B]], ptr @global, align 1
+; CHECK-NEXT: ret void
+;
+bb:
+ %load = load i32, ptr @global, align 4, !dbg !4
+ store i32 %load, ptr @global, align 4
+ ret void
+}
+
+define void @hoge() {
----------------
OCHyams wrote:
What's this function testing?
https://github.com/llvm/llvm-project/pull/134828
More information about the llvm-commits
mailing list