Add lvIsImplicitByRef information to lvaSetStruct (dotnet/coreclr#19223)
authorJarret Shook <jashoo@microsoft.com>
Wed, 17 Apr 2019 18:06:16 +0000 (11:06 -0700)
committerAndy Ayers <andya@microsoft.com>
Wed, 17 Apr 2019 18:06:16 +0000 (11:06 -0700)
commit81936492f0bc322a16062903e11b18cb62f705b4
treea38a63cd15919b73e4c9036b837434dbd9da862c
parent481a805fbc151aababe7c73329e67badabdd1de2
Add lvIsImplicitByRef information to lvaSetStruct (dotnet/coreclr#19223)

Before implicit byrefs were tracked by setting lvIsParam and lvIsTemp.
This change explicitly adds a flag for implicitByRef instead of overloading.
In addition, it fixes the decision to copy an implicitByRef for arm64 varargs.

Temporarily bump weight on byref params to match old behavior and avoid codegen
diffs.

Re-enabled various tests and parts of tests.

Closes dotnet/coreclr#20046
Closes dotnet/coreclr#19860

Commit migrated from https://github.com/dotnet/coreclr/commit/adf6d4661a5f7367e70256ac1c37d71149a37f5b
src/coreclr/src/jit/compiler.cpp
src/coreclr/src/jit/compiler.h
src/coreclr/src/jit/compiler.hpp
src/coreclr/src/jit/importer.cpp
src/coreclr/src/jit/lclvars.cpp
src/coreclr/src/jit/morph.cpp
src/coreclr/src/jit/scopeinfo.cpp
src/coreclr/tests/issues.targets
src/coreclr/tests/src/JIT/Directed/arglist/vararg.cs