diff options
author | Joseph Tremoulet <jotrem@microsoft.com> | 2017-01-13 14:55:06 -0500 |
---|---|---|
committer | Joseph Tremoulet <jotrem@microsoft.com> | 2017-02-08 09:32:46 -0500 |
commit | a796400efe6bd2bc223b9d9367ec3b8a45647860 (patch) | |
tree | e3d196c993b72d56826d255af356a739b07f17be /src/jit/valuenum.h | |
parent | 1c6a419710ed292f2fa48e459239ee95e3ed2ca2 (diff) | |
download | coreclr-a796400efe6bd2bc223b9d9367ec3b8a45647860.tar.gz coreclr-a796400efe6bd2bc223b9d9367ec3b8a45647860.tar.bz2 coreclr-a796400efe6bd2bc223b9d9367ec3b8a45647860.zip |
Value-number `ByrefExposed` memory and loads
Teach value numbering to keep track of the current value number for
`ByrefExposed` memory, updating it appropriately at relevant stores.
Introduce a new VN operator `ByrefExposedLoad`, used for loads of
address-exposed locals and loads by indirs that don't have more specific
value numbers, which is a function of the current `ByrefExposed` memory VN
and the pointer VN. This allows loop hoisting and CSE to recognize
redundant loads via byrefs when there are no intervening stores.
Fixes #7903.
Diffstat (limited to 'src/jit/valuenum.h')
-rw-r--r-- | src/jit/valuenum.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/jit/valuenum.h b/src/jit/valuenum.h index e0443dc18c..e6e0e43a33 100644 --- a/src/jit/valuenum.h +++ b/src/jit/valuenum.h @@ -217,7 +217,7 @@ private: #ifdef DEBUG // This helps test some performance pathologies related to "evaluation" of VNF_MapSelect terms, - // especially relating to the GcHeap. We count the number of applications of such terms we consider, + // especially relating to GcHeap/ByrefExposed. We count the number of applications of such terms we consider, // and if this exceeds a limit, indicated by a COMPlus_ variable, we assert. unsigned m_numMapSels; #endif |