This is an archive of the discontinued LLVM Phabricator instance.

[ObjCARC] Fix non-determinism
ClosedPublic

Authored by kyulee on Mar 17 2022, 1:55 PM.

Details

Summary

We often failed in the assertion, non-deterministically with a large IR:

Assertion `notDifferentParent(LocA.Ptr, LocB.Ptr) && "BasicAliasAnalysis doesn't support interprocedural queries."

Looking at the comment in https://reviews.llvm.org/D87806, it appears it's actually a module pass for new PM while the legacy PM still works as a function pass.
The fix is to align the same behavior in between new PM and old PM, which initializes ObjCARCContract for each function.

Diff Detail

Event Timeline

kyulee created this revision.Mar 17 2022, 1:55 PM
Herald added a project: Restricted Project. · View Herald TranscriptMar 17 2022, 1:55 PM
kyulee requested review of this revision.Mar 17 2022, 1:55 PM
Herald added a project: Restricted Project. · View Herald TranscriptMar 17 2022, 1:55 PM
aeubanks accepted this revision.Mar 17 2022, 2:54 PM

the new PM pass was changed to be a function pass in https://reviews.llvm.org/D93743, but either way this seems fine

This revision is now accepted and ready to land.Mar 17 2022, 2:54 PM
This revision was landed with ongoing or failed builds.Mar 17 2022, 3:01 PM
This revision was automatically updated to reflect the committed changes.