summaryrefslogtreecommitdiff
path: root/src/jit/gtstructs.h
diff options
context:
space:
mode:
authorSergey Andreenko <seandree@microsoft.com>2018-02-14 15:38:58 -0800
committerGitHub <noreply@github.com>2018-02-14 15:38:58 -0800
commit94510ef330ad1ecb31540a949a68d4e09c164c64 (patch)
tree37161f66b2cf10ad90232a23c1700026b3734e27 /src/jit/gtstructs.h
parent7910a37a1cf5b963997994b6884475c224585e90 (diff)
downloadcoreclr-94510ef330ad1ecb31540a949a68d4e09c164c64.tar.gz
coreclr-94510ef330ad1ecb31540a949a68d4e09c164c64.tar.bz2
coreclr-94510ef330ad1ecb31540a949a68d4e09c164c64.zip
[RyuJit] Stack level setter (#15597)
* create a new phase: StackLevelSetter * add repro * Fix grammar mistakes * use the default hash * delete values from the map. * create gentree::OperIsPutArgStkOrSplit * fix more comments * delete an extra condition that is always true * use GTSTRUCT_2_SPECIAL for PutArgStk * extract fgUseThrowHelperBlocks * optimize memory for amd64 and additional checks for x86 * change checks The previous version was wrong, because morph can call fgAddCodeRef several times for the same instruction during different phases. * fix comments * fix genJumpToThrowHlpBlk * small ref in genJumpToThrowHlpBlk * fix rebase problems. * use fgUseThrowHelperBlocks instead of !opts.compDbgCode * add throwHelperBlocksUsed for throughput.
Diffstat (limited to 'src/jit/gtstructs.h')
-rw-r--r--src/jit/gtstructs.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/jit/gtstructs.h b/src/jit/gtstructs.h
index f3ff0217f2..6cfb92c98e 100644
--- a/src/jit/gtstructs.h
+++ b/src/jit/gtstructs.h
@@ -109,10 +109,12 @@ GTSTRUCT_1(Qmark , GT_QMARK)
GTSTRUCT_1(PhiArg , GT_PHI_ARG)
GTSTRUCT_1(StoreInd , GT_STOREIND)
GTSTRUCT_N(Indir , GT_STOREIND, GT_IND, GT_NULLCHECK, GT_BLK, GT_STORE_BLK, GT_OBJ, GT_STORE_OBJ, GT_DYN_BLK, GT_STORE_DYN_BLK)
+#if defined(LEGACY_BACKEND) || !defined(_TARGET_ARM_)
GTSTRUCT_1(PutArgStk , GT_PUTARG_STK)
-#if !defined(LEGACY_BACKEND) && defined(_TARGET_ARM_)
+#else // defined(_TARGET_ARM_) && !defined(LEGACY_BACKEND)
+GTSTRUCT_2_SPECIAL(PutArgStk, GT_PUTARG_STK, GT_PUTARG_SPLIT)
GTSTRUCT_1(PutArgSplit , GT_PUTARG_SPLIT)
-#endif
+#endif // defined(LEGACY_BACKEND) || !defined(_TARGET_ARM_)
GTSTRUCT_1(PhysReg , GT_PHYSREG)
#ifdef FEATURE_SIMD
GTSTRUCT_1(SIMD , GT_SIMD)