同步操作将从 Gitee 极速下载/Halide 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "UnsafePromises.h"#include "IRMutator.h"#include "IROperator.h"namespace Halide {namespace Internal {namespace {class LowerUnsafePromises : public IRMutator {using IRMutator::visit;Expr visit(const Call *op) override {if (op->is_intrinsic(Call::unsafe_promise_clamped)) {if (check) {Expr is_clamped = op->args[0] >= op->args[1] && op->args[0] <= op->args[2];std::ostringstream promise_expr_text;promise_expr_text << is_clamped;Expr cond_as_string = StringImm::make(promise_expr_text.str());Expr promise_broken_error =Call::make(Int(32),"halide_error_requirement_failed",{cond_as_string, StringImm::make("from unsafe_promise_clamped")},Call::Extern);return Call::make(op->args[0].type(),Call::require,{mutate(is_clamped), mutate(op->args[0]), promise_broken_error},Call::PureIntrinsic);} else {return mutate(op->args[0]);}} else {return IRMutator::visit(op);}}bool check;public:LowerUnsafePromises(bool check): check(check) {}};class LowerSafePromises : public IRMutator {using IRMutator::visit;Expr visit(const Call *op) override {if (op->is_intrinsic(Call::promise_clamped)) {return mutate(op->args[0]);} else {return IRMutator::visit(op);}}};} // namespaceStmt lower_unsafe_promises(const Stmt &s, const Target &t) {return LowerUnsafePromises(t.has_feature(Target::CheckUnsafePromises)).mutate(s);}Stmt lower_safe_promises(const Stmt &s) {return LowerSafePromises().mutate(s);}} // namespace Internal} // namespace Halide
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。