This is an archive of the discontinued LLVM Phabricator instance.

Preserve assumption cache in loop-rotate
ClosedPublic

Authored by efriedma on Nov 8 2016, 5:08 PM.

Details

Summary

No testcase included because I can't figure out how to reduce it. (It's easy to write a testcase where rotation clones an assume, but that doesn't actually seem to trigger the crash in opt on its own; maybe an issue with the laziness?)

Diff Detail

Repository
rL LLVM

Event Timeline

efriedma updated this revision to Diff 77290.Nov 8 2016, 5:08 PM
efriedma retitled this revision from to Preserve assumption cache in loop-rotate.
efriedma updated this object.
efriedma added a reviewer: majnemer.
efriedma set the repository for this revision to rL LLVM.
efriedma added a subscriber: llvm-commits.
hfinkel accepted this revision.Nov 8 2016, 5:12 PM
hfinkel added a reviewer: hfinkel.
hfinkel added a subscriber: hfinkel.

LGTM

What assert are you hitting?

This revision is now accepted and ready to land.Nov 8 2016, 5:12 PM

Assertion:

clang++: [source]/lib/Analysis/AssumptionCache.cpp:127: virtual void llvm::AssumptionCacheTracker::verifyAnalysis() const: Assertion `AssumptionSet.count(cast<CallInst>(&II)) && "Assumption in scanned function not in cache"' failed.

Triggers in AssumptionCacheTracker::doFinalization().

This revision was automatically updated to reflect the committed changes.