[clang] [Clang][CodeGen] Do not emit lifetime intrinsics for coro promise alloca (PR #140548)
Weibo He via cfe-commits
cfe-commits at lists.llvm.org
Mon May 19 07:27:03 PDT 2025
NewSigma wrote:
Here is a example
``` LLVM
define i32 @fn() {
entry:
%__promise = alloca i32, align 4
%id = call token @llvm.coro.id(i32 16, ptr nonnull %__promise, ptr nonnull @fn, ptr null)
%hdl = call ptr @llvm.coro.begin(token %id, ptr null) #14
%promise.addr = call ptr @llvm.coro.promise(ptr %hdl, i32 4, i1 false) #14
call void @llvm.lifetime.start.p0(i64 4, ptr %promise.addr) #2
store i32 5, ptr %promise.addr, align 4 ; DSE eliminates
call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %promise.addr) #2
%0 = call i1 @llvm.coro.end(ptr null, i1 false, token none) #14
%value = load i32, ptr %promise.addr, align 4
ret i32 %value
}
```
https://github.com/llvm/llvm-project/pull/140548
More information about the cfe-commits
mailing list