aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sksl/ir/SkSLExpression.h
diff options
context:
space:
mode:
authorGravatar Ethan Nicholas <ethannicholas@google.com>2017-01-19 16:31:32 +0000
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-01-19 16:31:44 +0000
commit6415e0d2417d133af28ac523400d3f958d2bcd1c (patch)
tree92fbe77322ba50e984f6d85870f40bad70ccacf4 /src/sksl/ir/SkSLExpression.h
parentf54b07121f81a56145fb118a2e18841fc135717d (diff)
Revert "Added constant propagation and better variable liveness tracking to"
This reverts commit f54b07121f81a56145fb118a2e18841fc135717d. Reason for revert: ASAN failure Original change's description: > Added constant propagation and better variable liveness tracking to > skslc. > > This allows skslc to track the values of variables with constant > values across multiple statements and replace variable references with > constant values where appropriate. > > The improved liveness tracking allows skslc to realize that a > variable is no longer alive if all references to it have been > replaced. It is not yet doing much with this information; better > dead code elimination is coming in a followup change. > > BUG=skia: > > Change-Id: I6bf267d478b769caf0063ac3597dc16bbe618cb4 > Reviewed-on: https://skia-review.googlesource.com/7033 > Commit-Queue: Ethan Nicholas <ethannicholas@google.com> > Reviewed-by: Greg Daniel <egdaniel@google.com> > TBR=egdaniel@google.com,ethannicholas@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Change-Id: Id2e26bce96b27df73948f8b32d3dff2e358ae0d6 Reviewed-on: https://skia-review.googlesource.com/7274 Commit-Queue: Ethan Nicholas <ethannicholas@google.com> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Diffstat (limited to 'src/sksl/ir/SkSLExpression.h')
-rw-r--r--src/sksl/ir/SkSLExpression.h25
1 files changed, 3 insertions, 22 deletions
diff --git a/src/sksl/ir/SkSLExpression.h b/src/sksl/ir/SkSLExpression.h
index f87d810fc0..b4ed37c09a 100644
--- a/src/sksl/ir/SkSLExpression.h
+++ b/src/sksl/ir/SkSLExpression.h
@@ -4,24 +4,17 @@
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
-
+
#ifndef SKSL_EXPRESSION
#define SKSL_EXPRESSION
+#include "SkSLIRNode.h"
#include "SkSLType.h"
-#include "SkSLVariable.h"
-
-#include <unordered_map>
namespace SkSL {
-struct Expression;
-class IRGenerator;
-
-typedef std::unordered_map<const Variable*, std::unique_ptr<Expression>*> DefinitionMap;
-
/**
- * Abstract supertype of all expressions.
+ * Abstract supertype of all expressions.
*/
struct Expression : public IRNode {
enum Kind {
@@ -52,18 +45,6 @@ struct Expression : public IRNode {
return false;
}
- /**
- * Given a map of known constant variable values, substitute them in for references to those
- * variables occurring in this expression and its subexpressions. Similar simplifications, such
- * as folding a constant binary expression down to a single value, may also be performed.
- * Returns a new expression which replaces this expression, or null if no replacements were
- * made. If a new expression is returned, this expression is no longer valid.
- */
- virtual std::unique_ptr<Expression> constantPropagate(const IRGenerator& irGenerator,
- const DefinitionMap& definitions) {
- return nullptr;
- }
-
const Kind fKind;
const Type& fType;