Recognize mod-free helper calls in loop hoisting
authorJoseph Tremoulet <jotrem@microsoft.com>
Thu, 25 Aug 2016 17:45:20 +0000 (13:45 -0400)
committerJoseph Tremoulet <jotrem@microsoft.com>
Thu, 15 Sep 2016 17:51:31 +0000 (13:51 -0400)
commitb6a59d5d93f8514ba80ee0519c0018364f1e534a
treeb855e20a87a1d7ae128e746d0e500b768bba2b4e
parenta9700102942a2b2a4e3179c913ea8cfb22d99330
Recognize mod-free helper calls in loop hoisting

Update the code in `optHoistLoopExprsForTree` that identifies exprs with
memory side-effects to recognize helper calls that don't mutate the heap;
this allows hoisting invariant exprs past such helper calls.

Fixes dotnet/coreclr#6901.

Commit migrated from https://github.com/dotnet/coreclr/commit/7ccdf9f2b17fcf3510228df109994336e95993d5
src/coreclr/src/jit/optimizer.cpp