Remove redundant zero-initialization of struct temps with GC fields. (#13868)
authorEugene Rozenfeld <erozen@microsoft.com>
Wed, 13 Sep 2017 00:15:08 +0000 (17:15 -0700)
committerGitHub <noreply@github.com>
Wed, 13 Sep 2017 00:15:08 +0000 (17:15 -0700)
commitc77ad480298300b655ced317bf25b1fe4f27ceb3
treee8356e3286658ead30417127c49399e486ef7f17
parent81adc9de83fd4f16d54b0d2f8b4ad739bd675482
Remove redundant  zero-initialization of struct temps with GC fields. (#13868)

Remove redundant  zero-initialization of struct temps with GC fields.

Structs with GC pointer fields are fully zero-initialized in the prolog if compInitMem is true.
Therefore, we don't need to insert zero-initialization for the result of newobj or for inlinee locals
when they are structs with GC pointer fields and the basic bock is not in a loop.
src/jit/compiler.h
src/jit/compiler.hpp
src/jit/flowgraph.cpp
src/jit/importer.cpp
src/jit/morph.cpp
tests/src/JIT/Regression/JitBlue/GitHub_13822/GitHub_13822.il [new file with mode: 0644]
tests/src/JIT/Regression/JitBlue/GitHub_13822/GitHub_13822.ilproj [new file with mode: 0644]