Lines Matching refs:Expression
52 static std::unique_ptr<Expression> eliminate_no_op_boolean(Position pos, in eliminate_no_op_boolean()
53 const Expression& left, in eliminate_no_op_boolean()
55 const Expression& right) { in eliminate_no_op_boolean()
71 static std::unique_ptr<Expression> short_circuit_boolean(Position pos, in short_circuit_boolean()
72 const Expression& left, in short_circuit_boolean()
74 const Expression& right) { in short_circuit_boolean()
89 static std::unique_ptr<Expression> simplify_constant_equality(const Context& context, in simplify_constant_equality()
91 const Expression& left, in simplify_constant_equality()
93 const Expression& right) { in simplify_constant_equality()
98 case Expression::ComparisonResult::kNotEqual: in simplify_constant_equality()
102 case Expression::ComparisonResult::kEqual: in simplify_constant_equality()
105 case Expression::ComparisonResult::kUnknown: in simplify_constant_equality()
112 static std::unique_ptr<Expression> simplify_matrix_multiplication(const Context& context, in simplify_matrix_multiplication()
114 const Expression& left, in simplify_matrix_multiplication()
115 const Expression& right, in simplify_matrix_multiplication()
170 static std::unique_ptr<Expression> simplify_matrix_times_matrix(const Context& context, in simplify_matrix_times_matrix()
172 const Expression& left, in simplify_matrix_times_matrix()
173 const Expression& right) { in simplify_matrix_times_matrix()
185 static std::unique_ptr<Expression> simplify_vector_times_matrix(const Context& context, in simplify_vector_times_matrix()
187 const Expression& left, in simplify_vector_times_matrix()
188 const Expression& right) { in simplify_vector_times_matrix()
200 static std::unique_ptr<Expression> simplify_matrix_times_vector(const Context& context, in simplify_matrix_times_vector()
202 const Expression& left, in simplify_matrix_times_vector()
203 const Expression& right) { in simplify_matrix_times_vector()
215 static std::unique_ptr<Expression> simplify_componentwise(const Context& context, in simplify_componentwise()
217 const Expression& left, in simplify_componentwise()
219 const Expression& right) { in simplify_componentwise()
225 if (std::unique_ptr<Expression> result = simplify_constant_equality(context, pos, left, op, in simplify_componentwise()
260 static std::unique_ptr<Expression> splat_scalar(const Context& context, in splat_scalar()
261 const Expression& scalar, in splat_scalar()
279 static std::unique_ptr<Expression> cast_expression(const Context& context, in cast_expression()
281 const Expression& expr, in cast_expression()
299 static std::unique_ptr<Expression> zero_expression(const Context& context, in zero_expression()
302 std::unique_ptr<Expression> zero = Literal::Make(pos, 0.0, &type.componentType()); in zero_expression()
316 static std::unique_ptr<Expression> negate_expression(const Context& context, in negate_expression()
318 const Expression& expr, in negate_expression()
320 std::unique_ptr<Expression> ctor = cast_expression(context, pos, expr, type); in negate_expression()
325 bool ConstantFolder::GetConstantInt(const Expression& value, SKSL_INT* out) { in GetConstantInt()
326 const Expression* expr = GetConstantValueForVariable(value); in GetConstantInt()
334 bool ConstantFolder::GetConstantValue(const Expression& value, double* out) { in GetConstantValue()
335 const Expression* expr = GetConstantValueForVariable(value); in GetConstantValue()
343 static bool contains_constant_zero(const Expression& expr) { in contains_constant_zero()
354 bool ConstantFolder::IsConstantSplat(const Expression& expr, double value) { in IsConstantSplat()
366 static bool is_constant_diagonal(const Expression& expr, double value) { in is_constant_diagonal()
387 static bool is_constant_value(const Expression& expr, double value) { in is_constant_value()
396 static std::unique_ptr<Expression> make_reciprocal_expression(const Context& context, in make_reciprocal_expression()
397 const Expression& right) { in make_reciprocal_expression()
424 const Expression& right) { in error_on_divide_by_zero()
440 const Expression* ConstantFolder::GetConstantValueOrNull(const Expression& inExpr) { in GetConstantValueOrNull()
441 const Expression* expr = &inExpr; in GetConstantValueOrNull()
461 const Expression* ConstantFolder::GetConstantValueForVariable(const Expression& inExpr) { in GetConstantValueForVariable()
462 const Expression* expr = GetConstantValueOrNull(inExpr); in GetConstantValueForVariable()
466 std::unique_ptr<Expression> ConstantFolder::MakeConstantValueForVariable( in MakeConstantValueForVariable()
467 Position pos, std::unique_ptr<Expression> inExpr) { in MakeConstantValueForVariable()
468 const Expression* expr = GetConstantValueOrNull(*inExpr); in MakeConstantValueForVariable()
472 static bool is_scalar_op_matrix(const Expression& left, const Expression& right) { in is_scalar_op_matrix()
476 static bool is_matrix_op_scalar(const Expression& left, const Expression& right) { in is_matrix_op_scalar()
480 static std::unique_ptr<Expression> simplify_arithmetic(const Context& context, in simplify_arithmetic()
482 const Expression& left, in simplify_arithmetic()
484 const Expression& right, in simplify_arithmetic()
490 if (std::unique_ptr<Expression> expr = cast_expression(context, pos, left, in simplify_arithmetic()
497 if (std::unique_ptr<Expression> expr = cast_expression(context, pos, right, in simplify_arithmetic()
506 if (std::unique_ptr<Expression> expr = cast_expression(context, pos, left, in simplify_arithmetic()
512 if (std::unique_ptr<Expression> expr = cast_expression(context, pos, right, in simplify_arithmetic()
524 if (std::unique_ptr<Expression> expr = negate_expression(context, pos, left, in simplify_arithmetic()
530 if (std::unique_ptr<Expression> expr = negate_expression(context, pos, right, in simplify_arithmetic()
540 if (std::unique_ptr<Expression> expr = cast_expression(context, pos, left, in simplify_arithmetic()
547 if (std::unique_ptr<Expression> expr = negate_expression(context, pos, right, in simplify_arithmetic()
557 if (std::unique_ptr<Expression> expr = cast_expression(context, pos, left, in simplify_arithmetic()
563 if (std::unique_ptr<Expression> expr = make_reciprocal_expression(context, right)) { in simplify_arithmetic()
573 if (std::unique_ptr<Expression> var = cast_expression(context, pos, left, in simplify_arithmetic()
583 if (std::unique_ptr<Expression> var = cast_expression(context, pos, left, in simplify_arithmetic()
593 if (std::unique_ptr<Expression> var = cast_expression(context, pos, left, in simplify_arithmetic()
599 if (std::unique_ptr<Expression> expr = make_reciprocal_expression(context, right)) { in simplify_arithmetic()
615 static std::unique_ptr<Expression> one_over_scalar(const Context& context, in one_over_scalar()
616 const Expression& right) { in one_over_scalar()
625 static std::unique_ptr<Expression> simplify_matrix_division(const Context& context, in simplify_matrix_division()
627 const Expression& left, in simplify_matrix_division()
629 const Expression& right, in simplify_matrix_division()
653 static std::unique_ptr<Expression> fold_expression(Position pos, in fold_expression()
668 static std::unique_ptr<Expression> fold_two_constants(const Context& context, in fold_two_constants()
670 const Expression* left, in fold_two_constants()
672 const Expression* right, in fold_two_constants()
810 std::unique_ptr<Expression> ConstantFolder::Simplify(const Context& context, in Simplify()
812 const Expression& leftExpr, in Simplify()
814 const Expression& rightExpr, in Simplify()
817 const Expression* left = GetConstantValueForVariable(leftExpr); in Simplify()
818 const Expression* right = GetConstantValueForVariable(rightExpr); in Simplify()
887 if (std::unique_ptr<Expression> expr = simplify_arithmetic(context, pos, *left, op, in Simplify()
894 if (std::unique_ptr<Expression> expr = simplify_matrix_division(context, pos, *left, op, in Simplify()