Remove unnecessary copies for stack struct argument except:
authorSejong OH <sejooh@microsoft.com>
Mon, 11 Jul 2016 20:44:09 +0000 (13:44 -0700)
committerSejong OH <sejooh@microsoft.com>
Thu, 14 Jul 2016 22:13:41 +0000 (15:13 -0700)
commit8b1128caa880355d90e5af1c1b662c8b2f7bba11
tree812808a8f6e7bf1e8585933a0f51d16f72a8d7aa
parente5b2b9a2646a7518e0c4d9b75415e635db8e9b9f
Remove unnecessary copies for stack struct argument except:

  - struct is promoted to registers
  - fgMakeOutgoingStructArgCopy is called
  - tree pattern of obj - addr - simd operator

    *  call      void   foo
    ...
    +--*  obj       simd16
    |  \--*  addr      byref
    |     |  /--*  lclVar    simd16 V05 loc4
    |     \--*  simd      simd16 int -
    |        \--*  lclVar    simd16 V08 tmp1
    ...

Commit migrated from https://github.com/dotnet/coreclr/commit/68d5832f204e791943a7e1c5a7f0c80063cf3c7a
src/coreclr/src/jit/morph.cpp [changed mode: 0644->0755]