Page MenuHomePhabricator

[LICM] Allow AliasSetMap to contain top-level loops.
ClosedPublic

Authored by fhahn on May 14 2019, 8:32 AM.

Details

Summary

When an outer loop gets deleted by a different pass, before LICM visits
it, we cannot clean up its sub-loops in AliasSetMap, because at the
point we receive the deleteAnalysisLoop callback for the outer loop, the loop
object is already invalid and we cannot access its sub-loops any longer.

Diff Detail

Repository
rL LLVM

Event Timeline

fhahn created this revision.May 14 2019, 8:32 AM
Herald added a project: Restricted Project. · View Herald TranscriptMay 14 2019, 8:32 AM
Herald added a subscriber: hiraditya. · View Herald Transcript
asbirlea accepted this revision.May 14 2019, 9:11 AM

Thank you for this! This LGTM.
The caching of AliasSetTracker objects will go away when MemorySSA is enabled.

This revision is now accepted and ready to land.May 14 2019, 9:11 AM
This revision was automatically updated to reflect the committed changes.

Hi,

@fhahn : I noticed that https://bugs.llvm.org/show_bug.cgi?id=31141 stopped crashing with this patch, do you think it's by accident or can that possibly be closed now?