diff options
author | Ethan Nicholas <ethannicholas@google.com> | 2017-01-19 16:31:32 +0000 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-01-19 16:31:44 +0000 |
commit | 6415e0d2417d133af28ac523400d3f958d2bcd1c (patch) | |
tree | 92fbe77322ba50e984f6d85870f40bad70ccacf4 /src/sksl/ir/SkSLExpression.h | |
parent | f54b07121f81a56145fb118a2e18841fc135717d (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.h | 25 |
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; |