[PATCH] D153453: [MemCpyOpt] implement single BB stack-move optimization which unify the static unescaped allocas

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 15 03:48:31 PDT 2023


nikic added a comment.

Here's a reproducer for the assertion failure:

  define i32 @test() {
    %src = alloca %struct.Foo, align 4
    %dest = alloca %struct.Foo, align 4
    call void @llvm.lifetime.start.p0(i64 12, ptr nocapture %src)
    store %struct.Foo { i32 10, i32 20, i32 30 }, ptr %src
    call void @llvm.memcpy.p0.p0.i64(ptr align 4 %dest, ptr align 4 %src, i64 12, i1 false)
    call void @llvm.lifetime.end.p0(i64 12, ptr nocapture %src)
    %v = load i32, ptr %dest
    ret i32 %v
  }


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D153453/new/

https://reviews.llvm.org/D153453



More information about the llvm-commits mailing list