JIT: Cache memory dependencies for VN map selects (#89241)
authorJakob Botsch Nielsen <Jakob.botsch.nielsen@gmail.com>
Thu, 20 Jul 2023 21:04:37 +0000 (23:04 +0200)
committerGitHub <noreply@github.com>
Thu, 20 Jul 2023 21:04:37 +0000 (23:04 +0200)
commit8c730ddcce5048faf9c456274fd28f8c361126ae
tree47272c71a8408e8c404401484c049692f5789783
parent3db51723fb3d0806e1081ec917906b269adc0a11
JIT: Cache memory dependencies for VN map selects (#89241)

Hoisting relies on being able to look at which memory dependencies a
candidate is dependent upon. VN tracks these during the map select
logic; however, it fails to do so when the map selection hits the cache.
This changes the logic to make sure the memory dependencies are cached.

Fix #75442
src/coreclr/jit/optimizer.cpp
src/coreclr/jit/valuenum.cpp
src/coreclr/jit/valuenum.h
src/tests/JIT/Regression/JitBlue/Runtime_75442/Runtime_75442.cs [new file with mode: 0644]
src/tests/JIT/Regression/JitBlue/Runtime_75442/Runtime_75442.csproj [new file with mode: 0644]