Lines Matching refs:Expression
29 static std::unique_ptr<Expression> eliminate_no_op_boolean(const Expression& left,
31 const Expression& right) {
47 static std::unique_ptr<Expression> short_circuit_boolean(const Expression& left,
49 const Expression& right) {
64 static std::unique_ptr<Expression> simplify_vector_equality(const Context& context,
65 const Expression& left,
67 const Expression& right) {
72 case Expression::ComparisonResult::kNotEqual:
76 case Expression::ComparisonResult::kEqual:
79 case Expression::ComparisonResult::kUnknown:
86 static std::unique_ptr<Expression> simplify_vector(const Context& context,
87 const Expression& left,
89 const Expression& right) {
95 if (std::unique_ptr<Expression> result = simplify_vector_equality(context, left, op, right)) {
131 static std::unique_ptr<Expression> cast_expression(const Context& context,
132 const Expression& expr,
139 bool ConstantFolder::GetConstantInt(const Expression& value, SKSL_INT* out) {
140 const Expression* expr = GetConstantValueForVariable(value);
148 bool ConstantFolder::GetConstantValue(const Expression& value, double* out) {
149 const Expression* expr = GetConstantValueForVariable(value);
157 static bool contains_constant_zero(const Expression& expr) {
168 static bool is_constant_value(const Expression& expr, double value) {
180 const Expression& right) {
196 const Expression* ConstantFolder::GetConstantValueForVariable(const Expression& inExpr) {
197 for (const Expression* expr = &inExpr;;) {
222 std::unique_ptr<Expression> ConstantFolder::MakeConstantValueForVariable(
223 std::unique_ptr<Expression> expr) {
224 const Expression* constantExpr = GetConstantValueForVariable(*expr);
231 static std::unique_ptr<Expression> simplify_no_op_arithmetic(const Context& context,
232 const Expression& left,
234 const Expression& right,
266 if (std::unique_ptr<Expression> val = cast_expression(context, right, resultType)) {
281 if (std::unique_ptr<Expression> var = cast_expression(context, left, resultType)) {
291 if (std::unique_ptr<Expression> var = cast_expression(context, left, resultType)) {
306 static std::unique_ptr<Expression> fold_float_expression(int line,
320 static std::unique_ptr<Expression> fold_int_expression(int line,
333 std::unique_ptr<Expression> ConstantFolder::Simplify(const Context& context,
335 const Expression& leftExpr,
337 const Expression& rightExpr,
340 const Expression* left = GetConstantValueForVariable(leftExpr);
341 const Expression* right = GetConstantValueForVariable(rightExpr);
410 std::unique_ptr<Expression> expr = simplify_no_op_arithmetic(context, *left, op, *right,
563 case Expression::ComparisonResult::kNotEqual:
567 case Expression::ComparisonResult::kEqual:
570 case Expression::ComparisonResult::kUnknown: