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
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.