This is an archive of the discontinued LLVM Phabricator instance.

[SCEV] Verify block disposition cache.
ClosedPublic

Authored by fhahn on Sep 23 2022, 6:31 AM.

Details

Summary

This extends the existing SCEV verification to catch cache invalidation
issues as in #57837.

The validation logic is similar to the recently added loop disposition
cache validation in bb68b2402daa9.

Diff Detail

Event Timeline

fhahn created this revision.Sep 23 2022, 6:31 AM
Herald added a project: Restricted Project. · View Herald TranscriptSep 23 2022, 6:31 AM
fhahn requested review of this revision.Sep 23 2022, 6:31 AM
Herald added a project: Restricted Project. · View Herald TranscriptSep 23 2022, 6:31 AM
nikic added inline comments.Sep 26 2022, 6:17 AM
llvm/lib/Analysis/ScalarEvolution.cpp
14032

Hm, do we have issues with dangling blocks here? Did you check whether enabling scev verification + asan works (or maybe quicker: add a manual check that the BB is in the function block set).

fhahn marked an inline comment as done.Sep 26 2022, 12:17 PM
fhahn added inline comments.
llvm/lib/Analysis/ScalarEvolution.cpp
14032

I think the last issue should be fixed with D134663, at least when bootstrapping clang with ASAN on arm64 macOS

nikic accepted this revision.Sep 26 2022, 12:19 PM

LGTM

This revision is now accepted and ready to land.Sep 26 2022, 12:19 PM
fhahn updated this revision to Diff 466585.Oct 10 2022, 12:32 PM
fhahn marked an inline comment as done.

Rebased, will land shortly.

This revision was landed with ongoing or failed builds.Oct 10 2022, 12:42 PM
This revision was automatically updated to reflect the committed changes.