Less Conservative GtObj
authorCarol Eidt <carol.eidt@microsoft.com>
Tue, 2 Aug 2016 22:05:10 +0000 (15:05 -0700)
committerCarol Eidt <carol.eidt@microsoft.com>
Tue, 2 Aug 2016 22:05:10 +0000 (15:05 -0700)
commitd63db2d65ec062f115f616019ae997c87a910368
tree60c62a6475a3830e128e67a85dc60a272132336b
parentd459dd0852220956e76b301b73866d3012991c52
Less Conservative GtObj

Don't mark GT_OBJ with GTF_EXCEPT or GTF_GLOB_REF if it is a local struct.
Also, fix changes needed in arm register allocation and code generation to handle the case where a struct argument is promoted, which appears to be code that was never exercised.
These changes are in preparation for further changes for First Class Structs. I am working to replace block ops with assignments, and was attempting to get to zero diffs, but it is quite difficult to do so given some inconsistencies in the treatment of GT_OBJs of locals.

Commit migrated from https://github.com/dotnet/coreclr/commit/74b27523b5a150e4cac25d43b37efbbcad008020
src/coreclr/src/jit/codegenlegacy.cpp
src/coreclr/src/jit/compiler.h
src/coreclr/src/jit/flowgraph.cpp
src/coreclr/src/jit/gentree.cpp
src/coreclr/src/jit/importer.cpp
src/coreclr/src/jit/morph.cpp
src/coreclr/src/jit/regalloc.cpp