1 package org.simantics.scl.compiler.internal.codegen.ssa.statements;
\r
3 import org.simantics.scl.compiler.internal.codegen.references.BoundVar;
\r
4 import org.simantics.scl.compiler.internal.codegen.ssa.SSAStatement;
\r
5 import org.simantics.scl.compiler.internal.codegen.ssa.binders.BoundVarBinder;
\r
6 import org.simantics.scl.compiler.internal.codegen.utils.SSASimplificationContext;
\r
7 import org.simantics.scl.compiler.internal.codegen.utils.SSAValidationContext;
\r
9 public abstract class LetStatement extends SSAStatement implements BoundVarBinder {
\r
12 public LetStatement(BoundVar target) {
\r
17 public void simplify(SSASimplificationContext context) {
\r
18 if(target.hasNoOccurences()) {
\r
20 context.markModified("dead-let-statement");
\r
24 public BoundVar getTarget() {
\r
28 public void setTarget(BoundVar target) {
\r
29 this.target = target;
\r
30 target.parent = this;
\r
34 public void addBoundVariablesTo(SSAValidationContext context) {
\r
35 context.validBoundVariables.add(target);
\r