From 96d7169a4f82211f869718e978302bbf7a6b99fc Mon Sep 17 00:00:00 2001 From: Andy Ayers Date: Wed, 31 Jan 2018 14:08:05 -0800 Subject: [PATCH] JIT: handle GT_SUB in gtClone (#16128) For uniformity's sake, handle GT_SUB just like GT_ADD in gtClone. Otherwise for a span s, the jit codegen for s[i+1] and s[i-1] can end up substantially different. See notes in #13097. --- src/jit/gentree.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/jit/gentree.cpp b/src/jit/gentree.cpp index 1bf923b..ef7da6d 100644 --- a/src/jit/gentree.cpp +++ b/src/jit/gentree.cpp @@ -7539,7 +7539,7 @@ GenTreePtr Compiler::gtClone(GenTree* tree, bool complexOK) copy = gtNewFieldRef(tree->TypeGet(), tree->gtField.gtFldHnd, objp, tree->gtField.gtFldOffset); copy->gtField.gtFldMayOverlap = tree->gtField.gtFldMayOverlap; } - else if (tree->gtOper == GT_ADD) + else if (tree->OperIs(GT_ADD, GT_SUB)) { GenTreePtr op1 = tree->gtOp.gtOp1; GenTreePtr op2 = tree->gtOp.gtOp2; @@ -7557,7 +7557,7 @@ GenTreePtr Compiler::gtClone(GenTree* tree, bool complexOK) return nullptr; } - copy = gtNewOperNode(GT_ADD, tree->TypeGet(), op1, op2); + copy = gtNewOperNode(tree->OperGet(), tree->TypeGet(), op1, op2); } else { -- 2.7.4