Inline refactor: revise checks in fgFindJumpTargets
authorAndy Ayers <andya@microsoft.com>
Mon, 8 Feb 2016 20:23:57 +0000 (12:23 -0800)
committerAndy Ayers <andya@microsoft.com>
Mon, 8 Feb 2016 20:27:14 +0000 (12:27 -0800)
commit60af283296faed0188822d999efcad473b22a6ac
tree9120ad048fa3b54b3c2df0ca3b1a56e11aff8876
parent9ecf596e4c949ada2e7cd659035e587a0c250af1
Inline refactor: revise checks in fgFindJumpTargets

In this method, the inliner will check for unsupported opcodes and
similar things. Refactor these checks to directly bail out if an
issue is discovered, rather than going to a common handler snippet.

There are two functionality changes:

First, if an unsupported opcode is found (currently: switch, jmp,
calli, localloc, cpblk, mkrefany, rethrow) mark the inlinee as
never inlinable, rather than just failing the current attempt.
This should not change externally visible behavior but will improve
jit TP marginally if such cases are common.

Second, for NETCF quirk handling, make sure to guard some of the
observations with a check that we're reading the IL for inlining.

Commit migrated from https://github.com/dotnet/coreclr/commit/ebbea0a31a72c0d455dc3124a88e400fb4b2c510
src/coreclr/src/jit/flowgraph.cpp