VSO 178902 - Jit can incorrectly make a method partially interruptible when it should...
authorBrian Sullivan <briansul@microsoft.com>
Sat, 16 Jan 2016 00:55:26 +0000 (16:55 -0800)
committerBrian Sullivan <briansul@microsoft.com>
Sat, 16 Jan 2016 00:55:26 +0000 (16:55 -0800)
commit3d5e2400c42f3f9942d68b9bf1b417c416102ca7
tree93c30de2989b32a45210608dc502dc81cfdb357f
parent43df2ccecda7d9086df36079c4bde85957c3b47f
VSO 178902 - Jit can incorrectly make a method partially interruptible when it should be fully interruptible

This issue was caused when the IBC data for a very hot method overflowed the multiplication operation in setBBProfileWeight for the x86 Jit32
We then reorder the blocks in an odd way, which caused us to use a block that was not part of a loop in optReachWithoutCall
This caused us to make the method partially interruptible instead of fully interruptible.
This changeset fixes both issue for both the RyuJIT x64 and the x86 Jit32

[tfs-changeset: 1565753]
src/jit/block.h
src/jit/optimizer.cpp