Preserve value numbers when morphing multiplication into shift.
authorEugene Rozenfeld <erozen@microsoft.com>
Sat, 6 Feb 2016 07:09:43 +0000 (23:09 -0800)
committerEugene Rozenfeld <erozen@microsoft.com>
Mon, 8 Feb 2016 21:04:32 +0000 (13:04 -0800)
commit96a998da1a158641a0e8f5a856db4a0ecd82a336
tree118ee4b50744888171a84f4430189eae8ccf7776
parent7c3d6d854261b40331988683ee7599024bca9fb7
Preserve value numbers when morphing multiplication into shift.

This change fixes a morpher transformation of multiplication to shift
to preserve the value number of the tree since the new shift expression
will compute the same value as the old multiplication expression.
Without that change we were getting  asserts in fgMoveOpsLeft,
which expects to see value numbers on trees it transforms.

Closes #2920.
src/jit/compiler.hpp
src/jit/gentree.h
src/jit/morph.cpp