[PATCH] D24854: [SROA] Drop lifetime.start/end intrinsics when they block promotion.

Davide Italiano via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 8 18:50:46 PST 2016


davide added a comment.

I was debugging a testcase reduced from a PS4 title when I realized Eli already provided a fix
An alternative testcase, FWIW.

  %myclass = type { [16 x i32] }
  
  declare void @llvm.lifetime.start(i64, i8* nocapture)
  
  define void @patatino() {
    %gb = alloca [2 x %myclass*]
    %tmp = bitcast [2 x %myclass*]* %gb to i8*
    call void @llvm.lifetime.start(i64 16, i8* %tmp)
    %tmp1 = getelementptr [2 x %myclass*], [2 x %myclass*]* %gb, i64 0, i64 0
    store %myclass* undef, %myclass** %tmp1
    %tmp3 = bitcast %myclass** %tmp1 to <4 x i64>*
    %tmp4 = load <4 x i64>, <4 x i64>* %tmp3
    ret void
  }


Repository:
  rL LLVM

https://reviews.llvm.org/D24854





More information about the llvm-commits mailing list