From d4b6862ba3399ebb5c7c12ac90bb510f294fa713 Mon Sep 17 00:00:00 2001 From: egorbot Date: Thu, 17 Oct 2024 04:01:51 +0200 Subject: [PATCH] assign vn for COMMA in gtWrapWithSideEffects --- src/coreclr/jit/assertionprop.cpp | 13 +------------ src/coreclr/jit/gentree.cpp | 4 +++- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/src/coreclr/jit/assertionprop.cpp b/src/coreclr/jit/assertionprop.cpp index 64c3251a4f2d3..bafe2d0c27177 100644 --- a/src/coreclr/jit/assertionprop.cpp +++ b/src/coreclr/jit/assertionprop.cpp @@ -3102,18 +3102,7 @@ GenTree* Compiler::optVNBasedFoldConstExpr(BasicBlock* block, GenTree* parent, G // Were able to optimize. conValTree->gtVNPair = vnPair; - GenTree* sideEffList = optExtractSideEffListFromConst(tree); - if (sideEffList != nullptr) - { - // Replace as COMMA(side_effects, const value tree); - assert((sideEffList->gtFlags & GTF_SIDE_EFFECT) != 0); - return gtNewOperNode(GT_COMMA, conValTree->TypeGet(), sideEffList, conValTree); - } - else - { - // No side effects, replace as const value tree. - return conValTree; - } + return gtWrapWithSideEffects(conValTree, tree); } else { diff --git a/src/coreclr/jit/gentree.cpp b/src/coreclr/jit/gentree.cpp index 225e7eccd9386..0f9d9c79026e7 100644 --- a/src/coreclr/jit/gentree.cpp +++ b/src/coreclr/jit/gentree.cpp @@ -17223,7 +17223,9 @@ GenTree* Compiler::gtWrapWithSideEffects(GenTree* tree, // It should be possible to be smarter here and allow such cases by extracting the side effects // properly for this particular case. For now, caller is responsible for avoiding such cases. - tree = gtNewOperNode(GT_COMMA, tree->TypeGet(), sideEffects, tree); + GenTree* comma = gtNewOperNode(GT_COMMA, tree->TypeGet(), sideEffects, tree); + comma->gtVNPair = tree->gtVNPair; + return comma; } return tree; }