[mono][interp] Reduce redundant moves with calls (#79905)
authorVlad Brezae <brezaevlad@gmail.com>
Fri, 27 Jan 2023 14:26:56 +0000 (16:26 +0200)
committerGitHub <noreply@github.com>
Fri, 27 Jan 2023 14:26:56 +0000 (16:26 +0200)
commitc50c745fa88f0850c8e8ebed37749118929d7e87
tree6de83e504200aa4e4265a55a42f0cbb6c2c268a5
parent7cc9aedcce35758e94cae6e0aa9af562c8bcf800
[mono][interp] Reduce redundant moves with calls (#79905)

We were marking INTERP_LOCAL_FLAG_NO_CALL_ARGS for source vars of non calls. With further optimizations, the var could end up being used only for the call but we never unset the flag. Reuse the ref count data, which is kept updated following optimizations, to achieve same thing. If cprop is not run then we always duplicate the args, but this is an unused scenario.
src/mono/mono/mini/interp/transform.c