From: Michael Suo Date: Tue, 4 Dec 2018 23:42:22 +0000 (-0800) Subject: don't allow cse to clean up nondeterministic nodes X-Git-Tag: accepted/tizen/6.5/unified/20211028.231830~2475 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f6f24cf0f44150ee3a68aacc28fdf6a66be1a823;p=platform%2Fupstream%2Fpytorch.git don't allow cse to clean up nondeterministic nodes Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/14776 Differential Revision: D13330229 Pulled By: suo fbshipit-source-id: 6bc88811e1889949f0f079cffccd8cd4270584cc --- diff --git a/torch/csrc/jit/passes/common_subexpression_elimination.cpp b/torch/csrc/jit/passes/common_subexpression_elimination.cpp index a826dc3..72b1501 100644 --- a/torch/csrc/jit/passes/common_subexpression_elimination.cpp +++ b/torch/csrc/jit/passes/common_subexpression_elimination.cpp @@ -23,8 +23,9 @@ void EliminateCommonSubexpression( std::unordered_set subexprs; for (auto it = block->nodes().begin(); it != block->nodes().end(); ++ it) { auto node = *it; - if (node->kind() == prim::PythonOp || node->kind() == prim::Print || - aliasDb.hasWriters(node) || aliasDb.hasWildcard(node)) { + if (node->isNondeterministic() || node->kind() == prim::PythonOp || + node->kind() == prim::Print || aliasDb.hasWriters(node) || + aliasDb.hasWildcard(node)) { // Do NOT have enough information to do CSE on these nodes. continue; }