[llvm] [CaptureTracking] Compute results with and without return capture (PR #195857)
Antonio Frighetto via llvm-commits
llvm-commits at lists.llvm.org
Thu May 7 06:39:14 PDT 2026
================
@@ -234,13 +236,13 @@ EarliestEscapeAnalysis::getCapturesBefore(const Value *Object,
auto Iter = EarliestEscapes.try_emplace(Object);
if (Iter.second) {
- std::pair<Instruction *, CaptureComponents> EarliestCapture =
- FindEarliestCapture(Object, *DT.getRoot()->getParent(),
- /*ReturnCaptures=*/false, DT,
+ std::pair<Instruction *, CaptureResult> EarliestCapture =
+ FindEarliestCapture(Object, *DT.getRoot()->getParent(), DT,
CaptureComponents::Provenance);
if (EarliestCapture.first)
Inst2Obj[EarliestCapture.first].push_back(Object);
- Iter.first->second = EarliestCapture;
+ Iter.first->second = {EarliestCapture.first,
+ EarliestCapture.second.WithoutRet};
----------------
antoniofrighetto wrote:
Yes, thanks! Should we do this for PointerMayBeCaptured() too at this point (restore as it was, and hide CaptureResult altogether)? From what I can tell, we still need two separate calls in DSE...
https://github.com/llvm/llvm-project/pull/195857
More information about the llvm-commits
mailing list