[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 10 11:38:05 PST 2017


rampitec added a comment.

In https://reviews.llvm.org/D30558#697994, @MatzeB wrote:

> Thanks for putting up the testcase!
>
> I am still not convinced this is the best fix. Before invoking handleMove there must have been 1 value number living out of the block, we may create new value number in the process, however we should always be able to implement handleMove in a way that we re-use the value number that was live-out previous for whatever new value is live-out now. This means we have to fix `handleMoveUp()` and not add more core to work around a bug that really is in `handleMoveUp()`.


It is not only move up, move down can do the same I guess. It worth nothing I see no actual case when it happens. So I think it needs to be fixed in handleMove itself.
Do you think we can just swap value numbers of old and new liveouts instead of propagating a new value number to successors?


Repository:
  rL LLVM

https://reviews.llvm.org/D30558





More information about the llvm-commits mailing list