Let 176 src/AlignLoads.cpp void visit(const Let *op) { visit_let(expr, op); } Let 683 src/Bounds.cpp void visit(const Let *op) { Let 720 src/Bounds.cpp interval.min = Let::make(min_name, val.min, interval.min); Let 723 src/Bounds.cpp interval.min = Let::make(max_name, val.max, interval.min); Let 729 src/Bounds.cpp interval.max = Let::make(min_name, val.min, interval.max); Let 732 src/Bounds.cpp interval.max = Let::make(max_name, val.max, interval.max); Let 1082 src/Bounds.cpp box[i].min = Let::make(max_name, value_bounds.max, box[i].min); Let 1085 src/Bounds.cpp box[i].min = Let::make(min_name, value_bounds.min, box[i].min); Let 1090 src/Bounds.cpp box[i].max = Let::make(max_name, value_bounds.max, box[i].max); Let 1093 src/Bounds.cpp box[i].max = Let::make(min_name, value_bounds.min, box[i].max); Let 1101 src/Bounds.cpp void visit(const Let *op) { Let 1496 src/Bounds.cpp check(scope, y + (Let::make("y", x+3, y - x + 10)), y + 3, y + 23); // Once again, we don't know that y is correlated with x Let 151 src/CSE.cpp void visit(const Let *let) { Let 310 src/CSE.cpp e = Let::make(lets[i-1].first, value, e); Let 345 src/CSE.cpp void visit(const Let *let) { Let 350 src/CSE.cpp expr = Let::make(new_name, value, body); Let 373 src/CSE.cpp e = Let::make(name, exprs[i-1], e); Let 492 src/CSE.cpp correct = Let::make("t0", handle_b, Let 19 src/Closure.cpp void Closure::visit(const Let *op) { Let 29 src/Closure.h void visit(const Let *op); Let 657 src/CodeGen_ARM.cpp while (const Let *let = rhs.as<Let>()) { Let 1187 src/CodeGen_C.cpp void CodeGen_C::visit(const Let *op) { Let 166 src/CodeGen_C.h void visit(const Let *); Let 78 src/CodeGen_GPU_Host.cpp shared_mem_size = Let::make(op->name, op->value, shared_mem_size); Let 307 src/CodeGen_Internal.cpp expr = Let::make(predicate_name, predicate, expr); Let 308 src/CodeGen_Internal.cpp expr = Let::make(index_name, index, expr); Let 1347 src/CodeGen_LLVM.cpp value = codegen(Let::make(a_name, op->a, Let 1348 src/CodeGen_LLVM.cpp Let::make(b_name, op->b, Let 1357 src/CodeGen_LLVM.cpp value = codegen(Let::make(a_name, op->a, Let 1358 src/CodeGen_LLVM.cpp Let::make(b_name, op->b, Let 2178 src/CodeGen_LLVM.cpp value = codegen(Let::make(x_name, op->args[0], select(x >= 0, x, -x))); Let 2210 src/CodeGen_LLVM.cpp codegen(Let::make(a_name, op->args[0], Let 2211 src/CodeGen_LLVM.cpp Let::make(b_name, op->args[1], Let 2810 src/CodeGen_LLVM.cpp void CodeGen_LLVM::visit(const Let *op) { Let 3098 src/CodeGen_LLVM.cpp } else if (const Let *let = op->index.as<Let>()) { Let 348 src/CodeGen_LLVM.h virtual void visit(const Let *); Let 375 src/CodeGen_OpenGL_Dev.cpp void CodeGen_GLSL::visit(const Let *op) { Let 103 src/CodeGen_OpenGL_Dev.h void visit(const Let *); Let 268 src/Deinterleave.cpp void visit(const Let *op) { Let 279 src/Deinterleave.cpp expr = Let::make(new_name, new_value, body); Let 282 src/Deinterleave.cpp expr = Let::make(op->name, op->value, expr); Let 451 src/Deinterleave.cpp void visit(const Let *op) { Let 452 src/Deinterleave.cpp expr = visit_let<Let, Expr>(op); Let 216 src/EliminateBoolVectors.cpp void visit(const Let *op) { expr = visit_let<Expr>(op); } Let 52 src/Expr.h Let, Let 138 src/Function.cpp void visit(const Let *let) { Let 107 src/FuseGPUThreadLoops.cpp block_extent[i] = simplify(Let::make(op->name, op->value, block_extent[i])); Let 403 src/FuseGPUThreadLoops.cpp s.size = simplify(Let::make(op->name, op->value, s.size)); Let 615 src/HexagonOffload.cpp return Let::make(name, state_var_ptr(name, type), Let 781 src/HexagonOffload.cpp void visit(const Let *op) { Let 936 src/HexagonOptimize.cpp if (const Let *let = x.as<Let>()) { Let 962 src/HexagonOptimize.cpp if (const Let *let = x.as<Let>()) { Let 1008 src/HexagonOptimize.cpp if (const Let *let = x.as<Let>()) { Let 1011 src/HexagonOptimize.cpp return Let::make(let->name, let->value, remove_interleave(let->body)); Let 1169 src/HexagonOptimize.cpp void visit(const Let *op) { Let 1173 src/HexagonOptimize.cpp const Let *let = expr.as<Let>(); Let 1175 src/HexagonOptimize.cpp expr = native_interleave(Let::make(let->name, let->value, remove_interleave(let->body))); Let 1538 src/HexagonOptimize.cpp void visit(const Let *op) { Let 277 src/IR.cpp Expr Let::make(const std::string &name, const Expr &value, const Expr &body) { Let 281 src/IR.cpp Let *node = new Let; Let 764 src/IR.cpp template<> void ExprNode<Let>::accept(IRVisitor *v) const { v->visit((const Let *)this); } Let 246 src/IR.h struct Let : public ExprNode<Let> { Let 252 src/IR.h static const IRNodeType _type_info = IRNodeType::Let; Let 78 src/IREquality.cpp void visit(const Let *); Let 329 src/IREquality.cpp void IRComparer::visit(const Let *op) { Let 330 src/IREquality.cpp const Let *e = expr.as<Let>(); Let 241 src/IRMatch.cpp void visit(const Let *op) { Let 242 src/IRMatch.cpp const Let *e = expr.as<Let>(); Let 162 src/IRMutator.cpp void IRMutator::visit(const Let *op) { Let 169 src/IRMutator.cpp expr = Let::make(op->name, value, body); Let 71 src/IRMutator.h EXPORT virtual void visit(const Let *); Let 708 src/IROperator.cpp e = Let::make(shape_var_name, shape_arg, e); Let 520 src/IRPrinter.cpp void IRPrinter::visit(const Let *op) { Let 123 src/IRPrinter.h void visit(const Let *); Let 146 src/IRVisitor.cpp void IRVisitor::visit(const Let *op) { Let 385 src/IRVisitor.cpp void IRGraphVisitor::visit(const Let *op) { Let 52 src/IRVisitor.h EXPORT virtual void visit(const Let *); Let 118 src/IRVisitor.h EXPORT virtual void visit(const Let *); Let 115 src/Inline.cpp body = Let::make(func.name() + "." + func_args[i], args[i], body); Let 35 src/InlineReductions.cpp void visit(const Let *op) { Let 44 src/InlineReductions.cpp expr = Let::make(op->name, value, body); Let 424 src/LoopCarry.cpp while (const Let *l = call.as<Let>()) { Let 49 src/ModulusRemainder.cpp void visit(const Let *); Let 136 src/ModulusRemainder.cpp check(Let::make("y", x*3 + 4, y*3 + 4), 9, 7); Let 378 src/ModulusRemainder.cpp void ComputeModulusRemainder::visit(const Let *op) { Let 308 src/Monotonic.cpp void visit(const Let *op) { Let 33 src/ParallelRVar.cpp void visit(const Let *op) { Let 82 src/ParallelRVar.cpp void visit(const Let *op) { Let 161 src/ParallelRVar.cpp while (const Let *l = hazard.as<Let>()) { Let 366 src/PartitionLoops.cpp s.condition = Let::make(op->name, op->value, s.condition); Let 379 src/PartitionLoops.cpp void visit(const Let *op) { Let 903 src/PartitionLoops.cpp expr = Let::make(var_name, true_value, expr); Let 912 src/PartitionLoops.cpp expr = Let::make(var_name, false_value, expr); Let 152 src/Prefetch.cpp void visit(const Let *op) { Let 153 src/Prefetch.cpp Expr let = visit_let<Let, Expr>(op); Let 22 src/Qualify.cpp void visit(const Let *op) { Let 25 src/Qualify.cpp expr = Let::make(prefix + op->name, value, body); Let 81 src/Random.cpp result = Let::make(name, result + cast<uint32_t>(e[i]), Let 176 src/RemoveUndef.cpp void visit(const Let *op) { Let 192 src/RemoveUndef.cpp expr = Let::make(op->name, value, body); Let 132 src/ScheduleFunctions.cpp Container c = {Container::Let, 0, let->name, let->value}; Let 159 src/ScheduleFunctions.cpp internal_assert(nest[i].type == Container::Let); Let 202 src/ScheduleFunctions.cpp if (nest[i].type == Container::Let) { Let 4746 src/Simplify.cpp void visit(const Let *op) { Let 4748 src/Simplify.cpp expr = simplify_let<Let, Expr>(op); Let 4885 src/Simplify.cpp while (const Let *let = value.as<Let>()) { Let 6267 src/Simplify.cpp check(Let::make("x", 3, x+4), 7); Let 6270 src/Simplify.cpp check(Let::make("v", ramp(x*2+7, 3, 4), v + Expr(broadcast(2, 4))), Let 6274 src/Simplify.cpp check(Let::make("v", broadcast(x, 4), v + Expr(broadcast(2, 4))), Let 6278 src/Simplify.cpp check(Let::make("x", 3*y*y*y, 4), 4); Let 6279 src/Simplify.cpp check(Let::make("x", 0, 0), 0); Let 6282 src/Simplify.cpp check(Evaluate::make(Let::make("x", Call::make(Int(32), "dummy", {3, x, 4}, Call::Extern), Let::make("y", 10, x + y + 2))), Let 80 src/SkipStages.cpp predicate = Let::make(op->name, op->min, predicate); Let 99 src/SkipStages.cpp predicate = Let::make(name, value, predicate); Let 107 src/SkipStages.cpp void visit(const Let *op) { Let 28 src/SlidingWindow.cpp void visit(const Let *op) { Let 717 src/Solve.cpp void visit(const Let *op) { Let 840 src/Solve.cpp void visit(const Let *op) { Let 854 src/Solve.cpp result.min = Let::make(op->name, op->value, result.min); Let 857 src/Solve.cpp result.max = Let::make(op->name, op->value, result.max); Let 945 src/Solve.cpp result.min = Let::make(b_name, b, result.min); Let 946 src/Solve.cpp result.min = Let::make(c_name, c, result.min); Let 949 src/Solve.cpp result.max = Let::make(b_name, b, result.max); Let 950 src/Solve.cpp result.max = Let::make(c_name, c, result.max); Let 959 src/Solve.cpp result.min = Let::make(b_name, b, result.min); Let 960 src/Solve.cpp result.min = Let::make(c_name, c, result.min); Let 963 src/Solve.cpp result.max = Let::make(b_name, b, result.max); Let 964 src/Solve.cpp result.max = Let::make(c_name, c, result.max); Let 999 src/Solve.cpp result.min = Let::make(b_name, b, result.min); Let 1000 src/Solve.cpp result.min = Let::make(c_name, c, result.min); Let 1003 src/Solve.cpp result.max = Let::make(b_name, b, result.max); Let 1004 src/Solve.cpp result.max = Let::make(c_name, c, result.max); Let 1013 src/Solve.cpp result.min = Let::make(b_name, b, result.min); Let 1014 src/Solve.cpp result.min = Let::make(c_name, c, result.min); Let 1017 src/Solve.cpp result.max = Let::make(b_name, b, result.max); Let 1018 src/Solve.cpp result.max = Let::make(c_name, c, result.max); Let 1223 src/Solve.cpp void visit(const Let *op) { Let 1269 src/Solve.cpp expr = Let::make(op->name, op->value, expr); Let 1272 src/Solve.cpp expr = Let::make(min_name, value_bounds.min, expr); Let 1275 src/Solve.cpp expr = Let::make(max_name, value_bounds.max, expr); Let 1284 src/Solve.cpp expr = Let::make(op->name, op->value, body); Let 1421 src/Solve.cpp check_solve(Let::make("z", 3 + 5*x, y + z < 8), Let 1425 src/Solve.cpp check_solve(Let::make("z", 3 + 5*x, y + (z + z) < 8), Let 1435 src/Solve.cpp internal_assert(solved.fully_solved && solved.result.as<Let>()); Let 1491 src/Solve.cpp check_outer_interval(Let::make("y", 0, x > y && x < 100), 1, 99); Let 1492 src/Solve.cpp check_outer_interval(Let::make("c", x > 0, c && x < 100), 1, 99); Let 290 src/StmtToHtml.cpp void visit(const Let *op) { Let 39 src/Substitute.cpp void visit(const Let *op) { Let 49 src/Substitute.cpp expr = Let::make(op->name, new_value, new_body); Let 196 src/Substitute.cpp void visit(const Let *op) { Let 100 src/Tracing.cpp expr = Let::make(value_var_name, op, Let 137 src/Tracing.cpp traces[i] = Let::make(value_var_name, values[i], Let 161 src/TrimNoOps.cpp condition = Let::make(op->name, op->value, condition); Let 169 src/TrimNoOps.cpp void visit(const Let *op) { Let 206 src/TrimNoOps.cpp test = common_subexpression_elimination(Let::make(loop.var, loop.i.min, test)); Let 215 src/TrimNoOps.cpp test = common_subexpression_elimination(Let::make(loop.var, loop.i.min, test) || Let 216 src/TrimNoOps.cpp Let::make(loop.var, loop.i.max, test)); Let 310 src/TrimNoOps.cpp void visit(const Let *op) { Let 311 src/TrimNoOps.cpp expr = visit_let<Expr, Let>(op); Let 58 src/UniquifyVariableNames.cpp void visit(const Let *op) { Let 70 src/UniquifyVariableNames.cpp expr = Let::make(new_name, value, body); Let 91 src/VaryingAttributes.cpp virtual void visit(const Let *op) { Let 108 src/VaryingAttributes.cpp expr = Let::make(op->name, mutated_value, mutated_body); Let 630 src/VaryingAttributes.cpp virtual void visit(const Let *op) { Let 644 src/VaryingAttributes.cpp expr = Let::make(op->name, mutated_value, mutated_body); Let 713 src/VaryingAttributes.cpp virtual void visit(const Let *); Let 831 src/VaryingAttributes.cpp void IRFilter::visit(const Let *op) { Let 960 src/VaryingAttributes.cpp virtual void visit(const Let *op) { Let 146 src/VectorizeLoops.cpp } else if (const Let *let = e.as<Let>()) { Let 150 src/VectorizeLoops.cpp ib.min = Let::make(let->name + ".min_lane", ia.min, ib.min); Let 153 src/VectorizeLoops.cpp ib.max = Let::make(let->name + ".min_lane", ia.min, ib.max); Let 156 src/VectorizeLoops.cpp ib.min = Let::make(let->name + ".max_lane", ia.max, ib.min); Let 159 src/VectorizeLoops.cpp ib.max = Let::make(let->name + ".max_lane", ia.max, ib.max); Let 522 src/VectorizeLoops.cpp void visit(const Let *op) { Let 546 src/VectorizeLoops.cpp expr = Let::make(vectorized_name, mutated_value, mutated_body); Let 548 src/VectorizeLoops.cpp expr = Let::make(op->name, mutated_value, mutated_body);