[PATCH] D84630: [StackSafety] Skip ambiguous lifetime analysis

Chuanqi Xu via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 26 00:12:52 PDT 2020


ChuanqiXu added inline comments.


================
Comment at: llvm/lib/Analysis/StackLifetime.cpp:78
+        continue;
+      const AllocaInst *AI = llvm::findAllocaForValue(II->getArgOperand(1));
+      if (!AI) {
----------------
Maybe we can't use `findAllocaForValue` to find alloca for lifetime marker. Here I find a pattern:
```
a = alloca struct ...
b = getelementptr from a
lifetime start (b)
/// ...
lifetime end (b)
```
And the code here would treat the lifetime span of b, which is part of a, as the whole lifetime of a. But the lifetime span of other component of a may not be the same with the lifetime span of b. I think it may cause mismatch.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D84630



More information about the llvm-commits mailing list