This patch fixes issues in codegen uncovered due to https://reviews.llvm.org/D26703
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
First, thanks for doing this.
lib/Transforms/Utils/MemorySSA.cpp | ||
---|---|---|
1472 ↗ | (On Diff #78081) | I can find nowhere where this can possibly matter. if (DomTreeNode *Node = DT.getNode(BB)) PQ.push(std::make_pair(Node, DomLevels.lookup(Node))); } (the PQ is ordered anyway, and in the end, the end result ordering is irrelevant) ...) if (!DefBlocks->count(SuccBB)) ... I do not believe fixing this or iterateddominancefrontiers makes sense. I suspect this is papering over something else, so i'll take a look. Note that we could sort them in bb numbering order in the end if we wanted to anyway, so if we really wanted a deterministic order, we'd do that. (This is what promotememorytoregister does) |
Here's an alternative diff that works and does not require slowing down IDFCalculator (when not all things care about the order of the end result):
https://reviews.llvm.org/differential/diff/78091/
@dberlin I incorporated your patch into mine. Had to fix the unit tests to use the correctly numbered temporaries.