[PATCH] D30558: Fix value numbers in successor blocks if liveout number has changed

Stanislav Mekhanoshin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 3 12:01:03 PST 2017


rampitec added a comment.

That is a co-incidence that handleMoveDown does not have this problem.

The LR before handleMove: [16r,32r:0)[32r,96r:1)[112B,128r:1).
After handleMoveDown: [8r,32r:0)[32r,96r:1)[112B,128r:1).
After handleMoveUp: [8r,16r:1)[16r,96r:0)[112B,128r:1).

handleMoveUp managed to change original value numbers 0 and 1 at BB#0 but did not attempt to update a successor. handleMoveDown did not brake just because it has preserved original value number order.
Neither of two have any loops which would propagate a new value number to successors. That is not sufficient to just properly connect one successor, all of them need to be updated recursively.
So as long as original value number order cannot be preserved an update loop is needed.


Repository:
  rL LLVM

https://reviews.llvm.org/D30558





More information about the llvm-commits mailing list