diff --git a/src/script_opt/ProfileFunc.cc b/src/script_opt/ProfileFunc.cc index d6d096f374..5d1f07ae09 100644 --- a/src/script_opt/ProfileFunc.cc +++ b/src/script_opt/ProfileFunc.cc @@ -80,6 +80,8 @@ ProfileFunc::ProfileFunc(const Expr* e, bool _abs_rec_fields) { void ProfileFunc::Profile(const FuncType* ft, const StmtPtr& body) { num_params = ft->Params()->NumFields(); + assert(profiled_scope != nullptr); + auto& ov = profiled_scope->OrderedVars(); for ( int i = 0; i < num_params; ++i ) params.insert(ov[i].get()); diff --git a/src/script_opt/ScriptOpt.cc b/src/script_opt/ScriptOpt.cc index 28dd288054..56ebaf8f11 100644 --- a/src/script_opt/ScriptOpt.cc +++ b/src/script_opt/ScriptOpt.cc @@ -66,12 +66,14 @@ void analyze_global_stmts(Stmt* stmts) { auto id = install_ID("", GLOBAL_MODULE_NAME, true, false); auto empty_args_t = make_intrusive(nullptr); auto func_t = make_intrusive(empty_args_t, nullptr, FUNC_FLAVOR_FUNCTION); + func_t->SetName(""); id->SetType(func_t); auto sc = current_scope(); std::vector empty_inits; global_stmts = make_intrusive(id); global_stmts->AddBody(stmts->ThisPtr(), empty_inits, sc->Length()); + global_stmts->SetScope(sc); global_stmts_ind = funcs.size(); funcs.emplace_back(global_stmts, sc, stmts->ThisPtr(), 0);