diff options
author | Carol Eidt <carol.eidt@microsoft.com> | 2019-03-28 11:23:10 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-28 11:23:10 -0700 |
commit | 3d4a1d5cea0ae71eed1482990ce6e575049829d8 (patch) | |
tree | fd3ea00fbd67bec2b6f6ec0966ef2bd34ea0c01d /src/jit/codegencommon.cpp | |
parent | a32f7e6b176fc18973581d48d919112d66e321aa (diff) | |
download | coreclr-3d4a1d5cea0ae71eed1482990ce6e575049829d8.tar.gz coreclr-3d4a1d5cea0ae71eed1482990ce6e575049829d8.tar.bz2 coreclr-3d4a1d5cea0ae71eed1482990ce6e575049829d8.zip |
Struct & SIMD improvements (#22255)
* [WIP] Struct & SIMD improvements
- Enable CSE of struct values when handle is available (and add code to get the handle of HW SIMD types)
- Don't require block nodes for SIMD assignments
- Don't set `GTF_GLOB_REF` on `GT_OBJ` if it is local
- Set `lvRegStruct` on promoted SIMD fields
- Add tests for #19910 (fixed with this PR) and #3539 & #19438 (fixed with #21314)
- Additional cleanup
Fix #19910
Diffstat (limited to 'src/jit/codegencommon.cpp')
-rw-r--r-- | src/jit/codegencommon.cpp | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/src/jit/codegencommon.cpp b/src/jit/codegencommon.cpp index 8f31debc9d..03e171bc2c 100644 --- a/src/jit/codegencommon.cpp +++ b/src/jit/codegencommon.cpp @@ -4534,15 +4534,7 @@ void CodeGen::genCheckUseBlockInit() unless they are untracked GC type or structs that contain GC pointers */ CLANG_FORMAT_COMMENT_ANCHOR; -#if FEATURE_SIMD - // TODO-1stClassStructs - // This is here to duplicate previous behavior, where TYP_SIMD8 locals - // were not being re-typed correctly. - if ((!varDsc->lvTracked || (varDsc->lvType == TYP_STRUCT) || (varDsc->lvType == TYP_SIMD8)) && -#else // !FEATURE_SIMD - if ((!varDsc->lvTracked || (varDsc->lvType == TYP_STRUCT)) && -#endif // !FEATURE_SIMD - varDsc->lvOnFrame && + if ((!varDsc->lvTracked || (varDsc->lvType == TYP_STRUCT)) && varDsc->lvOnFrame && (!varDsc->lvIsTemp || varTypeIsGC(varDsc->TypeGet()) || (varDsc->lvStructGcCount > 0))) { varDsc->lvMustInit = true; |