A memory access defined on function entry cannot be locally dominated by another memory access.
The patch was split from D19338 which exposes the problem.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
Thanks for the patch!
ISTM this function is a bit broken in general if Dominator == Dominatee (since a node technically does dominate itself). I know it's my fault, but can you add a check for that as well, please? :)
Other than that, LGTM with a comment.
llvm/lib/Transforms/Utils/MemorySSA.cpp | ||
---|---|---|
629 | Can we please have a check for isLiveOnEntryDef(Dominator), too? liveOnEntry has a null BB, so I don't see things ending well if we let that through. |
llvm/lib/Transforms/Utils/MemorySSA.cpp | ||
---|---|---|
629 | ...Scratch the "liveOnEntry has a null BB, so I don't see things ending well if we let that through" bit. We do set liveOnEntry's BB to a non-null value in getWalker() :) (This is what I get for not verifying the assertions that I make before I hit "reply" ;). My bad.) |
Can we please have a check for isLiveOnEntryDef(Dominator), too? liveOnEntry has a null BB, so I don't see things ending well if we let that through.