This is an archive of the discontinued LLVM Phabricator instance.

[clang][dataflow] In `equivalentTo()`, ignore expression locations that are unlikely to matter.
Needs ReviewPublic

Authored by mboehme on Aug 2 2023, 12:17 AM.

Details

Summary

The locations of some glvalue expressions are discarded or are merely used in a LValueToRValue cast. However, the corresponding entries in ExprToLoc can currently prevent convergence.

As the framework itself does not query these locations, and a particular analysis is unlikely to query them either, we ignore them for the purpose of determining whether a block has converged (in Environment::equivalentTo()).

This patch adds two tests that do not converge without the other changes in the patch.

Diff Detail

Event Timeline

mboehme created this revision.Aug 2 2023, 12:17 AM
Herald added a project: Restricted Project. · View Herald Transcript
mboehme requested review of this revision.Aug 2 2023, 12:17 AM
Herald added a project: Restricted Project. · View Herald TranscriptAug 2 2023, 12:17 AM
Herald added a subscriber: cfe-commits. · View Herald Transcript
mboehme edited the summary of this revision. (Show Details)Aug 2 2023, 12:17 AM
mboehme added reviewers: ymandel, xazax.hun.
mboehme updated this revision to Diff 546456.Aug 2 2023, 7:15 AM

Add a FIXME noting that this is a temporary solution.