NewSigma wrote:
After further consideration, I think this is not a satisfactory solution to the
issue. I may revisit it if I develop a concrete plan. Apologies for any
inconvenience.
https://github.com/llvm/llvm-project/pull/140548
___
cfe-commits ma
https://github.com/NewSigma closed
https://github.com/llvm/llvm-project/pull/140548
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/NewSigma created
https://github.com/llvm/llvm-project/pull/140548
Coro promise has same lifetime as coro frame. It do not need explicit lifetime
guarding. If we add lifetimes to it, middle end passes may assume promise dead
after lifetime.end, leading to mis-optimizations.
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.p
https://github.com/NewSigma updated
https://github.com/llvm/llvm-project/pull/140548
>From d2e1a8d8a650f2a38387c500f942a0c6722c8a84 Mon Sep 17 00:00:00 2001
From: NewSigma
Date: Mon, 19 May 2025 22:12:45 +0800
Subject: [PATCH 1/2] Do not emit lifetime intrinsics for coro promise alloca
---
cl
@@ -1343,6 +1343,11 @@ llvm::Value
*CodeGenFunction::EmitLifetimeStart(llvm::TypeSize Size,
if (!ShouldEmitLifetimeMarkers)
return nullptr;
+ // No lifetimes on promise alloca, or middle end passes will assume promise
+ // dead after lifetime.end, leading to mis-optim
https://github.com/NewSigma created
https://github.com/llvm/llvm-project/pull/144319
As suggested by @ChuanqiXu9 in #14 , I propose LifetimeMovePass, which was
previously part of the CoroSplit pass, should now appear as a general pass.
Lifetime markers determine whether we place alloca on
https://github.com/NewSigma updated
https://github.com/llvm/llvm-project/pull/144319
>From 584d47295f7719f96ee77d32a6b4329f82be Mon Sep 17 00:00:00 2001
From: NewSigma
Date: Mon, 16 Jun 2025 15:36:53 +0800
Subject: [PATCH 1/8] Add LifetimeMovePass
---
clang/test/CodeGenCoroutines/pr56919.
https://github.com/NewSigma updated
https://github.com/llvm/llvm-project/pull/144319
>From 584d47295f7719f96ee77d32a6b4329f82be Mon Sep 17 00:00:00 2001
From: NewSigma
Date: Mon, 16 Jun 2025 15:36:53 +0800
Subject: [PATCH 1/9] Add LifetimeMovePass
---
clang/test/CodeGenCoroutines/pr56919.
NewSigma wrote:
RFC: https://discourse.llvm.org/t/rfc-add-lifetimemovepass/87005
https://github.com/llvm/llvm-project/pull/144319
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/NewSigma updated
https://github.com/llvm/llvm-project/pull/144319
>From 584d47295f7719f96ee77d32a6b4329f82be Mon Sep 17 00:00:00 2001
From: NewSigma
Date: Mon, 16 Jun 2025 15:36:53 +0800
Subject: [PATCH 01/10] Add LifetimeMovePass
---
clang/test/CodeGenCoroutines/pr5691
NewSigma wrote:
cc @ChuanqiXu9 @nikic
https://github.com/llvm/llvm-project/pull/144319
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/NewSigma updated
https://github.com/llvm/llvm-project/pull/144319
>From 584d47295f7719f96ee77d32a6b4329f82be Mon Sep 17 00:00:00 2001
From: NewSigma
Date: Mon, 16 Jun 2025 15:36:53 +0800
Subject: [PATCH 1/4] Add LifetimeMovePass
---
clang/test/CodeGenCoroutines/pr56919.
@@ -0,0 +1,223 @@
+//===- LifetimeMove.cpp - Narrowing lifetimes
-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Ap
https://github.com/NewSigma edited
https://github.com/llvm/llvm-project/pull/144319
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/NewSigma created
https://github.com/llvm/llvm-project/pull/14
Lifetime markers determine whether we place alloca on the frame or on the
stack. We can move `lifetime.end` to an optimized position to reduce the
coroutine frame size. I propose finding the suspend point that
https://github.com/NewSigma updated
https://github.com/llvm/llvm-project/pull/14
>From 771ff1c9cc7d4b7f95d78d4219288d5c7ca0b83e Mon Sep 17 00:00:00 2001
From: NewSigma
Date: Thu, 5 Jun 2025 21:51:06 +0800
Subject: [PATCH 1/2] Rise lifetime.end to get smaller frame size
---
clang/test/Code
NewSigma wrote:
It sounds interesting, though I still don’t have a clear idea about it. What
are the benefits for non-coroutine code, and where exactly should we place it
in the pipeline?
https://github.com/llvm/llvm-project/pull/14
___
cfe-commi
NewSigma wrote:
Prefer make it a general pass
https://github.com/llvm/llvm-project/pull/14
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/NewSigma closed
https://github.com/llvm/llvm-project/pull/14
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,341 @@
+//===- LifetimeMove.cpp - Narrowing lifetimes
-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Ap
https://github.com/NewSigma edited
https://github.com/llvm/llvm-project/pull/144319
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/NewSigma ready_for_review
https://github.com/llvm/llvm-project/pull/144319
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
NewSigma wrote:
CI fail seems not related.
I'm marking it ready for review because it works in my tests with ASAN enabled,
both for coro code and non-coro code. The non-coro part should be landed in
another PR if current patch looks good.
https://github.com/llvm/llvm-project/pull/144319
_
@@ -0,0 +1,341 @@
+//===- LifetimeMove.cpp - Narrowing lifetimes
-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Ap
25 matches
Mail list logo