Fix side effect flags setting after expression cloning. (#16045)
authorEugene Rozenfeld <erozen@microsoft.com>
Sat, 27 Jan 2018 01:06:07 +0000 (17:06 -0800)
committerGitHub <noreply@github.com>
Sat, 27 Jan 2018 01:06:07 +0000 (17:06 -0800)
commit7000d7988d065ed7d5817c1612111b54e9eaf6fb
tree288ec3d493a9a6549308d6c257afe0e2d4a68890
parent951222555cbc4155f171180bee78da7631f03b20
Fix side effect flags setting after expression cloning. (#16045)

Side effect flags need to be recomputed after cloning
an expression, since cloning may involve some simplifications
(e.g., replacing a local with a const).

I also did some minor refactoring and renaming of the side-effect-updating helpers
and made one of them more robust by checking whether a child is null before accessing
its flags.

This fixes VSO 543054 where this problem was encountered in a PMI ARM32 JitStress=2 run.
src/jit/compiler.h
src/jit/gentree.cpp