[PATCH] D150296: [ObjC][ARC] Fix non-deterministic behavior in ProvenanceAnalysis

Akira Hatanaka via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 10 13:22:07 PDT 2023


ahatanak created this revision.
ahatanak added reviewers: akyrtzi, fhahn.
Herald added subscribers: StephenFan, mgrang, hiraditya.
Herald added a project: All.
ahatanak requested review of this revision.
Herald added a project: LLVM.

Stop reordering the pointers passed in `ProvenanceAnalysis::related` based on their values. That was causing non-determinism as the call to `relatedCheck(A, B)` isn't guaranteed to return the same result as `relatedCheck(B, A)`.

Revert the following three commits (except the original test case in related-check.ll):

665e47777df17db406c698d57b4f3c28d67c432e <https://reviews.llvm.org/rG665e47777df17db406c698d57b4f3c28d67c432e>
295861514e0d1e48df2918b630dd692ac27ee0de <https://reviews.llvm.org/rG295861514e0d1e48df2918b630dd692ac27ee0de>
d877e3fe71676b0ff10410d80456b35cdd5bf796 <https://reviews.llvm.org/rGd877e3fe71676b0ff10410d80456b35cdd5bf796>

These changes shouldn't be necessary once the call to `std::swap` is removed.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D150296

Files:
  llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.cpp
  llvm/test/Transforms/ObjCARC/related-check.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D150296.521076.patch
Type: text/x-patch
Size: 6050 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230510/24e1eb69/attachment.bin>


More information about the llvm-commits mailing list