Improvements for ReadyToRun helpers in JIT value numbering.
authorEugene Rozenfeld <erozen@microsoft.com>
Wed, 2 Mar 2016 06:17:00 +0000 (22:17 -0800)
committerEugene Rozenfeld <erozen@microsoft.com>
Sat, 5 Mar 2016 02:23:15 +0000 (18:23 -0800)
commit669bd80064f26cd0b4ded9404899e23f512a7e33
tree585bb35bc949aafdec89b627995e2ebcfeaae321
parent526d355acc407ab59348ae97d5ade4b48ddad307
Improvements for ReadyToRun helpers in JIT value numbering.

The following ReadyToRun helpers are now treated similarly to their normal
counterparts in value numbering:
CORINFO_HELP_READYTORUN_NEW
CORINFO_HELP_READYTORUN_NEWARR_1
CORINFO_HELP_READYTORUN_ISINSTANCEOF
CORINFO_HELP_READYTORUN_CHKCAST
CORINFO_HELP_READYTORUN_STATIC_BASE

In particular, this allows CSE-ing calls to the last 3 of the above helpers when
possible. #3281 is an issue for CORINFO_HELP_READYTORUN_STATIC_BASE.

Compiler::fgValueNumberHelperCallFunc is refactored to reduce code
duplication.

Closes #3281.
src/jit/utils.cpp
src/jit/valuenum.cpp
src/jit/valuenum.h
src/jit/valuenumfuncs.h
tests/src/readytorun/main.cs