[PATCH] D91305: [Coroutine] Allocas used by StoreInst does not always escape

Xun Li via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 13 21:44:15 PST 2020


lxfind added a comment.

> Do we really need handle this in non-optimized mode? @bruno I'm afraid that this patch may affect the debugging quality fixed in D90772 <https://reviews.llvm.org/D90772>, @lxfind, have you ever checked this?

I believe we do. As I mentioned in the second reason above, there should be absolutely no frame access after the call to await_suspend() until the symmetric transfer, since the frame may have been destroyed in await_suspend(). However based on the current way of determining whether an alloca should live in the frame, almost all allocas will be put on the frame in O0 because of the common use of store instructions. Such issue leads to TSAN failures since TSAN usually runs in O0 without lifetime intrinsics.

This patch doesn't affects debugability. In general, whether or not an alloca should be put on the frame should never affect debugability. If so that would be a problem that needs to be fixed alone.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D91305



More information about the llvm-commits mailing list