summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/angle/src/compiler/translator/UnfoldShortCircuitAST.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/angle/src/compiler/translator/UnfoldShortCircuitAST.cpp')
-rw-r--r--src/3rdparty/angle/src/compiler/translator/UnfoldShortCircuitAST.cpp59
1 files changed, 0 insertions, 59 deletions
diff --git a/src/3rdparty/angle/src/compiler/translator/UnfoldShortCircuitAST.cpp b/src/3rdparty/angle/src/compiler/translator/UnfoldShortCircuitAST.cpp
deleted file mode 100644
index 4e4653bbe5..0000000000
--- a/src/3rdparty/angle/src/compiler/translator/UnfoldShortCircuitAST.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-//
-// Copyright (c) 2002-2013 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-
-#include "compiler/translator/UnfoldShortCircuitAST.h"
-
-namespace sh
-{
-
-namespace
-{
-
-// "x || y" is equivalent to "x ? true : y".
-TIntermTernary *UnfoldOR(TIntermTyped *x, TIntermTyped *y)
-{
- TConstantUnion *u = new TConstantUnion;
- u->setBConst(true);
- TIntermConstantUnion *trueNode =
- new TIntermConstantUnion(u, TType(EbtBool, EbpUndefined, EvqConst, 1));
- return new TIntermTernary(x, trueNode, y);
-}
-
-// "x && y" is equivalent to "x ? y : false".
-TIntermTernary *UnfoldAND(TIntermTyped *x, TIntermTyped *y)
-{
- TConstantUnion *u = new TConstantUnion;
- u->setBConst(false);
- TIntermConstantUnion *falseNode =
- new TIntermConstantUnion(u, TType(EbtBool, EbpUndefined, EvqConst, 1));
- return new TIntermTernary(x, y, falseNode);
-}
-
-} // namespace anonymous
-
-bool UnfoldShortCircuitAST::visitBinary(Visit visit, TIntermBinary *node)
-{
- TIntermTernary *replacement = nullptr;
-
- switch (node->getOp())
- {
- case EOpLogicalOr:
- replacement = UnfoldOR(node->getLeft(), node->getRight());
- break;
- case EOpLogicalAnd:
- replacement = UnfoldAND(node->getLeft(), node->getRight());
- break;
- default:
- break;
- }
- if (replacement)
- {
- queueReplacement(replacement, OriginalNode::IS_DROPPED);
- }
- return true;
-}
-
-} // namespace sh