[PATCH] D153464: Revert "[CaptureTracking] Ignore ephemeral values when determining pointer escapeness"

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 22 01:15:51 PDT 2023


nikic added a comment.

In D153464#4440034 <https://reviews.llvm.org/D153464#4440034>, @nikic wrote:

> The problematic interaction is probably with this code: https://github.com/llvm/llvm-project/blob/88f07a311947f88de82ad2de9b2d6a26eba21343/llvm/lib/Analysis/BasicAliasAnalysis.cpp#L880-L886 It assumes that non-nocapture/byval arguments have already been covered by the capture check.

I tried dropping the check, and that doesn't seem to have significant compile-time impact: http://llvm-compile-time-tracker.com/compare.php?from=565c7525b9d642867837d5715c10afed2fa73970&to=1adcff6949aecc85f098f0a324389b7f48be0b7c&stat=instructions:u There are some changes to code size though.

I think this short-circuiting of non-noncapture arguments could also become a problem with certain extensions to CaptureTracking -- e.g. if for readnone/noreturn calls we did not require a void return but instead followed the return value. We'd also get wrong results in that case.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D153464



More information about the llvm-commits mailing list