20 #ifndef TVM_S_TIR_META_SCHEDULE_SCHEDULE_RULE_H_
21 #define TVM_S_TIR_META_SCHEDULE_SCHEDULE_RULE_H_
23 #include <tvm/ffi/container/array.h>
24 #include <tvm/ffi/container/map.h>
25 #include <tvm/ffi/function.h>
26 #include <tvm/ffi/optional.h>
27 #include <tvm/ffi/reflection/registry.h>
28 #include <tvm/ffi/string.h>
34 namespace meta_schedule {
46 namespace refl = tvm::ffi::reflection;
47 refl::ObjectDef<ScheduleRuleNode>();
121 bool inline_const_tensor,
122 bool disallow_if_then_else,
123 bool require_injective,
124 bool require_ordered,
125 ffi::Optional<ffi::Array<ffi::String>> disallow_op);
156 ffi::String structure,
157 ffi::Optional<ffi::Array<ffi::String>> tile_binds,
158 ffi::Optional<int64_t> max_innermost_factor,
159 ffi::Optional<ffi::Array<int64_t>> vector_load_lens,
160 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_read,
161 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_write,
162 ffi::Optional<ffi::Function> filter_fn = std::nullopt);
182 ffi::String intrin_name, ffi::String structure,
183 ffi::Optional<ffi::Array<ffi::String>> tile_binds,
184 ffi::Optional<int64_t> max_innermost_factor,
185 ffi::Optional<ffi::Array<int64_t>> vector_load_lens,
186 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_read,
187 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_write);
210 ffi::Array<ffi::Map<ffi::String, ffi::String>> intrin_groups, ffi::String structure,
211 ffi::Optional<ffi::Array<ffi::String>> tile_binds,
212 ffi::Optional<int64_t> max_innermost_factor,
213 ffi::Optional<ffi::Array<int64_t>> vector_load_lens,
214 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_read,
215 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_write,
bool use_software_pipeline);
229 ffi::String structure, int64_t vector_length_in_bits,
230 ffi::Optional<int64_t> max_innermost_factor,
231 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_read,
232 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_write);
243 ffi::Optional<int64_t> max_innermost_factor);
270 int max_vectorize_extent,
271 ffi::Array<int64_t> unroll_max_steps,
272 bool unroll_explicit);
282 int max_threads_per_block = -1);
298 TVM_DLL
static ffi::Array<ScheduleRule, void>
DefaultX86(
const ffi::String& type);
306 TVM_DLL
static ffi::Array<ScheduleRule, void>
DefaultARM(
const ffi::String& type);
331 namespace refl = tvm::ffi::reflection;
332 refl::ObjectDef<PyScheduleRuleNode>();
Managed reference to SBlockRVNode.
Definition: schedule.h:65
Managed reference to ScheduleNode.
Definition: schedule.h:897
Managed reference to TuneContextNode.
Definition: tune_context.h:99
An object that builds and maintains block scope and StmtSref mapping for Dependence analysis.
Definition: analyzer.h:40