[llvm-bugs] [Bug 46854] New: LAA crashes with -globals-aa -loop-load-elim

via llvm-bugs llvm-bugs at lists.llvm.org
Sun Jul 26 14:33:13 PDT 2020


https://bugs.llvm.org/show_bug.cgi?id=46854

            Bug ID: 46854
           Summary: LAA crashes with -globals-aa -loop-load-elim
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Loop Optimizer
          Assignee: unassignedbugs at nondot.org
          Reporter: florian_hahn at apple.com
                CC: llvm-bugs at lists.llvm.org

The IR below is reduced from the reproducer shared on llvm-dev
http://lists.llvm.org/pipermail/llvm-dev/2020-July/143761.html

It crashes with `opt -globals-aa -loop-load-elim`

target datalayout =
"e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-ni:7"
target triple = "amdgcn-amd-amdhsa"

%struct.foo = type { %struct.pluto, i8, i8*, i32 }
%struct.pluto = type { i32, i32, i32, %struct.wombat*, i32, i32, i32 }
%struct.wombat = type { %struct.barney }
%struct.barney = type { <2 x float> }

@global = external protected local_unnamed_addr addrspace(4)
externally_initialized global %struct.foo, align 8
@global.1 = internal unnamed_addr addrspace(3) constant [4000 x float] undef,
align 16

; Function Attrs: nounwind
define protected amdgpu_kernel void @widget(i32 %arg, i32 %arg1) #0 {
bb:
  %tmp = getelementptr inbounds [4000 x float], [4000 x float] addrspace(3)*
@global.1, i32 0, i32 %arg
  %tmp2 = load %struct.wombat*, %struct.wombat* addrspace(4)* getelementptr
inbounds (%struct.foo, %struct.foo addrspace(4)* @global, i64 0, i32 0, i32 3),
align 8
  %tmp3 = getelementptr inbounds %struct.wombat, %struct.wombat* %tmp2, i64
undef, i32 0
  %tmp4 = bitcast %struct.barney* %tmp3 to i64*
  br label %bb5

bb5:                                              ; preds = %bb6, %bb
  br label %bb6

bb6:                                              ; preds = %bb6, %bb5
  %tmp7 = phi i32 [ undef, %bb5 ], [ %tmp19, %bb6 ]
  %tmp8 = mul nsw i32 %tmp7, undef
  %tmp9 = add i32 %tmp8, undef
  %tmp10 = sext i32 %tmp9 to i64
  %tmp11 = getelementptr inbounds %struct.wombat, %struct.wombat* %tmp2, i64
%tmp10
  %tmp12 = bitcast %struct.wombat* %tmp11 to i64*
  %tmp13 = load i64, i64* %tmp12, align 8
  %tmp14 = srem i32 1, %arg1
  %tmp15 = add nuw nsw i32 %tmp14, 1
  %tmp16 = getelementptr inbounds [4000 x float], [4000 x float] addrspace(3)*
@global.1, i32 0, i32 %tmp15
  %tmp17 = load float, float addrspace(3)* %tmp16, align 4
  %tmp18 = load float, float addrspace(3)* %tmp, align 4
  store i64 %tmp13, i64* %tmp4, align 8
  %tmp19 = add nsw i32 %tmp7, 1
  %tmp20 = icmp slt i32 %tmp7, 3
  br i1 %tmp20, label %bb6, label %bb5
}

attributes #0 = { nounwind }

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20200726/6e201907/attachment.html>


More information about the llvm-bugs mailing list