[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