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.
Details
Details
- Reviewers
asbirlea sanjoy chandlerc - Commits
- rZORG6f2dd2456872: [LICM] Allow AliasSetMap to contain top-level loops.
rZORG3c6445c4193e: [LICM] Allow AliasSetMap to contain top-level loops.
rG6f2dd2456872: [LICM] Allow AliasSetMap to contain top-level loops.
rG3c6445c4193e: [LICM] Allow AliasSetMap to contain top-level loops.
rG53c9d585b5b1: [LICM] Allow AliasSetMap to contain top-level loops.
rL360704: [LICM] Allow AliasSetMap to contain top-level loops.
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
Thank you for this! This LGTM.
The caching of AliasSetTracker objects will go away when MemorySSA is enabled.
Comment Actions
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?