19 #ifndef TVM_S_TIR_META_SCHEDULE_DATABASE_H_
20 #define TVM_S_TIR_META_SCHEDULE_DATABASE_H_
22 #include <tvm/ffi/container/array.h>
23 #include <tvm/ffi/function.h>
24 #include <tvm/ffi/reflection/registry.h>
25 #include <tvm/ffi/string.h>
38 namespace meta_schedule {
53 namespace refl = tvm::ffi::reflection;
72 explicit Workload(ffi::ObjectPtr<WorkloadNode> data) : ffi::ObjectRef(data) {}
107 const ModuleEquality& mod_eq_;
128 namespace refl = tvm::ffi::reflection;
129 refl::ObjectDef<TuningRecordNode>()
170 ffi::Optional<ffi::Array<FloatImm>> run_secs,
171 ffi::Optional<Target> target,
172 ffi::Optional<ffi::Array<ArgInfo>> args_info);
246 const ffi::String& workload_name);
255 const ffi::String& workload_name);
264 const ffi::String& workload_name);
272 TVM_FFI_ICHECK(mod_eq_);
281 std::unique_ptr<ModuleEquality> mod_eq_;
356 const ffi::String&)>;
361 using FSize = ffi::TypedFunction<int64_t()>;
395 namespace refl = tvm::ffi::reflection;
396 refl::ObjectDef<PyDatabaseNode>();
400 TVM_FFI_ICHECK(
f_has_workload !=
nullptr) <<
"PyDatabase's HasWorkload method not implemented!";
406 <<
"PyDatabase's CommitWorkload method not implemented!";
412 <<
"PyDatabase's CommitTuningRecord method not implemented!";
417 TVM_FFI_ICHECK(
f_get_top_k !=
nullptr) <<
"PyDatabase's GetTopK method not implemented!";
423 <<
"PyDatabase's GetAllTuningRecords method not implemented!";
428 const ffi::String& workload_name)
final {
437 const ffi::String& workload_name)
final {
446 const ffi::String& workload_name)
final {
455 TVM_FFI_ICHECK(
f_size !=
nullptr) <<
"PyDatabase's Size method not implemented!";
473 explicit Database(ffi::ObjectPtr<DatabaseNode> data) : ffi::ObjectRef(data) {
474 TVM_FFI_ICHECK(data !=
nullptr);
488 ffi::String mod_eq_name =
"structural");
497 bool allow_missing, ffi::String mod_eq_name =
"structural");
537 ffi::String mod_eq_name =
"structural");
Managed reference class to IRModuleNode.
Definition: module.h:258
Managed reference class to TargetNode.
Definition: target.h:135
Managed reference to ScheduleNode.
Definition: schedule.h:897
Managed reference to TraceNode.
Definition: trace.h:144
IRModule that holds the functions and type definitions.
tvm::PrimExpr mod(const tvm::PrimExpr &a, const tvm::PrimExpr &b)
Definition: broadcast.h:308
An object that builds and maintains block scope and StmtSref mapping for Dependence analysis.
Definition: analyzer.h:37
Compilation target object.