You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tvm.apache.org by ru...@apache.org on 2025/07/15 00:03:27 UTC

(tvm) branch main updated: [FFI][REFACTOR] Modularize refelection (#18147)

This is an automated email from the ASF dual-hosted git repository.

ruihangl pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tvm.git


The following commit(s) were added to refs/heads/main by this push:
     new 36fb02cfac [FFI][REFACTOR] Modularize refelection (#18147)
36fb02cfac is described below

commit 36fb02cfac127243bc69adc4a399790c83f58b17
Author: Tianqi Chen <tq...@users.noreply.github.com>
AuthorDate: Mon Jul 14 20:03:21 2025 -0400

    [FFI][REFACTOR] Modularize refelection (#18147)
    
    This PR modules reflection of ffi into registry.h and accessor.h
    the dependent items are updated accordingly
---
 3rdparty/cutlass_fpA_intB_gemm                     |   2 +-
 apps/cpp_rpc/rpc_server.cc                         |   2 +-
 apps/ios_rpc/tvmrpc/TVMRuntime.mm                  |   2 +-
 ffi/include/tvm/ffi/reflection/accessor.h          | 198 +++++++++++++++++++++
 .../ffi/reflection/{reflection.h => registry.h}    | 167 +----------------
 ffi/src/ffi/container.cc                           |   2 +-
 ffi/src/ffi/function.cc                            |   2 +-
 ffi/src/ffi/ndarray.cc                             |   2 +-
 ffi/src/ffi/object.cc                              |   2 +-
 ffi/src/ffi/testing.cc                             |   2 +-
 ffi/tests/cpp/test_reflection.cc                   |   3 +-
 ffi/tests/cpp/testing_object.h                     |   2 +-
 include/tvm/arith/analyzer.h                       |   2 +-
 include/tvm/arith/iter_affine_map.h                |   2 +-
 include/tvm/ir/attrs.h                             |   3 +-
 include/tvm/ir/diagnostic.h                        |   2 +-
 include/tvm/ir/env_func.h                          |   2 +-
 include/tvm/ir/expr.h                              |   2 +-
 include/tvm/ir/global_info.h                       |   2 +-
 include/tvm/ir/global_var_supply.h                 |  10 +-
 include/tvm/ir/instrument.h                        |   2 +-
 include/tvm/ir/module.h                            |   2 +-
 include/tvm/ir/name_supply.h                       |   2 +-
 include/tvm/ir/op.h                                |   2 +-
 include/tvm/ir/source_map.h                        |   2 +-
 include/tvm/ir/transform.h                         |   2 +-
 include/tvm/ir/type.h                              |   2 +-
 include/tvm/meta_schedule/arg_info.h               |   2 +-
 include/tvm/meta_schedule/builder.h                |   2 +-
 include/tvm/meta_schedule/cost_model.h             |   2 +-
 include/tvm/meta_schedule/database.h               |   2 +-
 include/tvm/meta_schedule/extracted_task.h         |   2 +-
 include/tvm/meta_schedule/feature_extractor.h      |   2 +-
 include/tvm/meta_schedule/measure_callback.h       |   2 +-
 include/tvm/meta_schedule/measure_candidate.h      |   2 +-
 include/tvm/meta_schedule/mutator.h                |   2 +-
 include/tvm/meta_schedule/postproc.h               |   2 +-
 include/tvm/meta_schedule/profiler.h               |   2 +-
 include/tvm/meta_schedule/runner.h                 |   2 +-
 include/tvm/meta_schedule/schedule_rule.h          |   2 +-
 include/tvm/meta_schedule/search_strategy.h        |   2 +-
 include/tvm/meta_schedule/space_generator.h        |   2 +-
 include/tvm/meta_schedule/task_scheduler.h         |   2 +-
 include/tvm/meta_schedule/tune_context.h           |   2 +-
 include/tvm/node/script_printer.h                  |   2 +-
 include/tvm/relax/attrs/ccl.h                      |   2 +-
 include/tvm/relax/binding_rewrite.h                |   2 +-
 include/tvm/relax/dataflow_pattern.h               |   2 +-
 include/tvm/relax/exec_builder.h                   |   2 +-
 include/tvm/relax/expr.h                           |   2 +-
 include/tvm/relax/struct_info.h                    |   2 +-
 include/tvm/relax/tir_pattern.h                    |   2 +-
 include/tvm/relax/transform.h                      |   2 +-
 include/tvm/relax/type.h                           |   2 +-
 include/tvm/script/ir_builder/base.h               |   2 +-
 include/tvm/script/ir_builder/ir/frame.h           |   2 +-
 include/tvm/script/ir_builder/relax/frame.h        |   2 +-
 include/tvm/script/printer/doc.h                   |   2 +-
 include/tvm/script/printer/ir_docsifier.h          |   2 +-
 include/tvm/target/tag.h                           |   2 +-
 include/tvm/target/target.h                        |   2 +-
 include/tvm/target/target_info.h                   |   2 +-
 include/tvm/target/target_kind.h                   |   2 +-
 include/tvm/te/operation.h                         |   2 +-
 include/tvm/te/tensor.h                            |   2 +-
 include/tvm/tir/block_dependence_info.h            |   2 +-
 include/tvm/tir/buffer.h                           |   2 +-
 include/tvm/tir/data_layout.h                      |   2 +-
 include/tvm/tir/schedule/instruction.h             |   2 +-
 include/tvm/tir/schedule/state.h                   |   2 +-
 include/tvm/tir/stmt.h                             |   2 +-
 src/arith/analyzer.cc                              |   2 +-
 src/arith/bound_deducer.cc                         |   2 +-
 src/arith/const_int_bound.cc                       |   2 +-
 src/arith/detect_common_subexpr.cc                 |   2 +-
 src/arith/detect_linear_equation.cc                |   2 +-
 src/arith/domain_touched.cc                        |   2 +-
 src/arith/int_constraints.cc                       |   2 +-
 src/arith/int_set.cc                               |   2 +-
 src/arith/interval_set.h                           |   2 +-
 src/arith/iter_affine_map.cc                       |   2 +-
 src/arith/modular_set.cc                           |   2 +-
 src/arith/narrow_predicate_expression.cc           |   2 +-
 src/arith/presburger_set.cc                        |   2 +-
 src/arith/presburger_set.h                         |   2 +-
 src/arith/rewrite_simplify.h                       |   2 +-
 src/arith/solve_linear_equation.cc                 |   2 +-
 src/arith/solve_linear_inequality.cc               |   2 +-
 src/contrib/msc/core/ir/graph.cc                   |   2 +-
 src/contrib/msc/core/ir/graph.h                    |   2 +-
 src/contrib/msc/core/ir/graph_builder.cc           |   2 +-
 src/contrib/msc/core/ir/graph_builder.h            |   2 +-
 src/contrib/msc/core/ir/plugin.cc                  |   2 +-
 src/contrib/msc/core/ir/plugin.h                   |   2 +-
 src/contrib/msc/core/printer/msc_doc.h             |   2 +-
 .../msc/core/transform/bind_named_params.cc        |   2 +-
 src/contrib/msc/core/transform/bind_shape.cc       |   2 +-
 src/contrib/msc/core/transform/fuse_tuple.cc       |   2 +-
 src/contrib/msc/core/transform/inline_params.cc    |   2 +-
 src/contrib/msc/core/transform/set_byoc_attrs.cc   |   2 +-
 src/contrib/msc/core/transform/set_expr_layout.cc  |   2 +-
 src/contrib/msc/core/transform/set_expr_name.cc    |   2 +-
 src/contrib/msc/core/utils.cc                      |   2 +-
 src/contrib/msc/framework/tensorflow/codegen.cc    |   2 +-
 src/contrib/msc/framework/tensorrt/codegen.cc      |   2 +-
 .../msc/framework/tensorrt/transform_tensorrt.cc   |   2 +-
 src/contrib/msc/framework/torch/codegen.cc         |   2 +-
 src/contrib/msc/framework/tvm/codegen.cc           |   2 +-
 src/contrib/msc/plugin/tensorrt_codegen.cc         |   2 +-
 src/contrib/msc/plugin/torch_codegen.cc            |   2 +-
 src/contrib/msc/plugin/tvm_codegen.cc              |   2 +-
 src/ir/analysis.cc                                 |   2 +-
 src/ir/apply_pass_to_function.cc                   |   2 +-
 src/ir/attrs.cc                                    |   2 +-
 src/ir/diagnostic.cc                               |   2 +-
 src/ir/env_func.cc                                 |   2 +-
 src/ir/expr.cc                                     |   2 +-
 src/ir/function.cc                                 |   2 +-
 src/ir/global_info.cc                              |   2 +-
 src/ir/global_var_supply.cc                        |   2 +-
 src/ir/instrument.cc                               |   2 +-
 src/ir/module.cc                                   |   2 +-
 src/ir/name_supply.cc                              |   2 +-
 src/ir/op.cc                                       |   2 +-
 src/ir/replace_global_vars.cc                      |   2 +-
 src/ir/source_map.cc                               |   2 +-
 src/ir/transform.cc                                |   2 +-
 src/ir/type.cc                                     |   2 +-
 src/meta_schedule/arg_info.cc                      |   2 +-
 src/meta_schedule/builder/builder.cc               |   2 +-
 src/meta_schedule/cost_model/cost_model.cc         |   2 +-
 src/meta_schedule/database/database.cc             |   2 +-
 src/meta_schedule/database/json_database.cc        |   2 +-
 src/meta_schedule/database/memory_database.cc      |   2 +-
 .../database/ordered_union_database.cc             |   2 +-
 src/meta_schedule/database/schedule_fn_database.cc |   2 +-
 src/meta_schedule/database/union_database.cc       |   2 +-
 src/meta_schedule/extracted_task.cc                |   2 +-
 .../feature_extractor/feature_extractor.cc         |   2 +-
 .../feature_extractor/per_store_feature.cc         |   2 +-
 .../measure_callback/add_to_database.cc            |   2 +-
 .../measure_callback/measure_callback.cc           |   2 +-
 .../measure_callback/remove_build_artifact.cc      |   2 +-
 .../measure_callback/update_cost_model.cc          |   2 +-
 .../mutator/mutate_compute_location.cc             |   2 +-
 src/meta_schedule/mutator/mutate_parallel.cc       |   2 +-
 src/meta_schedule/mutator/mutate_thread_binding.cc |   2 +-
 src/meta_schedule/mutator/mutate_tile_size.cc      |   2 +-
 src/meta_schedule/mutator/mutate_unroll.cc         |   2 +-
 src/meta_schedule/mutator/mutator.cc               |   2 +-
 .../postproc/disallow_async_strided_mem_copy.cc    |   2 +-
 .../postproc/disallow_dynamic_loop.cc              |   2 +-
 src/meta_schedule/postproc/postproc.cc             |   2 +-
 .../postproc/rewrite_cooperative_fetch.cc          |   2 +-
 src/meta_schedule/postproc/rewrite_layout.cc       |   2 +-
 .../postproc/rewrite_parallel_vectorize_unroll.cc  |   2 +-
 .../postproc/rewrite_reduction_block.cc            |   2 +-
 src/meta_schedule/postproc/rewrite_tensorize.cc    |   2 +-
 .../postproc/rewrite_unbound_block.cc              |   2 +-
 src/meta_schedule/postproc/verify_gpu_code.cc      |   2 +-
 src/meta_schedule/postproc/verify_vtcm_limit.cc    |   2 +-
 src/meta_schedule/profiler.cc                      |   2 +-
 src/meta_schedule/runner/runner.cc                 |   2 +-
 src/meta_schedule/schedule/cpu/winograd.cc         |   2 +-
 src/meta_schedule/schedule/cuda/winograd.cc        |   2 +-
 src/meta_schedule/schedule_rule/add_rfactor.cc     |   2 +-
 .../schedule_rule/apply_custom_rule.cc             |   2 +-
 src/meta_schedule/schedule_rule/auto_bind.cc       |   2 +-
 src/meta_schedule/schedule_rule/auto_inline.cc     |   2 +-
 .../schedule_rule/cross_thread_reduction.cc        |   2 +-
 .../schedule_rule/multi_level_tiling.cc            |   2 +-
 .../schedule_rule/multi_level_tiling.h             |   2 +-
 .../multi_level_tiling_tensor_core.cc              |   2 +-
 .../multi_level_tiling_wide_vector.cc              |   2 +-
 .../multi_level_tiling_with_intrin.cc              |   2 +-
 .../schedule_rule/parallel_vectorize_unroll.cc     |   2 +-
 .../schedule_rule/random_compute_location.cc       |   2 +-
 src/meta_schedule/schedule_rule/schedule_rule.cc   |   2 +-
 .../search_strategy/evolutionary_search.cc         |   2 +-
 src/meta_schedule/search_strategy/replay_func.cc   |   2 +-
 src/meta_schedule/search_strategy/replay_trace.cc  |   2 +-
 .../search_strategy/search_strategy.cc             |   2 +-
 .../space_generator/post_order_apply.cc            |   2 +-
 src/meta_schedule/space_generator/schedule_fn.cc   |   2 +-
 .../space_generator/space_generator.cc             |   2 +-
 .../space_generator/space_generator_union.cc       |   2 +-
 src/meta_schedule/task_scheduler/gradient_based.cc |   2 +-
 src/meta_schedule/task_scheduler/round_robin.cc    |   2 +-
 src/meta_schedule/task_scheduler/task_scheduler.cc |   2 +-
 src/meta_schedule/trace_apply.cc                   |   2 +-
 src/meta_schedule/tune_context.cc                  |   2 +-
 src/node/object_path.cc                            |   2 +-
 src/node/reflection.cc                             |   3 +-
 src/node/repr_printer.cc                           |   2 +-
 src/node/script_printer.cc                         |   2 +-
 src/node/serialization.cc                          |   3 +-
 src/node/structural_equal.cc                       |   2 +-
 src/node/structural_hash.cc                        |   2 +-
 src/relax/analysis/analysis.cc                     |   2 +-
 src/relax/analysis/computable_at_compile_time.cc   |   2 +-
 src/relax/analysis/detect_recursion.cc             |   2 +-
 src/relax/analysis/layout_transformation.cc        |   2 +-
 src/relax/analysis/struct_info_analysis.cc         |   2 +-
 src/relax/analysis/tir_op_pattern_kind.cc          |   2 +-
 src/relax/analysis/udchain.cc                      |   2 +-
 src/relax/analysis/var2value.cc                    |   2 +-
 src/relax/analysis/well_formed.cc                  |   2 +-
 src/relax/backend/contrib/clml/codegen.cc          |   2 +-
 .../backend/contrib/codegen_json/codegen_json.h    |   3 +-
 src/relax/backend/contrib/cublas/codegen.cc        |   2 +-
 src/relax/backend/contrib/cudnn/codegen.cc         |   2 +-
 src/relax/backend/contrib/cutlass/codegen.cc       |   2 +-
 src/relax/backend/contrib/dnnl/codegen.cc          |   2 +-
 src/relax/backend/contrib/hipblas/codegen.cc       |   2 +-
 src/relax/backend/contrib/nnapi/codegen.cc         |   2 +-
 src/relax/backend/contrib/tensorrt/codegen.cc      |   2 +-
 src/relax/backend/contrib/utils.cc                 |   2 +-
 src/relax/backend/pattern_registry.cc              |   2 +-
 src/relax/backend/task_extraction.cc               |   2 +-
 src/relax/backend/vm/codegen_vm.cc                 |   2 +-
 src/relax/backend/vm/codegen_vm_tir.cc             |   2 +-
 src/relax/backend/vm/exec_builder.cc               |   2 +-
 src/relax/backend/vm/lower_runtime_builtin.cc      |   2 +-
 src/relax/backend/vm/vm_shape_lower.cc             |   2 +-
 src/relax/distributed/global_info.cc               |   2 +-
 src/relax/distributed/struct_info.cc               |   2 +-
 .../distributed/transform/legalize_redistribute.cc |   2 +-
 src/relax/distributed/transform/lower_distir.cc    |   2 +-
 .../transform/lower_global_view_to_local_view.cc   |   2 +-
 .../distributed/transform/propagate_sharding.cc    |   2 +-
 src/relax/ir/binding_rewrite.cc                    |   2 +-
 src/relax/ir/block_builder.cc                      |   2 +-
 src/relax/ir/dataflow_block_rewriter.cc            |   2 +-
 src/relax/ir/dataflow_expr_rewriter.cc             |   2 +-
 src/relax/ir/dataflow_pattern.cc                   |   2 +-
 src/relax/ir/dataflow_rewriter.h                   |   2 +-
 src/relax/ir/emit_te.cc                            |   2 +-
 src/relax/ir/emit_te.h                             |   2 +-
 src/relax/ir/expr.cc                               |   2 +-
 src/relax/ir/expr_functor.cc                       |   2 +-
 src/relax/ir/py_expr_functor.cc                    |   2 +-
 src/relax/ir/struct_info.cc                        |   2 +-
 src/relax/ir/transform.cc                          |   2 +-
 src/relax/ir/type.cc                               |   2 +-
 src/relax/op/ccl/ccl.cc                            |   2 +-
 src/relax/op/distributed/distributed.cc            |   2 +-
 src/relax/op/image/resize.cc                       |   2 +-
 src/relax/op/memory/view.cc                        |   2 +-
 src/relax/op/nn/attention.cc                       |   2 +-
 src/relax/op/nn/convolution.cc                     |   2 +-
 src/relax/op/nn/nn.cc                              |   2 +-
 src/relax/op/nn/pooling.cc                         |   2 +-
 src/relax/op/op.cc                                 |   2 +-
 src/relax/op/tensor/create.cc                      |   2 +-
 src/relax/op/tensor/datatype.cc                    |   2 +-
 src/relax/op/tensor/grad.cc                        |   2 +-
 src/relax/op/tensor/index.cc                       |   2 +-
 src/relax/op/tensor/linear_algebra.cc              |   2 +-
 src/relax/op/tensor/manipulate.cc                  |   2 +-
 src/relax/op/tensor/qdq.cc                         |   2 +-
 src/relax/op/tensor/sampling.cc                    |   2 +-
 src/relax/op/tensor/search.cc                      |   2 +-
 src/relax/op/tensor/set.cc                         |   2 +-
 src/relax/op/tensor/sorting.cc                     |   2 +-
 src/relax/op/tensor/statistical.cc                 |   2 +-
 src/relax/op/tensor/ternary.cc                     |   2 +-
 src/relax/op/tensor/unary.cc                       |   2 +-
 src/relax/testing/transform.cc                     |   2 +-
 src/relax/training/utils.cc                        |   2 +-
 src/relax/transform/adjust_matmul_order.cc         |   2 +-
 src/relax/transform/allocate_workspace.cc          |   2 +-
 src/relax/transform/alter_op_impl.cc               |   2 +-
 src/relax/transform/annotate_tir_op_pattern.cc     |   2 +-
 .../transform/attach_attr_layout_free_buffers.cc   |   2 +-
 src/relax/transform/attach_global_symbol.cc        |   2 +-
 src/relax/transform/bind_params.cc                 |   2 +-
 src/relax/transform/bind_symbolic_vars.cc          |   2 +-
 src/relax/transform/bundle_model_params.cc         |   2 +-
 src/relax/transform/call_tir_rewrite.cc            |   2 +-
 src/relax/transform/canonicalize_bindings.cc       |   2 +-
 src/relax/transform/combine_parallel_matmul.cc     |   2 +-
 src/relax/transform/compute_prim_value.cc          |   2 +-
 src/relax/transform/convert_dataflow.cc            |   2 +-
 src/relax/transform/convert_layout.cc              |   2 +-
 src/relax/transform/dataflow_inplace.cc            |   2 +-
 src/relax/transform/dead_code_elimination.cc       |   2 +-
 src/relax/transform/decompose_ops.cc               |   2 +-
 src/relax/transform/eliminate_common_subexpr.cc    |   2 +-
 src/relax/transform/expand_matmul_of_sum.cc        |   2 +-
 src/relax/transform/expand_tuple_arguments.cc      |   2 +-
 src/relax/transform/few_shot_tuning.cc             |   2 +-
 src/relax/transform/fold_constant.cc               |   2 +-
 src/relax/transform/fuse_ops.cc                    |   2 +-
 src/relax/transform/fuse_tir.cc                    |   2 +-
 src/relax/transform/gradient.cc                    |   2 +-
 src/relax/transform/infer_layout_utils.cc          |   2 +-
 src/relax/transform/infer_layout_utils.h           |   2 +-
 src/relax/transform/inline_functions.cc            |   2 +-
 src/relax/transform/kill_after_last_use.cc         |   2 +-
 src/relax/transform/lambda_lift.cc                 |   2 +-
 src/relax/transform/lazy_transform_params.cc       |   2 +-
 src/relax/transform/legalize_ops.cc                |   2 +-
 src/relax/transform/lift_transform_params.cc       |   2 +-
 src/relax/transform/lower_alloc_tensor.cc          |   2 +-
 src/relax/transform/merge_composite_functions.cc   |   2 +-
 src/relax/transform/meta_schedule.cc               |   2 +-
 src/relax/transform/normalize.cc                   |   2 +-
 src/relax/transform/realize_vdevice.cc             |   2 +-
 src/relax/transform/remove_purity_checking.cc      |   2 +-
 src/relax/transform/remove_unused_outputs.cc       |   2 +-
 src/relax/transform/remove_unused_parameters.cc    |   2 +-
 .../transform/reorder_permute_dims_after_concat.cc |   2 +-
 src/relax/transform/reorder_take_after_matmul.cc   |   2 +-
 src/relax/transform/rewrite_cuda_graph.cc          |   2 +-
 src/relax/transform/rewrite_dataflow_reshape.cc    |   2 +-
 src/relax/transform/run_codegen.cc                 |   2 +-
 src/relax/transform/split_call_tir_by_pattern.cc   |   2 +-
 .../transform/split_layout_rewrite_preproc.cc      |   2 +-
 src/relax/transform/static_plan_block_memory.cc    |   2 +-
 src/relax/transform/to_mixed_precision.cc          |   2 +-
 src/relax/transform/to_non_dataflow.cc             |   2 +-
 src/relax/transform/topological_sort.cc            |   2 +-
 src/relax/transform/update_param_struct_info.cc    |   2 +-
 src/relax/transform/update_vdevice.cc              |   2 +-
 src/relax/utils.cc                                 |   2 +-
 src/runtime/const_loader_module.cc                 |   2 +-
 src/runtime/contrib/amx/amx_config.cc              |   2 +-
 src/runtime/contrib/arm_compute_lib/acl_runtime.cc |   2 +-
 src/runtime/contrib/bnns/bnns_json_runtime.cc      |   2 +-
 src/runtime/contrib/cblas/cblas.cc                 |   2 +-
 src/runtime/contrib/cblas/dnnl_blas.cc             |   2 +-
 src/runtime/contrib/cblas/mkl.cc                   |   2 +-
 src/runtime/contrib/clml/clml_runtime.cc           |   2 +-
 src/runtime/contrib/coreml/coreml_runtime.mm       |   2 +-
 src/runtime/contrib/cublas/cublas.cc               |   2 +-
 src/runtime/contrib/cublas/cublas_json_runtime.cc  |   2 +-
 src/runtime/contrib/cudnn/conv_backward.cc         |   2 +-
 src/runtime/contrib/cudnn/conv_forward.cc          |   2 +-
 src/runtime/contrib/cudnn/cudnn_json_runtime.cc    |   2 +-
 src/runtime/contrib/cudnn/cudnn_utils.cc           |   2 +-
 src/runtime/contrib/cudnn/softmax.cc               |   2 +-
 src/runtime/contrib/curand/curand.cc               |   2 +-
 .../contrib/cutlass/fp16_group_gemm_sm100.cu       |   2 +-
 .../contrib/cutlass/fp16_group_gemm_sm90.cu        |   2 +-
 src/runtime/contrib/cutlass/fp8_gemm.cu            |   2 +-
 src/runtime/contrib/cutlass/fp8_group_gemm_sm90.cu |   2 +-
 .../cutlass/fp8_groupwise_scaled_gemm_sm100.cu     |   2 +-
 .../cutlass/fp8_groupwise_scaled_gemm_sm90.cu      |   2 +-
 .../fp8_groupwise_scaled_group_gemm_sm100.cu       |   2 +-
 src/runtime/contrib/cutlass/weight_preprocess.cc   |   2 +-
 src/runtime/contrib/dnnl/dnnl.cc                   |   2 +-
 src/runtime/contrib/dnnl/dnnl_json_runtime.cc      |   2 +-
 src/runtime/contrib/edgetpu/edgetpu_runtime.cc     |   2 +-
 src/runtime/contrib/hipblas/hipblas.cc             |   2 +-
 .../contrib/hipblas/hipblas_json_runtime.cc        |   2 +-
 src/runtime/contrib/miopen/conv_forward.cc         |   2 +-
 src/runtime/contrib/miopen/softmax.cc              |   2 +-
 src/runtime/contrib/mps/conv.mm                    |   2 +-
 src/runtime/contrib/mps/gemm.mm                    |   2 +-
 src/runtime/contrib/mrvl/mrvl_hw_runtime.cc        |   2 +-
 src/runtime/contrib/mrvl/mrvl_runtime.cc           |   2 +-
 src/runtime/contrib/msc/tensorrt_runtime.cc        |   2 +-
 src/runtime/contrib/nnapi/nnapi_runtime.cc         |   2 +-
 src/runtime/contrib/nvshmem/init.cc                |   2 +-
 src/runtime/contrib/nvshmem/kv_transfer.cu         |   2 +-
 src/runtime/contrib/nvshmem/memory_allocator.cc    |   2 +-
 src/runtime/contrib/papi/papi.cc                   |   2 +-
 src/runtime/contrib/random/random.cc               |   2 +-
 src/runtime/contrib/rocblas/rocblas.cc             |   2 +-
 src/runtime/contrib/sort/sort.cc                   |   2 +-
 src/runtime/contrib/tensorrt/tensorrt_runtime.cc   |   2 +-
 src/runtime/contrib/tflite/tflite_runtime.cc       |   2 +-
 src/runtime/contrib/thrust/thrust.cu               |   2 +-
 src/runtime/contrib/vllm/attention_kernels.cu      |   2 +-
 src/runtime/contrib/vllm/cache_alloc.cc            |   2 +-
 src/runtime/contrib/vllm/cache_kernels.cu          |   2 +-
 src/runtime/cpu_device_api.cc                      |   2 +-
 src/runtime/cuda/cuda_device_api.cc                |   2 +-
 src/runtime/cuda/cuda_module.cc                    |   2 +-
 src/runtime/cuda/l2_cache_flush.cc                 |   2 +-
 src/runtime/device_api.cc                          |   2 +-
 src/runtime/disco/builtin.cc                       |   2 +-
 src/runtime/disco/cuda_ipc/cuda_ipc_memory.cc      |   2 +-
 src/runtime/disco/cuda_ipc/custom_allreduce.cc     |   2 +-
 src/runtime/disco/distributed/socket_session.cc    |   2 +-
 src/runtime/disco/loader.cc                        |   2 +-
 src/runtime/disco/nccl/nccl.cc                     |   2 +-
 src/runtime/disco/process_session.cc               |   2 +-
 src/runtime/disco/session.cc                       |   2 +-
 src/runtime/dso_library.cc                         |   2 +-
 src/runtime/file_utils.cc                          |   2 +-
 src/runtime/hexagon/hexagon_common.cc              |   2 +-
 src/runtime/hexagon/hexagon_device_api.cc          |   2 +-
 src/runtime/hexagon/rpc/android/session.cc         |   2 +-
 src/runtime/hexagon/rpc/hexagon/rpc_server.cc      |   2 +-
 src/runtime/hexagon/rpc/simulator/rpc_server.cc    |   2 +-
 src/runtime/hexagon/rpc/simulator/session.cc       |   2 +-
 src/runtime/memory/memory_manager.cc               |   2 +-
 src/runtime/metal/metal_device_api.mm              |   2 +-
 src/runtime/metal/metal_module.mm                  |   2 +-
 src/runtime/module.cc                              |   2 +-
 src/runtime/ndarray.cc                             |   2 +-
 src/runtime/opencl/opencl_device_api.cc            |   2 +-
 src/runtime/opencl/opencl_module.cc                |   2 +-
 src/runtime/profiling.cc                           |   2 +-
 src/runtime/rocm/rocm_device_api.cc                |   2 +-
 src/runtime/rocm/rocm_module.cc                    |   2 +-
 src/runtime/rpc/rpc_device_api.cc                  |   2 +-
 src/runtime/rpc/rpc_event_impl.cc                  |   2 +-
 src/runtime/rpc/rpc_local_session.cc               |   2 +-
 src/runtime/rpc/rpc_module.cc                      |   2 +-
 src/runtime/rpc/rpc_pipe_impl.cc                   |   2 +-
 src/runtime/rpc/rpc_server_env.cc                  |   2 +-
 src/runtime/rpc/rpc_socket_impl.cc                 |   2 +-
 src/runtime/static_library.cc                      |   2 +-
 src/runtime/system_library.cc                      |   2 +-
 src/runtime/thread_pool.cc                         |   2 +-
 src/runtime/threading_backend.cc                   |   2 +-
 src/runtime/vm/builtin.cc                          |   2 +-
 src/runtime/vm/cuda/cuda_graph_builtin.cc          |   2 +-
 src/runtime/vm/executable.cc                       |   2 +-
 src/runtime/vm/hexagon/builtin.cc                  |   2 +-
 src/runtime/vm/kv_state.cc                         |   2 +-
 src/runtime/vm/lm_support.cc                       |   2 +-
 src/runtime/vm/ndarray_cache_support.cc            |   2 +-
 src/runtime/vm/paged_kv_cache.cc                   |   2 +-
 src/runtime/vm/rnn_state.cc                        |   2 +-
 src/runtime/vulkan/vulkan_device_api.cc            |   2 +-
 src/runtime/vulkan/vulkan_module.cc                |   2 +-
 src/script/ir_builder/base.cc                      |   2 +-
 src/script/ir_builder/ir/ir.cc                     |   2 +-
 src/script/ir_builder/relax/distributed.cc         |   2 +-
 src/script/ir_builder/relax/ir.cc                  |   2 +-
 src/script/ir_builder/tir/ir.cc                    |   2 +-
 src/script/printer/doc.cc                          |   2 +-
 .../printer/doc_printer/python_doc_printer.cc      |   2 +-
 src/script/printer/ir/utils.h                      |   2 +-
 src/script/printer/ir_docsifier.cc                 |   3 +-
 src/script/printer/relax/call.cc                   |   3 +-
 src/script/printer/relax/type.cc                   |   2 +-
 src/script/printer/relax/utils.h                   |   2 +-
 src/script/printer/tir/utils.h                     |   2 +-
 src/support/ffi_testing.cc                         |   2 +-
 src/support/libinfo.cc                             |   2 +-
 src/target/codegen.cc                              |   2 +-
 src/target/datatype/registry.cc                    |   2 +-
 src/target/llvm/codegen_aarch64.cc                 |   2 +-
 src/target/llvm/codegen_amdgpu.cc                  |   2 +-
 src/target/llvm/codegen_arm.cc                     |   2 +-
 src/target/llvm/codegen_cpu.cc                     |   2 +-
 src/target/llvm/codegen_hexagon.cc                 |   2 +-
 src/target/llvm/codegen_llvm.cc                    |   2 +-
 src/target/llvm/codegen_nvptx.cc                   |   2 +-
 src/target/llvm/codegen_x86_64.cc                  |   2 +-
 src/target/llvm/llvm_module.cc                     |   2 +-
 src/target/opt/build_cuda_on.cc                    |   2 +-
 src/target/source/codegen_c_host.cc                |   2 +-
 src/target/source/codegen_metal.cc                 |   2 +-
 src/target/source/codegen_opencl.cc                |   2 +-
 src/target/source/codegen_webgpu.cc                |   2 +-
 src/target/source/source_module.cc                 |   2 +-
 src/target/spirv/build_vulkan.cc                   |   2 +-
 src/target/tag.cc                                  |   2 +-
 src/target/target.cc                               |   2 +-
 src/target/target_kind.cc                          |   2 +-
 src/target/virtual_device.cc                       |   2 +-
 src/te/operation/compute_op.cc                     |   2 +-
 src/te/operation/create_primfunc.cc                |   2 +-
 src/te/operation/extern_op.cc                      |   2 +-
 src/te/operation/graph.cc                          |   2 +-
 src/te/operation/placeholder_op.cc                 |   2 +-
 src/te/operation/scan_op.cc                        |   2 +-
 src/te/tensor.cc                                   |   2 +-
 src/tir/analysis/block_access_region_detector.cc   |   2 +-
 src/tir/analysis/buffer_access_lca_detector.cc     |   2 +-
 src/tir/analysis/calculate_allocated_memory.cc     |   2 +-
 src/tir/analysis/deep_equal.cc                     |   2 +-
 src/tir/analysis/estimate_flops.cc                 |   2 +-
 src/tir/analysis/identify_memcpy.cc                |   2 +-
 src/tir/analysis/is_pure_function.cc               |   2 +-
 src/tir/analysis/oob_checker.cc                    |   2 +-
 src/tir/analysis/stmt_finding.cc                   |   2 +-
 src/tir/analysis/var_use_def_analysis.cc           |   2 +-
 src/tir/analysis/verify_gpu_code.cc                |   2 +-
 src/tir/analysis/verify_memory.cc                  |   2 +-
 src/tir/analysis/verify_ssa.cc                     |   2 +-
 src/tir/analysis/verify_well_formed.cc             |   2 +-
 src/tir/ir/block_dependence_info.cc                |   2 +-
 src/tir/ir/block_scope.cc                          |   2 +-
 src/tir/ir/buffer.cc                               |   2 +-
 src/tir/ir/data_layout.cc                          |   2 +-
 src/tir/ir/expr.cc                                 |   2 +-
 src/tir/ir/function.cc                             |   2 +-
 src/tir/ir/index_map.cc                            |   2 +-
 src/tir/ir/py_functor.cc                           |   2 +-
 src/tir/ir/script/script_complete.cc               |   2 +-
 src/tir/ir/specialize.cc                           |   2 +-
 src/tir/ir/stmt.cc                                 |   2 +-
 src/tir/ir/stmt_functor.cc                         |   2 +-
 src/tir/ir/transform.cc                            |   2 +-
 src/tir/op/op.cc                                   |   2 +-
 src/tir/schedule/analysis/analysis.cc              |   2 +-
 src/tir/schedule/analysis/layout.cc                |   2 +-
 src/tir/schedule/instruction.cc                    |   2 +-
 src/tir/schedule/primitive/decompose_padding.cc    |   2 +-
 src/tir/schedule/primitive/reduction.cc            |   2 +-
 src/tir/schedule/schedule.cc                       |   2 +-
 src/tir/schedule/state.cc                          |   2 +-
 src/tir/schedule/trace.cc                          |   2 +-
 src/tir/schedule/transform.cc                      |   2 +-
 src/tir/transforms/annotate_device_regions.cc      |   2 +-
 src/tir/transforms/bind_target.cc                  |   2 +-
 src/tir/transforms/bound_checker.cc                |   2 +-
 src/tir/transforms/combine_context_call.cc         |   2 +-
 src/tir/transforms/common_subexpr_elim.cc          |   2 +-
 src/tir/transforms/compact_buffer_region.cc        |   2 +-
 src/tir/transforms/convert_blocks_to_opaque.cc     |   2 +-
 src/tir/transforms/convert_for_loops_serial.cc     |   2 +-
 src/tir/transforms/decorate_device_scope.cc        |   2 +-
 src/tir/transforms/default_gpu_schedule.cc         |   2 +-
 src/tir/transforms/extract_constants.cc            |   2 +-
 src/tir/transforms/flatten_buffer.cc               |   2 +-
 src/tir/transforms/force_narrow_index_to_i32.cc    |   2 +-
 src/tir/transforms/hoist_expression.cc             |   2 +-
 src/tir/transforms/inject_double_buffer.cc         |   2 +-
 src/tir/transforms/inject_permuted_layout.cc       |   2 +-
 src/tir/transforms/inject_ptx_async_copy.cc        |   2 +-
 src/tir/transforms/inject_ptx_ldg32.cc             |   2 +-
 src/tir/transforms/inject_rolling_buffer.cc        |   2 +-
 src/tir/transforms/inject_software_pipeline.cc     |   2 +-
 src/tir/transforms/inject_virtual_thread.cc        |   2 +-
 src/tir/transforms/inline_private_functions.cc     |   2 +-
 src/tir/transforms/ir_utils.cc                     |   2 +-
 src/tir/transforms/lift_thread_binding.cc          |   2 +-
 src/tir/transforms/loop_partition.cc               |   2 +-
 src/tir/transforms/lower_async_dma.cc              |   2 +-
 src/tir/transforms/lower_cross_thread_reduction.cc |   2 +-
 src/tir/transforms/lower_custom_datatypes.cc       |   2 +-
 src/tir/transforms/lower_device_kernel_launch.cc   |   2 +-
 .../transforms/lower_device_storage_access_info.cc |   2 +-
 src/tir/transforms/lower_init_block.cc             |   2 +-
 src/tir/transforms/lower_intrin.cc                 |   2 +-
 src/tir/transforms/lower_match_buffer.cc           |   2 +-
 src/tir/transforms/lower_opaque_block.cc           |   2 +-
 src/tir/transforms/lower_thread_allreduce.cc       |   2 +-
 src/tir/transforms/lower_tvm_builtin.cc            |   2 +-
 src/tir/transforms/lower_vtcm_alloc.cc             |   2 +-
 src/tir/transforms/lower_warp_memory.cc            |   2 +-
 src/tir/transforms/make_packed_api.cc              |   2 +-
 src/tir/transforms/make_unpacked_api.cc            |   2 +-
 .../manifest_shared_memory_local_stage.cc          |   2 +-
 src/tir/transforms/memhammer_lower_auto_copy.cc    |   2 +-
 .../transforms/merge_shared_memory_allocations.cc  |   2 +-
 src/tir/transforms/narrow_datatype.cc              |   2 +-
 .../plan_update_buffer_allocation_location.cc      |   2 +-
 src/tir/transforms/primfunc_utils.cc               |   2 +-
 src/tir/transforms/profile_instrumentation.cc      |   2 +-
 .../reduce_branching_through_overcompute.cc        |   2 +-
 src/tir/transforms/remap_thread_axis.cc            |   2 +-
 src/tir/transforms/remove_assume.cc                |   2 +-
 src/tir/transforms/remove_no_op.cc                 |   2 +-
 src/tir/transforms/remove_store_undef.cc           |   2 +-
 .../remove_weight_layout_rewrite_block.cc          |   2 +-
 src/tir/transforms/renew_defs.cc                   |   2 +-
 src/tir/transforms/renormalize_split_pattern.cc    |   2 +-
 src/tir/transforms/rewrite_unsafe_select.cc        |   2 +-
 src/tir/transforms/simplify.cc                     |   2 +-
 src/tir/transforms/skip_assert.cc                  |   2 +-
 src/tir/transforms/split_host_device.cc            |   2 +-
 src/tir/transforms/storage_rewrite.cc              |   2 +-
 src/tir/transforms/tensorcore_infer_fragment.cc    |   2 +-
 src/tir/transforms/thread_storage_sync.cc          |   2 +-
 src/tir/transforms/transform_mma_buffer_layout.cc  |   2 +-
 src/tir/transforms/unify_thread_binding.cc         |   2 +-
 src/tir/transforms/unroll_loop.cc                  |   2 +-
 src/tir/transforms/unsupported_dtype_legalize.cc   |   2 +-
 .../transforms/using_assume_to_reduce_branches.cc  |   2 +-
 src/tir/transforms/vectorize_loop.cc               |   2 +-
 src/topi/broadcast.cc                              |   2 +-
 src/topi/einsum.cc                                 |   2 +-
 src/topi/elemwise.cc                               |   2 +-
 src/topi/nn.cc                                     |   2 +-
 src/topi/reduction.cc                              |   2 +-
 src/topi/transform.cc                              |   2 +-
 src/topi/utils.cc                                  |   2 +-
 src/topi/vision.cc                                 |   2 +-
 tests/cpp-runtime/hexagon/run_all_tests.cc         |   2 +-
 tests/cpp-runtime/hexagon/run_unit_tests.cc        |   2 +-
 web/emcc/tvmjs_support.cc                          |   2 +-
 web/emcc/wasm_runtime.cc                           |   2 +-
 web/emcc/webgpu_runtime.cc                         |   2 +-
 591 files changed, 803 insertions(+), 755 deletions(-)

diff --git a/3rdparty/cutlass_fpA_intB_gemm b/3rdparty/cutlass_fpA_intB_gemm
index 0697a51136..e9dfd172ca 160000
--- a/3rdparty/cutlass_fpA_intB_gemm
+++ b/3rdparty/cutlass_fpA_intB_gemm
@@ -1 +1 @@
-Subproject commit 0697a511366194fc305649da0746308439fd7a75
+Subproject commit e9dfd172ca4f32ad3fd20e46259b35159390cf91
diff --git a/apps/cpp_rpc/rpc_server.cc b/apps/cpp_rpc/rpc_server.cc
index 07fa000ffc..797692d0f5 100644
--- a/apps/cpp_rpc/rpc_server.cc
+++ b/apps/cpp_rpc/rpc_server.cc
@@ -22,7 +22,7 @@
  * \brief RPC Server implementation.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #if defined(__linux__) || defined(__ANDROID__) || defined(__APPLE__)
 #include <signal.h>
 #include <sys/select.h>
diff --git a/apps/ios_rpc/tvmrpc/TVMRuntime.mm b/apps/ios_rpc/tvmrpc/TVMRuntime.mm
index 213a12539d..c6f6251573 100644
--- a/apps/ios_rpc/tvmrpc/TVMRuntime.mm
+++ b/apps/ios_rpc/tvmrpc/TVMRuntime.mm
@@ -24,7 +24,7 @@
 #import <Foundation/Foundation.h>
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "RPCArgs.h"
 
diff --git a/ffi/include/tvm/ffi/reflection/accessor.h b/ffi/include/tvm/ffi/reflection/accessor.h
new file mode 100644
index 0000000000..17cd1db81f
--- /dev/null
+++ b/ffi/include/tvm/ffi/reflection/accessor.h
@@ -0,0 +1,198 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*!
+ * \file tvm/ffi/reflection/accessor.h
+ * \brief Reflection-based accessor for object fields and methods.
+ */
+#ifndef TVM_FFI_REFLECTION_ACCESSOR_H_
+#define TVM_FFI_REFLECTION_ACCESSOR_H_
+
+#include <tvm/ffi/any.h>
+#include <tvm/ffi/c_api.h>
+#include <tvm/ffi/function.h>
+#include <tvm/ffi/type_traits.h>
+
+#include <string>
+#include <utility>
+
+namespace tvm {
+namespace ffi {
+namespace reflection {
+
+/*!
+ * \brief helper function to get reflection field info by type key and field name
+ */
+inline const TVMFFIFieldInfo* GetFieldInfo(std::string_view type_key, const char* field_name) {
+  int32_t type_index;
+  TVMFFIByteArray type_key_array = {type_key.data(), type_key.size()};
+  TVM_FFI_CHECK_SAFE_CALL(TVMFFITypeKeyToIndex(&type_key_array, &type_index));
+  const TypeInfo* info = TVMFFIGetTypeInfo(type_index);
+  for (int32_t i = 0; i < info->num_fields; ++i) {
+    if (std::strncmp(info->fields[i].name.data, field_name, info->fields[i].name.size) == 0) {
+      return &(info->fields[i]);
+    }
+  }
+  TVM_FFI_THROW(RuntimeError) << "Cannot find field " << field_name << " in " << type_key;
+  TVM_FFI_UNREACHABLE();
+}
+
+/*!
+ * \brief helper wrapper class to obtain a getter.
+ */
+class FieldGetter {
+ public:
+  explicit FieldGetter(const TVMFFIFieldInfo* field_info) : field_info_(field_info) {}
+
+  explicit FieldGetter(std::string_view type_key, const char* field_name)
+      : FieldGetter(GetFieldInfo(type_key, field_name)) {}
+
+  Any operator()(const Object* obj_ptr) const {
+    Any result;
+    const void* addr = reinterpret_cast<const char*>(obj_ptr) + field_info_->offset;
+    TVM_FFI_CHECK_SAFE_CALL(
+        field_info_->getter(const_cast<void*>(addr), reinterpret_cast<TVMFFIAny*>(&result)));
+    return result;
+  }
+
+  Any operator()(const ObjectPtr<Object>& obj_ptr) const { return operator()(obj_ptr.get()); }
+
+  Any operator()(const ObjectRef& obj) const { return operator()(obj.get()); }
+
+ private:
+  const TVMFFIFieldInfo* field_info_;
+};
+
+/*!
+ * \brief helper wrapper class to obtain a setter.
+ */
+class FieldSetter {
+ public:
+  explicit FieldSetter(const TVMFFIFieldInfo* field_info) : field_info_(field_info) {}
+
+  explicit FieldSetter(std::string_view type_key, const char* field_name)
+      : FieldSetter(GetFieldInfo(type_key, field_name)) {}
+
+  void operator()(const Object* obj_ptr, AnyView value) const {
+    const void* addr = reinterpret_cast<const char*>(obj_ptr) + field_info_->offset;
+    TVM_FFI_CHECK_SAFE_CALL(
+        field_info_->setter(const_cast<void*>(addr), reinterpret_cast<const TVMFFIAny*>(&value)));
+  }
+
+  void operator()(const ObjectPtr<Object>& obj_ptr, AnyView value) const {
+    operator()(obj_ptr.get(), value);
+  }
+
+  void operator()(const ObjectRef& obj, AnyView value) const { operator()(obj.get(), value); }
+
+ private:
+  const TVMFFIFieldInfo* field_info_;
+};
+
+/*!
+ * \brief helper function to get reflection method info by type key and method name
+ *
+ * \param type_key The type key.
+ * \param method_name The name of the method.
+ * \return The method info.
+ */
+inline const TVMFFIMethodInfo* GetMethodInfo(std::string_view type_key, const char* method_name) {
+  int32_t type_index;
+  TVMFFIByteArray type_key_array = {type_key.data(), type_key.size()};
+  TVM_FFI_CHECK_SAFE_CALL(TVMFFITypeKeyToIndex(&type_key_array, &type_index));
+  const TypeInfo* info = TVMFFIGetTypeInfo(type_index);
+  for (int32_t i = 0; i < info->num_methods; ++i) {
+    if (std::strncmp(info->methods[i].name.data, method_name, info->methods[i].name.size) == 0) {
+      return &(info->methods[i]);
+    }
+  }
+  TVM_FFI_THROW(RuntimeError) << "Cannot find method " << method_name << " in " << type_key;
+  TVM_FFI_UNREACHABLE();
+}
+
+/*!
+ * \brief helper function to get reflection method function by method info
+ *
+ * \param type_key The type key.
+ * \param method_name The name of the method.
+ * \return The method function.
+ */
+inline Function GetMethod(std::string_view type_key, const char* method_name) {
+  const TVMFFIMethodInfo* info = GetMethodInfo(type_key, method_name);
+  return AnyView::CopyFromTVMFFIAny(info->method).cast<Function>();
+}
+
+/*!
+ * \brief Visit each field info of the type info and run callback.
+ *
+ * \tparam Callback The callback function type.
+ *
+ * \param type_info The type info.
+ * \param callback The callback function.
+ *
+ * \note This function calls both the child and parent type info.
+ */
+template <typename Callback>
+inline void ForEachFieldInfo(const TypeInfo* type_info, Callback callback) {
+  using ResultType = decltype(callback(type_info->fields));
+  static_assert(std::is_same_v<ResultType, void>, "Callback must return void");
+  // iterate through acenstors in parent to child order
+  // skip the first one since it is always the root object
+  for (int i = 1; i < type_info->type_depth; ++i) {
+    const TVMFFITypeInfo* parent_info = type_info->type_acenstors[i];
+    for (int j = 0; j < parent_info->num_fields; ++j) {
+      callback(parent_info->fields + j);
+    }
+  }
+  for (int i = 0; i < type_info->num_fields; ++i) {
+    callback(type_info->fields + i);
+  }
+}
+
+/*!
+ * \brief Visit each field info of the type info and run callback which returns bool for early stop.
+ *
+ * \tparam Callback The callback function type, which returns bool for early stop.
+ *
+ * \param type_info The type info.
+ * \param callback_with_early_stop The callback function.
+ * \return true if any of early stop is triggered.
+ *
+ * \note This function calls both the child and parent type info and can be used for searching.
+ */
+template <typename Callback>
+inline bool ForEachFieldInfoWithEarlyStop(const TypeInfo* type_info,
+                                          Callback callback_with_early_stop) {
+  // iterate through acenstors in parent to child order
+  // skip the first one since it is always the root object
+  for (int i = 1; i < type_info->type_depth; ++i) {
+    const TVMFFITypeInfo* parent_info = type_info->type_acenstors[i];
+    for (int j = 0; j < parent_info->num_fields; ++j) {
+      if (callback_with_early_stop(parent_info->fields + j)) return true;
+    }
+  }
+  for (int i = 0; i < type_info->num_fields; ++i) {
+    if (callback_with_early_stop(type_info->fields + i)) return true;
+  }
+  return false;
+}
+
+}  // namespace reflection
+}  // namespace ffi
+}  // namespace tvm
+#endif  // TVM_FFI_REFLECTION_ACCESSOR_H_
diff --git a/ffi/include/tvm/ffi/reflection/reflection.h b/ffi/include/tvm/ffi/reflection/registry.h
similarity index 70%
rename from ffi/include/tvm/ffi/reflection/reflection.h
rename to ffi/include/tvm/ffi/reflection/registry.h
index 1dbb93ab6d..27e0b0877c 100644
--- a/ffi/include/tvm/ffi/reflection/reflection.h
+++ b/ffi/include/tvm/ffi/reflection/registry.h
@@ -17,11 +17,11 @@
  * under the License.
  */
 /*!
- * \file tvm/ffi/reflection/reflection.h
- * \brief Base reflection support to access object fields.
+ * \file tvm/ffi/reflection/registry.h
+ * \brief Registry of reflection metadata.
  */
-#ifndef TVM_FFI_REFLECTION_REFLECTION_H_
-#define TVM_FFI_REFLECTION_REFLECTION_H_
+#ifndef TVM_FFI_REFLECTION_REGISTRY_H_
+#define TVM_FFI_REFLECTION_REGISTRY_H_
 
 #include <tvm/ffi/any.h>
 #include <tvm/ffi/c_api.h>
@@ -408,164 +408,7 @@ class ObjectDef : public ReflectionDefBase {
   const char* type_key_;
 };
 
-/*!
- * \brief helper function to get reflection field info by type key and field name
- */
-inline const TVMFFIFieldInfo* GetFieldInfo(std::string_view type_key, const char* field_name) {
-  int32_t type_index;
-  TVMFFIByteArray type_key_array = {type_key.data(), type_key.size()};
-  TVM_FFI_CHECK_SAFE_CALL(TVMFFITypeKeyToIndex(&type_key_array, &type_index));
-  const TypeInfo* info = TVMFFIGetTypeInfo(type_index);
-  for (int32_t i = 0; i < info->num_fields; ++i) {
-    if (std::strncmp(info->fields[i].name.data, field_name, info->fields[i].name.size) == 0) {
-      return &(info->fields[i]);
-    }
-  }
-  TVM_FFI_THROW(RuntimeError) << "Cannot find field " << field_name << " in " << type_key;
-  TVM_FFI_UNREACHABLE();
-}
-
-/*!
- * \brief helper wrapper class to obtain a getter.
- */
-class FieldGetter {
- public:
-  explicit FieldGetter(const TVMFFIFieldInfo* field_info) : field_info_(field_info) {}
-
-  explicit FieldGetter(std::string_view type_key, const char* field_name)
-      : FieldGetter(GetFieldInfo(type_key, field_name)) {}
-
-  Any operator()(const Object* obj_ptr) const {
-    Any result;
-    const void* addr = reinterpret_cast<const char*>(obj_ptr) + field_info_->offset;
-    TVM_FFI_CHECK_SAFE_CALL(
-        field_info_->getter(const_cast<void*>(addr), reinterpret_cast<TVMFFIAny*>(&result)));
-    return result;
-  }
-
-  Any operator()(const ObjectPtr<Object>& obj_ptr) const { return operator()(obj_ptr.get()); }
-
-  Any operator()(const ObjectRef& obj) const { return operator()(obj.get()); }
-
- private:
-  const TVMFFIFieldInfo* field_info_;
-};
-
-/*!
- * \brief helper wrapper class to obtain a setter.
- */
-class FieldSetter {
- public:
-  explicit FieldSetter(const TVMFFIFieldInfo* field_info) : field_info_(field_info) {}
-
-  explicit FieldSetter(std::string_view type_key, const char* field_name)
-      : FieldSetter(GetFieldInfo(type_key, field_name)) {}
-
-  void operator()(const Object* obj_ptr, AnyView value) const {
-    const void* addr = reinterpret_cast<const char*>(obj_ptr) + field_info_->offset;
-    TVM_FFI_CHECK_SAFE_CALL(
-        field_info_->setter(const_cast<void*>(addr), reinterpret_cast<const TVMFFIAny*>(&value)));
-  }
-
-  void operator()(const ObjectPtr<Object>& obj_ptr, AnyView value) const {
-    operator()(obj_ptr.get(), value);
-  }
-
-  void operator()(const ObjectRef& obj, AnyView value) const { operator()(obj.get(), value); }
-
- private:
-  const TVMFFIFieldInfo* field_info_;
-};
-
-/*!
- * \brief helper function to get reflection method info by type key and method name
- *
- * \param type_key The type key.
- * \param method_name The name of the method.
- * \return The method info.
- */
-inline const TVMFFIMethodInfo* GetMethodInfo(std::string_view type_key, const char* method_name) {
-  int32_t type_index;
-  TVMFFIByteArray type_key_array = {type_key.data(), type_key.size()};
-  TVM_FFI_CHECK_SAFE_CALL(TVMFFITypeKeyToIndex(&type_key_array, &type_index));
-  const TypeInfo* info = TVMFFIGetTypeInfo(type_index);
-  for (int32_t i = 0; i < info->num_methods; ++i) {
-    if (std::strncmp(info->methods[i].name.data, method_name, info->methods[i].name.size) == 0) {
-      return &(info->methods[i]);
-    }
-  }
-  TVM_FFI_THROW(RuntimeError) << "Cannot find method " << method_name << " in " << type_key;
-  TVM_FFI_UNREACHABLE();
-}
-
-/*!
- * \brief helper function to get reflection method function by method info
- *
- * \param type_key The type key.
- * \param method_name The name of the method.
- * \return The method function.
- */
-inline Function GetMethod(std::string_view type_key, const char* method_name) {
-  const TVMFFIMethodInfo* info = GetMethodInfo(type_key, method_name);
-  return AnyView::CopyFromTVMFFIAny(info->method).cast<Function>();
-}
-
-/*!
- * \brief Visit each field info of the type info and run callback.
- *
- * \tparam Callback The callback function type.
- *
- * \param type_info The type info.
- * \param callback The callback function.
- *
- * \note This function calls both the child and parent type info.
- */
-template <typename Callback>
-inline void ForEachFieldInfo(const TypeInfo* type_info, Callback callback) {
-  using ResultType = decltype(callback(type_info->fields));
-  static_assert(std::is_same_v<ResultType, void>, "Callback must return void");
-  // iterate through acenstors in parent to child order
-  // skip the first one since it is always the root object
-  for (int i = 1; i < type_info->type_depth; ++i) {
-    const TVMFFITypeInfo* parent_info = type_info->type_acenstors[i];
-    for (int j = 0; j < parent_info->num_fields; ++j) {
-      callback(parent_info->fields + j);
-    }
-  }
-  for (int i = 0; i < type_info->num_fields; ++i) {
-    callback(type_info->fields + i);
-  }
-}
-
-/*!
- * \brief Visit each field info of the type info and run callback which returns bool for early stop.
- *
- * \tparam Callback The callback function type, which returns bool for early stop.
- *
- * \param type_info The type info.
- * \param callback_with_early_stop The callback function.
- * \return true if any of early stop is triggered.
- *
- * \note This function calls both the child and parent type info and can be used for searching.
- */
-template <typename Callback>
-inline bool ForEachFieldInfoWithEarlyStop(const TypeInfo* type_info,
-                                          Callback callback_with_early_stop) {
-  // iterate through acenstors in parent to child order
-  // skip the first one since it is always the root object
-  for (int i = 1; i < type_info->type_depth; ++i) {
-    const TVMFFITypeInfo* parent_info = type_info->type_acenstors[i];
-    for (int j = 0; j < parent_info->num_fields; ++j) {
-      if (callback_with_early_stop(parent_info->fields + j)) return true;
-    }
-  }
-  for (int i = 0; i < type_info->num_fields; ++i) {
-    if (callback_with_early_stop(type_info->fields + i)) return true;
-  }
-  return false;
-}
-
 }  // namespace reflection
 }  // namespace ffi
 }  // namespace tvm
-#endif  // TVM_FFI_REFLECTION_REFLECTION_H_
+#endif  // TVM_FFI_REFLECTION_REGISTRY_H_
diff --git a/ffi/src/ffi/container.cc b/ffi/src/ffi/container.cc
index a0dc660b42..76b9cd6671 100644
--- a/ffi/src/ffi/container.cc
+++ b/ffi/src/ffi/container.cc
@@ -25,7 +25,7 @@
 #include <tvm/ffi/container/map.h>
 #include <tvm/ffi/container/shape.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 namespace tvm {
 namespace ffi {
diff --git a/ffi/src/ffi/function.cc b/ffi/src/ffi/function.cc
index 4df86a213a..3db651fe11 100644
--- a/ffi/src/ffi/function.cc
+++ b/ffi/src/ffi/function.cc
@@ -28,7 +28,7 @@
 #include <tvm/ffi/error.h>
 #include <tvm/ffi/function.h>
 #include <tvm/ffi/memory.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/string.h>
 
 namespace tvm {
diff --git a/ffi/src/ffi/ndarray.cc b/ffi/src/ffi/ndarray.cc
index dc3a5fb1ec..41d4273b59 100644
--- a/ffi/src/ffi/ndarray.cc
+++ b/ffi/src/ffi/ndarray.cc
@@ -23,7 +23,7 @@
 #include <tvm/ffi/c_api.h>
 #include <tvm/ffi/container/ndarray.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 namespace tvm {
 namespace ffi {
diff --git a/ffi/src/ffi/object.cc b/ffi/src/ffi/object.cc
index 84a83e4b73..a0d7a2f694 100644
--- a/ffi/src/ffi/object.cc
+++ b/ffi/src/ffi/object.cc
@@ -24,7 +24,7 @@
 #include <tvm/ffi/container/map.h>
 #include <tvm/ffi/error.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/string.h>
 
 #include <memory>
diff --git a/ffi/src/ffi/testing.cc b/ffi/src/ffi/testing.cc
index a1747a279d..8fddf54ebd 100644
--- a/ffi/src/ffi/testing.cc
+++ b/ffi/src/ffi/testing.cc
@@ -20,7 +20,7 @@
 #include <tvm/ffi/container/array.h>
 #include <tvm/ffi/container/map.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <chrono>
 #include <iostream>
diff --git a/ffi/tests/cpp/test_reflection.cc b/ffi/tests/cpp/test_reflection.cc
index ce15fc14c4..3f6b5def01 100644
--- a/ffi/tests/cpp/test_reflection.cc
+++ b/ffi/tests/cpp/test_reflection.cc
@@ -20,7 +20,8 @@
 #include <gtest/gtest.h>
 #include <tvm/ffi/container/map.h>
 #include <tvm/ffi/object.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/accessor.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/string.h>
 
 #include "./testing_object.h"
diff --git a/ffi/tests/cpp/testing_object.h b/ffi/tests/cpp/testing_object.h
index f1f7193ddc..c72c61d002 100644
--- a/ffi/tests/cpp/testing_object.h
+++ b/ffi/tests/cpp/testing_object.h
@@ -22,7 +22,7 @@
 
 #include <tvm/ffi/memory.h>
 #include <tvm/ffi/object.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/string.h>
 
 namespace tvm {
diff --git a/include/tvm/arith/analyzer.h b/include/tvm/arith/analyzer.h
index 2be573942e..78eac07f45 100644
--- a/include/tvm/arith/analyzer.h
+++ b/include/tvm/arith/analyzer.h
@@ -25,7 +25,7 @@
 #define TVM_ARITH_ANALYZER_H_
 
 #include <tvm/arith/int_set.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/expr.h>
 #include <tvm/support/with.h>
 
diff --git a/include/tvm/arith/iter_affine_map.h b/include/tvm/arith/iter_affine_map.h
index 5ac1bed4a7..b7f0e09e83 100644
--- a/include/tvm/arith/iter_affine_map.h
+++ b/include/tvm/arith/iter_affine_map.h
@@ -49,7 +49,7 @@
 #define TVM_ARITH_ITER_AFFINE_MAP_H_
 
 #include <tvm/arith/analyzer.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/diagnostic.h>
 #include <tvm/ir/expr.h>
 #include <tvm/tir/var.h>
diff --git a/include/tvm/ir/attrs.h b/include/tvm/ir/attrs.h
index bd27f50dbd..952cea2a30 100644
--- a/include/tvm/ir/attrs.h
+++ b/include/tvm/ir/attrs.h
@@ -31,7 +31,8 @@
 #include <dmlc/common.h>
 #include <tvm/ffi/container/map.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/accessor.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/expr.h>
 #include <tvm/node/structural_equal.h>
 #include <tvm/node/structural_hash.h>
diff --git a/include/tvm/ir/diagnostic.h b/include/tvm/ir/diagnostic.h
index 06d3efc5bd..8429ac1a62 100644
--- a/include/tvm/ir/diagnostic.h
+++ b/include/tvm/ir/diagnostic.h
@@ -26,7 +26,7 @@
 #ifndef TVM_IR_DIAGNOSTIC_H_
 #define TVM_IR_DIAGNOSTIC_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/module.h>
 
 #include <sstream>
diff --git a/include/tvm/ir/env_func.h b/include/tvm/ir/env_func.h
index 095bb6d439..03cf3d625a 100644
--- a/include/tvm/ir/env_func.h
+++ b/include/tvm/ir/env_func.h
@@ -25,7 +25,7 @@
 #define TVM_IR_ENV_FUNC_H_
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/node/reflection.h>
 
 #include <string>
diff --git a/include/tvm/ir/expr.h b/include/tvm/ir/expr.h
index 2f051396d1..9a8e290cb9 100644
--- a/include/tvm/ir/expr.h
+++ b/include/tvm/ir/expr.h
@@ -24,7 +24,7 @@
 #ifndef TVM_IR_EXPR_H_
 #define TVM_IR_EXPR_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/string.h>
 #include <tvm/ir/source_map.h>
 #include <tvm/ir/type.h>
diff --git a/include/tvm/ir/global_info.h b/include/tvm/ir/global_info.h
index 8c199b3e9b..4a0b9ffdae 100644
--- a/include/tvm/ir/global_info.h
+++ b/include/tvm/ir/global_info.h
@@ -25,7 +25,7 @@
 #ifndef TVM_IR_GLOBAL_INFO_H_
 #define TVM_IR_GLOBAL_INFO_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/expr.h>
 #include <tvm/target/target.h>
 
diff --git a/include/tvm/ir/global_var_supply.h b/include/tvm/ir/global_var_supply.h
index 35b429a725..b8dfed75a7 100644
--- a/include/tvm/ir/global_var_supply.h
+++ b/include/tvm/ir/global_var_supply.h
@@ -24,14 +24,14 @@
 #ifndef TVM_IR_GLOBAL_VAR_SUPPLY_H_
 #define TVM_IR_GLOBAL_VAR_SUPPLY_H_
 
+#include <tvm/ffi/reflection/registry.h>
+#include <tvm/ir/expr.h>
+#include <tvm/ir/module.h>
+#include <tvm/ir/name_supply.h>
+
 #include <string>
 #include <unordered_map>
 
-#include "tvm/ffi/reflection/reflection.h"
-#include "tvm/ir/expr.h"
-#include "tvm/ir/module.h"
-#include "tvm/ir/name_supply.h"
-
 namespace tvm {
 
 /*!
diff --git a/include/tvm/ir/instrument.h b/include/tvm/ir/instrument.h
index 64bc78ff4a..5c2201f922 100644
--- a/include/tvm/ir/instrument.h
+++ b/include/tvm/ir/instrument.h
@@ -26,7 +26,7 @@
 #ifndef TVM_IR_INSTRUMENT_H_
 #define TVM_IR_INSTRUMENT_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/string.h>
 #include <tvm/node/reflection.h>
 
diff --git a/include/tvm/ir/module.h b/include/tvm/ir/module.h
index 0d33b9308d..a5c2477b8d 100644
--- a/include/tvm/ir/module.h
+++ b/include/tvm/ir/module.h
@@ -26,7 +26,7 @@
 
 #include <tvm/ffi/container/array.h>
 #include <tvm/ffi/container/map.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/string.h>
 #include <tvm/ir/expr.h>
 #include <tvm/ir/function.h>
diff --git a/include/tvm/ir/name_supply.h b/include/tvm/ir/name_supply.h
index 853bd8eb53..ff018157a1 100644
--- a/include/tvm/ir/name_supply.h
+++ b/include/tvm/ir/name_supply.h
@@ -24,7 +24,7 @@
 #ifndef TVM_IR_NAME_SUPPLY_H_
 #define TVM_IR_NAME_SUPPLY_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/expr.h>
 
 #include <algorithm>
diff --git a/include/tvm/ir/op.h b/include/tvm/ir/op.h
index 6d488cb9df..a50f12b167 100644
--- a/include/tvm/ir/op.h
+++ b/include/tvm/ir/op.h
@@ -26,7 +26,7 @@
 #define TVM_IR_OP_H_
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/attrs.h>
 #include <tvm/ir/env_func.h>
 #include <tvm/ir/expr.h>
diff --git a/include/tvm/ir/source_map.h b/include/tvm/ir/source_map.h
index 86a8a4decd..87b3532786 100644
--- a/include/tvm/ir/source_map.h
+++ b/include/tvm/ir/source_map.h
@@ -24,7 +24,7 @@
 #define TVM_IR_SOURCE_MAP_H_
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/node/node.h>
 #include <tvm/runtime/object.h>
 
diff --git a/include/tvm/ir/transform.h b/include/tvm/ir/transform.h
index d5a3321407..e92158b4e1 100644
--- a/include/tvm/ir/transform.h
+++ b/include/tvm/ir/transform.h
@@ -57,7 +57,7 @@
 #define TVM_IR_TRANSFORM_H_
 
 #include <tvm/ffi/container/array.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/string.h>
 #include <tvm/ir/diagnostic.h>
 #include <tvm/ir/instrument.h>
diff --git a/include/tvm/ir/type.h b/include/tvm/ir/type.h
index 87a1174c93..f879ab5911 100644
--- a/include/tvm/ir/type.h
+++ b/include/tvm/ir/type.h
@@ -50,7 +50,7 @@
 #define TVM_IR_TYPE_H_
 
 #include <tvm/ffi/container/array.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/source_map.h>
 #include <tvm/node/node.h>
 #include <tvm/runtime/data_type.h>
diff --git a/include/tvm/meta_schedule/arg_info.h b/include/tvm/meta_schedule/arg_info.h
index 538fdc9d6c..c36e138e2a 100644
--- a/include/tvm/meta_schedule/arg_info.h
+++ b/include/tvm/meta_schedule/arg_info.h
@@ -20,7 +20,7 @@
 #define TVM_META_SCHEDULE_ARG_INFO_H_
 
 #include <tvm/ffi/container/shape.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/module.h>
 #include <tvm/node/node.h>
 #include <tvm/node/reflection.h>
diff --git a/include/tvm/meta_schedule/builder.h b/include/tvm/meta_schedule/builder.h
index 712cbbbe6e..f51f13527f 100644
--- a/include/tvm/meta_schedule/builder.h
+++ b/include/tvm/meta_schedule/builder.h
@@ -23,7 +23,7 @@
 #include <tvm/ffi/container/map.h>
 #include <tvm/ffi/function.h>
 #include <tvm/ffi/optional.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/string.h>
 #include <tvm/ir/module.h>
 #include <tvm/node/reflection.h>
diff --git a/include/tvm/meta_schedule/cost_model.h b/include/tvm/meta_schedule/cost_model.h
index 32a6d441b4..471dbfa9f1 100644
--- a/include/tvm/meta_schedule/cost_model.h
+++ b/include/tvm/meta_schedule/cost_model.h
@@ -22,7 +22,7 @@
 
 #include <tvm/ffi/container/array.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/string.h>
 #include <tvm/meta_schedule/arg_info.h>
 #include <tvm/meta_schedule/measure_candidate.h>
diff --git a/include/tvm/meta_schedule/database.h b/include/tvm/meta_schedule/database.h
index 90981900b2..007895b470 100644
--- a/include/tvm/meta_schedule/database.h
+++ b/include/tvm/meta_schedule/database.h
@@ -21,7 +21,7 @@
 
 #include <tvm/ffi/container/array.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/string.h>
 #include <tvm/ir/expr.h>
 #include <tvm/ir/module.h>
diff --git a/include/tvm/meta_schedule/extracted_task.h b/include/tvm/meta_schedule/extracted_task.h
index 5023d5bbfc..40351436ea 100644
--- a/include/tvm/meta_schedule/extracted_task.h
+++ b/include/tvm/meta_schedule/extracted_task.h
@@ -20,7 +20,7 @@
 #define TVM_META_SCHEDULE_EXTRACTED_TASK_H_
 
 #include <tvm/ffi/container/array.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/string.h>
 #include <tvm/ir/module.h>
 #include <tvm/node/reflection.h>
diff --git a/include/tvm/meta_schedule/feature_extractor.h b/include/tvm/meta_schedule/feature_extractor.h
index d925503d8d..a9bc28f6e5 100644
--- a/include/tvm/meta_schedule/feature_extractor.h
+++ b/include/tvm/meta_schedule/feature_extractor.h
@@ -22,7 +22,7 @@
 
 #include <tvm/ffi/container/array.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/string.h>
 #include <tvm/meta_schedule/measure_candidate.h>
 #include <tvm/node/reflection.h>
diff --git a/include/tvm/meta_schedule/measure_callback.h b/include/tvm/meta_schedule/measure_callback.h
index ba5c063e09..4d18e37078 100644
--- a/include/tvm/meta_schedule/measure_callback.h
+++ b/include/tvm/meta_schedule/measure_callback.h
@@ -22,7 +22,7 @@
 
 #include <tvm/ffi/container/array.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/string.h>
 #include <tvm/meta_schedule/builder.h>
 #include <tvm/meta_schedule/measure_candidate.h>
diff --git a/include/tvm/meta_schedule/measure_candidate.h b/include/tvm/meta_schedule/measure_candidate.h
index edbc4149f7..287c20ce11 100644
--- a/include/tvm/meta_schedule/measure_candidate.h
+++ b/include/tvm/meta_schedule/measure_candidate.h
@@ -21,7 +21,7 @@
 #define TVM_META_SCHEDULE_MEASURE_CANDIDATE_H_
 
 #include <tvm/ffi/container/array.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/meta_schedule/arg_info.h>
 #include <tvm/node/reflection.h>
 #include <tvm/runtime/object.h>
diff --git a/include/tvm/meta_schedule/mutator.h b/include/tvm/meta_schedule/mutator.h
index 0aa32409ec..b17183774c 100644
--- a/include/tvm/meta_schedule/mutator.h
+++ b/include/tvm/meta_schedule/mutator.h
@@ -22,7 +22,7 @@
 
 #include <tvm/ffi/function.h>
 #include <tvm/ffi/optional.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/node/reflection.h>
 #include <tvm/runtime/object.h>
 #include <tvm/support/random_engine.h>
diff --git a/include/tvm/meta_schedule/postproc.h b/include/tvm/meta_schedule/postproc.h
index 1a0c53572c..a5cf651439 100644
--- a/include/tvm/meta_schedule/postproc.h
+++ b/include/tvm/meta_schedule/postproc.h
@@ -21,7 +21,7 @@
 #define TVM_META_SCHEDULE_POSTPROC_H_
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/node/reflection.h>
 #include <tvm/runtime/object.h>
 #include <tvm/tir/schedule/schedule.h>
diff --git a/include/tvm/meta_schedule/profiler.h b/include/tvm/meta_schedule/profiler.h
index e58906e484..20cd509df5 100644
--- a/include/tvm/meta_schedule/profiler.h
+++ b/include/tvm/meta_schedule/profiler.h
@@ -22,7 +22,7 @@
 #include <tvm/ffi/container/array.h>
 #include <tvm/ffi/function.h>
 #include <tvm/ffi/optional.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/string.h>
 #include <tvm/ir/module.h>
 #include <tvm/node/reflection.h>
diff --git a/include/tvm/meta_schedule/runner.h b/include/tvm/meta_schedule/runner.h
index e0490234d7..2475f962c3 100644
--- a/include/tvm/meta_schedule/runner.h
+++ b/include/tvm/meta_schedule/runner.h
@@ -22,7 +22,7 @@
 #include <tvm/ffi/container/array.h>
 #include <tvm/ffi/function.h>
 #include <tvm/ffi/optional.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/string.h>
 #include <tvm/ir/expr.h>
 #include <tvm/meta_schedule/arg_info.h>
diff --git a/include/tvm/meta_schedule/schedule_rule.h b/include/tvm/meta_schedule/schedule_rule.h
index d86b74e819..f0ad236170 100644
--- a/include/tvm/meta_schedule/schedule_rule.h
+++ b/include/tvm/meta_schedule/schedule_rule.h
@@ -24,7 +24,7 @@
 #include <tvm/ffi/container/map.h>
 #include <tvm/ffi/function.h>
 #include <tvm/ffi/optional.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/string.h>
 #include <tvm/ir/expr.h>
 #include <tvm/node/reflection.h>
diff --git a/include/tvm/meta_schedule/search_strategy.h b/include/tvm/meta_schedule/search_strategy.h
index 65fae52baf..584960d0c4 100644
--- a/include/tvm/meta_schedule/search_strategy.h
+++ b/include/tvm/meta_schedule/search_strategy.h
@@ -22,7 +22,7 @@
 #include <tvm/ffi/container/array.h>
 #include <tvm/ffi/function.h>
 #include <tvm/ffi/optional.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/meta_schedule/arg_info.h>
 #include <tvm/meta_schedule/cost_model.h>
 #include <tvm/meta_schedule/database.h>
diff --git a/include/tvm/meta_schedule/space_generator.h b/include/tvm/meta_schedule/space_generator.h
index f148314b52..2507d846b6 100644
--- a/include/tvm/meta_schedule/space_generator.h
+++ b/include/tvm/meta_schedule/space_generator.h
@@ -21,7 +21,7 @@
 
 #include <tvm/ffi/container/array.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/module.h>
 #include <tvm/meta_schedule/mutator.h>
 #include <tvm/meta_schedule/postproc.h>
diff --git a/include/tvm/meta_schedule/task_scheduler.h b/include/tvm/meta_schedule/task_scheduler.h
index 75529e835d..fcbcf7d257 100644
--- a/include/tvm/meta_schedule/task_scheduler.h
+++ b/include/tvm/meta_schedule/task_scheduler.h
@@ -22,7 +22,7 @@
 #include <tvm/ffi/container/array.h>
 #include <tvm/ffi/function.h>
 #include <tvm/ffi/optional.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/meta_schedule/builder.h>
 #include <tvm/meta_schedule/cost_model.h>
 #include <tvm/meta_schedule/measure_callback.h>
diff --git a/include/tvm/meta_schedule/tune_context.h b/include/tvm/meta_schedule/tune_context.h
index 793b4e6729..7af735a68f 100644
--- a/include/tvm/meta_schedule/tune_context.h
+++ b/include/tvm/meta_schedule/tune_context.h
@@ -23,7 +23,7 @@
 #include <tvm/ffi/container/map.h>
 #include <tvm/ffi/function.h>
 #include <tvm/ffi/optional.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/string.h>
 #include <tvm/ir/expr.h>
 #include <tvm/ir/module.h>
diff --git a/include/tvm/node/script_printer.h b/include/tvm/node/script_printer.h
index af1e015d7b..b16b2487a1 100644
--- a/include/tvm/node/script_printer.h
+++ b/include/tvm/node/script_printer.h
@@ -26,7 +26,7 @@
 #include <tvm/ffi/any.h>
 #include <tvm/ffi/container/array.h>
 #include <tvm/ffi/container/map.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/string.h>
 #include <tvm/node/functor.h>
 #include <tvm/node/object_path.h>
diff --git a/include/tvm/relax/attrs/ccl.h b/include/tvm/relax/attrs/ccl.h
index ffc8301e9f..e6736dd2e7 100644
--- a/include/tvm/relax/attrs/ccl.h
+++ b/include/tvm/relax/attrs/ccl.h
@@ -24,7 +24,7 @@
 #ifndef TVM_RELAX_ATTRS_CCL_H_
 #define TVM_RELAX_ATTRS_CCL_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/expr.h>
 
 namespace tvm {
diff --git a/include/tvm/relax/binding_rewrite.h b/include/tvm/relax/binding_rewrite.h
index a5f476eb70..bdb405a0af 100644
--- a/include/tvm/relax/binding_rewrite.h
+++ b/include/tvm/relax/binding_rewrite.h
@@ -24,7 +24,7 @@
 
 #ifndef TVM_RELAX_BINDING_REWRITE_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/name_supply.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr.h>
diff --git a/include/tvm/relax/dataflow_pattern.h b/include/tvm/relax/dataflow_pattern.h
index 57049e7042..c302b29864 100644
--- a/include/tvm/relax/dataflow_pattern.h
+++ b/include/tvm/relax/dataflow_pattern.h
@@ -26,7 +26,7 @@
 
 #include <tvm/ffi/container/array.h>
 #include <tvm/ffi/optional.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/expr.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/type.h>
diff --git a/include/tvm/relax/exec_builder.h b/include/tvm/relax/exec_builder.h
index 92664f572e..fa6a837c8b 100644
--- a/include/tvm/relax/exec_builder.h
+++ b/include/tvm/relax/exec_builder.h
@@ -24,7 +24,7 @@
 #define TVM_RELAX_EXEC_BUILDER_H_
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/expr.h>
 #include <tvm/node/reflection.h>
 #include <tvm/node/repr_printer.h>
diff --git a/include/tvm/relax/expr.h b/include/tvm/relax/expr.h
index 20d899925d..34aea7981d 100644
--- a/include/tvm/relax/expr.h
+++ b/include/tvm/relax/expr.h
@@ -21,7 +21,7 @@
 
 #include <tvm/ffi/container/array.h>
 #include <tvm/ffi/container/map.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/expr.h>
 #include <tvm/ir/function.h>
 #include <tvm/ir/source_map.h>
diff --git a/include/tvm/relax/struct_info.h b/include/tvm/relax/struct_info.h
index acb4ff51e9..25a6b1ef4a 100644
--- a/include/tvm/relax/struct_info.h
+++ b/include/tvm/relax/struct_info.h
@@ -19,7 +19,7 @@
 #ifndef TVM_RELAX_STRUCT_INFO_H_
 #define TVM_RELAX_STRUCT_INFO_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/env_func.h>
 #include <tvm/ir/source_map.h>
 #include <tvm/node/node.h>
diff --git a/include/tvm/relax/tir_pattern.h b/include/tvm/relax/tir_pattern.h
index f3a0bdc543..6d8620b65a 100644
--- a/include/tvm/relax/tir_pattern.h
+++ b/include/tvm/relax/tir_pattern.h
@@ -25,7 +25,7 @@
 #ifndef TVM_RELAX_TIR_PATTERN_H_
 #define TVM_RELAX_TIR_PATTERN_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/function.h>
 
 namespace tvm {
diff --git a/include/tvm/relax/transform.h b/include/tvm/relax/transform.h
index dd3e2c350e..4068f7c682 100644
--- a/include/tvm/relax/transform.h
+++ b/include/tvm/relax/transform.h
@@ -24,7 +24,7 @@
 #ifndef TVM_RELAX_TRANSFORM_H_
 #define TVM_RELAX_TRANSFORM_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/transform.h>
 #include <tvm/relax/dataflow_pattern.h>
 #include <tvm/relax/expr.h>
diff --git a/include/tvm/relax/type.h b/include/tvm/relax/type.h
index 39350ef797..5bb7c202c1 100644
--- a/include/tvm/relax/type.h
+++ b/include/tvm/relax/type.h
@@ -25,7 +25,7 @@
 #define TVM_RELAX_TYPE_H_
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/attrs.h>
 #include <tvm/ir/env_func.h>
 #include <tvm/ir/type.h>
diff --git a/include/tvm/script/ir_builder/base.h b/include/tvm/script/ir_builder/base.h
index e16aa2237d..0c9e54eaf1 100644
--- a/include/tvm/script/ir_builder/base.h
+++ b/include/tvm/script/ir_builder/base.h
@@ -19,7 +19,7 @@
 #ifndef TVM_SCRIPT_IR_BUILDER_BASE_H_
 #define TVM_SCRIPT_IR_BUILDER_BASE_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/expr.h>
 #include <tvm/ir/function.h>
 #include <tvm/node/node.h>
diff --git a/include/tvm/script/ir_builder/ir/frame.h b/include/tvm/script/ir_builder/ir/frame.h
index 5f92f209a5..b009338cf0 100644
--- a/include/tvm/script/ir_builder/ir/frame.h
+++ b/include/tvm/script/ir_builder/ir/frame.h
@@ -19,7 +19,7 @@
 #ifndef TVM_SCRIPT_IR_BUILDER_IR_FRAME_H_
 #define TVM_SCRIPT_IR_BUILDER_IR_FRAME_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/expr.h>
 #include <tvm/ir/function.h>
 #include <tvm/ir/module.h>
diff --git a/include/tvm/script/ir_builder/relax/frame.h b/include/tvm/script/ir_builder/relax/frame.h
index 12e59d3140..f729d19a14 100644
--- a/include/tvm/script/ir_builder/relax/frame.h
+++ b/include/tvm/script/ir_builder/relax/frame.h
@@ -19,7 +19,7 @@
 #ifndef TVM_SCRIPT_IR_BUILDER_RELAX_FRAME_H_
 #define TVM_SCRIPT_IR_BUILDER_RELAX_FRAME_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/block_builder.h>
 #include <tvm/relax/expr.h>
 #include <tvm/script/ir_builder/base.h>
diff --git a/include/tvm/script/printer/doc.h b/include/tvm/script/printer/doc.h
index b131decc8a..dfb9c0beee 100644
--- a/include/tvm/script/printer/doc.h
+++ b/include/tvm/script/printer/doc.h
@@ -19,7 +19,7 @@
 #ifndef TVM_SCRIPT_PRINTER_DOC_H_
 #define TVM_SCRIPT_PRINTER_DOC_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/expr.h>
 #include <tvm/node/node.h>
 #include <tvm/runtime/data_type.h>
diff --git a/include/tvm/script/printer/ir_docsifier.h b/include/tvm/script/printer/ir_docsifier.h
index 9e11f052aa..909f13ecc0 100644
--- a/include/tvm/script/printer/ir_docsifier.h
+++ b/include/tvm/script/printer/ir_docsifier.h
@@ -19,7 +19,7 @@
 #ifndef TVM_SCRIPT_PRINTER_IR_DOCSIFIER_H_
 #define TVM_SCRIPT_PRINTER_IR_DOCSIFIER_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/module.h>
 #include <tvm/node/node.h>
 #include <tvm/script/printer/doc.h>
diff --git a/include/tvm/target/tag.h b/include/tvm/target/tag.h
index 44c475b5f9..26111caa07 100644
--- a/include/tvm/target/tag.h
+++ b/include/tvm/target/tag.h
@@ -24,7 +24,7 @@
 #ifndef TVM_TARGET_TAG_H_
 #define TVM_TARGET_TAG_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/node/attr_registry_map.h>
 #include <tvm/node/node.h>
 #include <tvm/target/target.h>
diff --git a/include/tvm/target/target.h b/include/tvm/target/target.h
index f1f354a43e..98c984c157 100644
--- a/include/tvm/target/target.h
+++ b/include/tvm/target/target.h
@@ -24,7 +24,7 @@
 #ifndef TVM_TARGET_TARGET_H_
 #define TVM_TARGET_TARGET_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/expr.h>
 #include <tvm/ir/function.h>
 #include <tvm/node/attr_registry_map.h>
diff --git a/include/tvm/target/target_info.h b/include/tvm/target/target_info.h
index 1600b3edde..e1b4a1c7cd 100644
--- a/include/tvm/target/target_info.h
+++ b/include/tvm/target/target_info.h
@@ -24,7 +24,7 @@
 #ifndef TVM_TARGET_TARGET_INFO_H_
 #define TVM_TARGET_TARGET_INFO_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/expr.h>
 
 #include <string>
diff --git a/include/tvm/target/target_kind.h b/include/tvm/target/target_kind.h
index 0f1faa3442..c9785820b4 100644
--- a/include/tvm/target/target_kind.h
+++ b/include/tvm/target/target_kind.h
@@ -25,7 +25,7 @@
 #define TVM_TARGET_TARGET_KIND_H_
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/node/attr_registry_map.h>
 #include <tvm/node/node.h>
 
diff --git a/include/tvm/te/operation.h b/include/tvm/te/operation.h
index 498deb516d..6c1ea6195f 100644
--- a/include/tvm/te/operation.h
+++ b/include/tvm/te/operation.h
@@ -25,7 +25,7 @@
 #define TVM_TE_OPERATION_H_
 
 #include <tvm/arith/analyzer.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/te/tensor.h>
 #include <tvm/tir/buffer.h>
 #include <tvm/tir/expr.h>
diff --git a/include/tvm/te/tensor.h b/include/tvm/te/tensor.h
index e35b9069a0..15be5bb069 100644
--- a/include/tvm/te/tensor.h
+++ b/include/tvm/te/tensor.h
@@ -25,7 +25,7 @@
 #define TVM_TE_TENSOR_H_
 
 #include <tvm/arith/bound.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/op.h>
 
diff --git a/include/tvm/tir/block_dependence_info.h b/include/tvm/tir/block_dependence_info.h
index b4fbf1a593..7b00894ea8 100644
--- a/include/tvm/tir/block_dependence_info.h
+++ b/include/tvm/tir/block_dependence_info.h
@@ -31,7 +31,7 @@
 #ifndef TVM_TIR_BLOCK_DEPENDENCE_INFO_H_
 #define TVM_TIR_BLOCK_DEPENDENCE_INFO_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/block_scope.h>
 
 #include <unordered_map>
diff --git a/include/tvm/tir/buffer.h b/include/tvm/tir/buffer.h
index 992cb2f2e0..6b49f619b5 100644
--- a/include/tvm/tir/buffer.h
+++ b/include/tvm/tir/buffer.h
@@ -25,7 +25,7 @@
 #define TVM_TIR_BUFFER_H_
 
 #include <tvm/ffi/container/array.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/string.h>
 #include <tvm/ir/expr.h>
 #include <tvm/node/script_printer.h>
diff --git a/include/tvm/tir/data_layout.h b/include/tvm/tir/data_layout.h
index d1c026079c..1395c2b681 100644
--- a/include/tvm/tir/data_layout.h
+++ b/include/tvm/tir/data_layout.h
@@ -25,7 +25,7 @@
 #ifndef TVM_TIR_DATA_LAYOUT_H_
 #define TVM_TIR_DATA_LAYOUT_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/op.h>
 
diff --git a/include/tvm/tir/schedule/instruction.h b/include/tvm/tir/schedule/instruction.h
index 5becf40a2c..8e26054841 100644
--- a/include/tvm/tir/schedule/instruction.h
+++ b/include/tvm/tir/schedule/instruction.h
@@ -19,7 +19,7 @@
 #ifndef TVM_TIR_SCHEDULE_INSTRUCTION_H_
 #define TVM_TIR_SCHEDULE_INSTRUCTION_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/node/reflection.h>
 
 #include <utility>
diff --git a/include/tvm/tir/schedule/state.h b/include/tvm/tir/schedule/state.h
index ec843148ae..99994d2bf6 100644
--- a/include/tvm/tir/schedule/state.h
+++ b/include/tvm/tir/schedule/state.h
@@ -23,7 +23,7 @@
 #ifndef TVM_TIR_SCHEDULE_STATE_H_
 #define TVM_TIR_SCHEDULE_STATE_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/module.h>
 #include <tvm/tir/block_scope.h>
 #include <tvm/tir/function.h>
diff --git a/include/tvm/tir/stmt.h b/include/tvm/tir/stmt.h
index 7586a77f51..b89fff0032 100644
--- a/include/tvm/tir/stmt.h
+++ b/include/tvm/tir/stmt.h
@@ -24,7 +24,7 @@
 #ifndef TVM_TIR_STMT_H_
 #define TVM_TIR_STMT_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/expr.h>
 
 #include <string>
diff --git a/src/arith/analyzer.cc b/src/arith/analyzer.cc
index 62b54ac81e..9c4220ce29 100644
--- a/src/arith/analyzer.cc
+++ b/src/arith/analyzer.cc
@@ -22,7 +22,7 @@
  */
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/op.h>
 
diff --git a/src/arith/bound_deducer.cc b/src/arith/bound_deducer.cc
index 12d8c8710e..f7720095eb 100644
--- a/src/arith/bound_deducer.cc
+++ b/src/arith/bound_deducer.cc
@@ -23,7 +23,7 @@
  */
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/expr_functor.h>
 
diff --git a/src/arith/const_int_bound.cc b/src/arith/const_int_bound.cc
index e538a11025..50f1f66d19 100644
--- a/src/arith/const_int_bound.cc
+++ b/src/arith/const_int_bound.cc
@@ -22,7 +22,7 @@
  */
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/builtin.h>
 #include <tvm/tir/expr_functor.h>
 
diff --git a/src/arith/detect_common_subexpr.cc b/src/arith/detect_common_subexpr.cc
index e4bc5eab77..3c7d4e0e4b 100644
--- a/src/arith/detect_common_subexpr.cc
+++ b/src/arith/detect_common_subexpr.cc
@@ -21,7 +21,7 @@
  * \file detect_common_subexpr.cc
  * \brief Utility to detect common sub expressions.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/expr.h>
 
 #include <limits>
diff --git a/src/arith/detect_linear_equation.cc b/src/arith/detect_linear_equation.cc
index a7bc273ad9..e6746efd37 100644
--- a/src/arith/detect_linear_equation.cc
+++ b/src/arith/detect_linear_equation.cc
@@ -23,7 +23,7 @@
  */
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/expr_functor.h>
diff --git a/src/arith/domain_touched.cc b/src/arith/domain_touched.cc
index 7c102094c4..96a269d729 100644
--- a/src/arith/domain_touched.cc
+++ b/src/arith/domain_touched.cc
@@ -22,7 +22,7 @@
  * \brief Utility to deduce bound of expression
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/te/tensor.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/stmt_functor.h>
diff --git a/src/arith/int_constraints.cc b/src/arith/int_constraints.cc
index 1fadbad074..fff74c09c1 100644
--- a/src/arith/int_constraints.cc
+++ b/src/arith/int_constraints.cc
@@ -24,7 +24,7 @@
 #include <tvm/arith/analyzer.h>
 #include <tvm/arith/int_solver.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/expr_functor.h>
 #include <tvm/tir/op.h>
diff --git a/src/arith/int_set.cc b/src/arith/int_set.cc
index 565819c00f..4349159022 100644
--- a/src/arith/int_set.cc
+++ b/src/arith/int_set.cc
@@ -24,7 +24,7 @@
 #include <tvm/arith/int_set.h>
 #include <tvm/arith/iter_affine_map.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/expr_functor.h>
 
diff --git a/src/arith/interval_set.h b/src/arith/interval_set.h
index 6addd30f5a..4fadf985db 100644
--- a/src/arith/interval_set.h
+++ b/src/arith/interval_set.h
@@ -25,7 +25,7 @@
 #define TVM_ARITH_INTERVAL_SET_H_
 
 #include <tvm/arith/analyzer.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/op.h>
 
 #include <limits>
diff --git a/src/arith/iter_affine_map.cc b/src/arith/iter_affine_map.cc
index 4aa48843dc..fcd3b29c50 100644
--- a/src/arith/iter_affine_map.cc
+++ b/src/arith/iter_affine_map.cc
@@ -22,7 +22,7 @@
  */
 #include <tvm/arith/analyzer.h>
 #include <tvm/arith/iter_affine_map.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/expr_functor.h>
diff --git a/src/arith/modular_set.cc b/src/arith/modular_set.cc
index 9f755c30e8..3fa1ff2c58 100644
--- a/src/arith/modular_set.cc
+++ b/src/arith/modular_set.cc
@@ -23,7 +23,7 @@
  */
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/builtin.h>
 #include <tvm/tir/expr_functor.h>
 #include <tvm/tir/op.h>
diff --git a/src/arith/narrow_predicate_expression.cc b/src/arith/narrow_predicate_expression.cc
index 1d67308da2..d339b728db 100644
--- a/src/arith/narrow_predicate_expression.cc
+++ b/src/arith/narrow_predicate_expression.cc
@@ -23,7 +23,7 @@
  */
 #include <tvm/arith/int_solver.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/op.h>
diff --git a/src/arith/presburger_set.cc b/src/arith/presburger_set.cc
index 5ff97f391a..2945275767 100644
--- a/src/arith/presburger_set.cc
+++ b/src/arith/presburger_set.cc
@@ -27,7 +27,7 @@
 #include <tvm/arith/int_solver.h>
 #include <tvm/arith/pattern.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/expr_functor.h>
 #include <tvm/tir/stmt_functor.h>
diff --git a/src/arith/presburger_set.h b/src/arith/presburger_set.h
index 1f4bc409db..3a7114048f 100644
--- a/src/arith/presburger_set.h
+++ b/src/arith/presburger_set.h
@@ -33,7 +33,7 @@
 #endif
 
 #include <tvm/arith/analyzer.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/op.h>
 
 #include <limits>
diff --git a/src/arith/rewrite_simplify.h b/src/arith/rewrite_simplify.h
index 60511ae013..b4bd799a29 100644
--- a/src/arith/rewrite_simplify.h
+++ b/src/arith/rewrite_simplify.h
@@ -25,7 +25,7 @@
 #define TVM_ARITH_REWRITE_SIMPLIFY_H_
 
 #include <tvm/arith/analyzer.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/op.h>
 
 #include <algorithm>
diff --git a/src/arith/solve_linear_equation.cc b/src/arith/solve_linear_equation.cc
index 09c0639500..5d1f102a5b 100644
--- a/src/arith/solve_linear_equation.cc
+++ b/src/arith/solve_linear_equation.cc
@@ -25,7 +25,7 @@
 #include <tvm/arith/int_solver.h>
 #include <tvm/arith/pattern.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/data_type.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/op.h>
diff --git a/src/arith/solve_linear_inequality.cc b/src/arith/solve_linear_inequality.cc
index 352f34c1ec..bf50a0ea52 100644
--- a/src/arith/solve_linear_inequality.cc
+++ b/src/arith/solve_linear_inequality.cc
@@ -25,7 +25,7 @@
 #include <tvm/arith/int_solver.h>
 #include <tvm/arith/pattern.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/data_type.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/expr.h>
diff --git a/src/contrib/msc/core/ir/graph.cc b/src/contrib/msc/core/ir/graph.cc
index d9a972f6ec..d6450af344 100644
--- a/src/contrib/msc/core/ir/graph.cc
+++ b/src/contrib/msc/core/ir/graph.cc
@@ -23,7 +23,7 @@
 
 #include "graph.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <algorithm>
 #include <map>
diff --git a/src/contrib/msc/core/ir/graph.h b/src/contrib/msc/core/ir/graph.h
index 92775646b9..2ee4aeb05b 100644
--- a/src/contrib/msc/core/ir/graph.h
+++ b/src/contrib/msc/core/ir/graph.h
@@ -25,7 +25,7 @@
 #define TVM_CONTRIB_MSC_CORE_IR_GRAPH_H_
 
 #include <dmlc/json.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/data_layout.h>
 
 #include <string>
diff --git a/src/contrib/msc/core/ir/graph_builder.cc b/src/contrib/msc/core/ir/graph_builder.cc
index 80997c8841..f1f9e08ab9 100644
--- a/src/contrib/msc/core/ir/graph_builder.cc
+++ b/src/contrib/msc/core/ir/graph_builder.cc
@@ -23,7 +23,7 @@
 
 #include "graph_builder.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <algorithm>
 #include <set>
diff --git a/src/contrib/msc/core/ir/graph_builder.h b/src/contrib/msc/core/ir/graph_builder.h
index 1a478956c2..482d4e18be 100644
--- a/src/contrib/msc/core/ir/graph_builder.h
+++ b/src/contrib/msc/core/ir/graph_builder.h
@@ -25,7 +25,7 @@
 #define TVM_CONTRIB_MSC_CORE_IR_GRAPH_BUILDER_H_
 
 #include <dmlc/json.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/runtime/ndarray.h>
diff --git a/src/contrib/msc/core/ir/plugin.cc b/src/contrib/msc/core/ir/plugin.cc
index 6f8515b26c..659cb29628 100644
--- a/src/contrib/msc/core/ir/plugin.cc
+++ b/src/contrib/msc/core/ir/plugin.cc
@@ -23,7 +23,7 @@
 
 #include "plugin.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <algorithm>
 #include <map>
diff --git a/src/contrib/msc/core/ir/plugin.h b/src/contrib/msc/core/ir/plugin.h
index dd346a905f..b926edf8e5 100644
--- a/src/contrib/msc/core/ir/plugin.h
+++ b/src/contrib/msc/core/ir/plugin.h
@@ -25,7 +25,7 @@
 #define TVM_CONTRIB_MSC_CORE_IR_PLUGIN_H_
 
 #include <dmlc/json.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/data_layout.h>
 
 #include <string>
diff --git a/src/contrib/msc/core/printer/msc_doc.h b/src/contrib/msc/core/printer/msc_doc.h
index d1e9170cff..ea13d74d56 100644
--- a/src/contrib/msc/core/printer/msc_doc.h
+++ b/src/contrib/msc/core/printer/msc_doc.h
@@ -24,7 +24,7 @@
 #ifndef TVM_CONTRIB_MSC_CORE_PRINTER_MSC_DOC_H_
 #define TVM_CONTRIB_MSC_CORE_PRINTER_MSC_DOC_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/script/printer/doc.h>
 
 #include <string>
diff --git a/src/contrib/msc/core/transform/bind_named_params.cc b/src/contrib/msc/core/transform/bind_named_params.cc
index 8136668c26..481a3092fe 100644
--- a/src/contrib/msc/core/transform/bind_named_params.cc
+++ b/src/contrib/msc/core/transform/bind_named_params.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/function.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/contrib/msc/core/transform/bind_shape.cc b/src/contrib/msc/core/transform/bind_shape.cc
index d870568be6..b7c3491bff 100644
--- a/src/contrib/msc/core/transform/bind_shape.cc
+++ b/src/contrib/msc/core/transform/bind_shape.cc
@@ -22,7 +22,7 @@
  * \brief Pass for fuse ShapeExpr.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/transform.h>
diff --git a/src/contrib/msc/core/transform/fuse_tuple.cc b/src/contrib/msc/core/transform/fuse_tuple.cc
index 79a15f15db..297f4a94fe 100644
--- a/src/contrib/msc/core/transform/fuse_tuple.cc
+++ b/src/contrib/msc/core/transform/fuse_tuple.cc
@@ -22,7 +22,7 @@
  * \brief Pass for fuse ShapeExpr.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/contrib/msc/core/transform/inline_params.cc b/src/contrib/msc/core/transform/inline_params.cc
index 47eeada86e..c68948cef5 100644
--- a/src/contrib/msc/core/transform/inline_params.cc
+++ b/src/contrib/msc/core/transform/inline_params.cc
@@ -22,7 +22,7 @@
  * \brief Pass for inline Exprs.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/transform.h>
diff --git a/src/contrib/msc/core/transform/set_byoc_attrs.cc b/src/contrib/msc/core/transform/set_byoc_attrs.cc
index fc69287d37..8687f72647 100644
--- a/src/contrib/msc/core/transform/set_byoc_attrs.cc
+++ b/src/contrib/msc/core/transform/set_byoc_attrs.cc
@@ -22,7 +22,7 @@
  * \brief Pass for fuse ShapeExpr.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/contrib/msc/core/transform/set_expr_layout.cc b/src/contrib/msc/core/transform/set_expr_layout.cc
index a8691eadd2..59711a9918 100644
--- a/src/contrib/msc/core/transform/set_expr_layout.cc
+++ b/src/contrib/msc/core/transform/set_expr_layout.cc
@@ -22,7 +22,7 @@
  * \brief Pass for setting layout for expr and constant.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/transform.h>
diff --git a/src/contrib/msc/core/transform/set_expr_name.cc b/src/contrib/msc/core/transform/set_expr_name.cc
index 9d9b813caf..c9cf65e783 100644
--- a/src/contrib/msc/core/transform/set_expr_name.cc
+++ b/src/contrib/msc/core/transform/set_expr_name.cc
@@ -22,7 +22,7 @@
  * \brief Pass for setting name for call and constant.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/transform.h>
diff --git a/src/contrib/msc/core/utils.cc b/src/contrib/msc/core/utils.cc
index 9f50d836d4..caac67d6f5 100644
--- a/src/contrib/msc/core/utils.cc
+++ b/src/contrib/msc/core/utils.cc
@@ -23,7 +23,7 @@
 
 #include "utils.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <algorithm>
 #include <string>
diff --git a/src/contrib/msc/framework/tensorflow/codegen.cc b/src/contrib/msc/framework/tensorflow/codegen.cc
index 0d55ad9972..1a5bdfeacb 100644
--- a/src/contrib/msc/framework/tensorflow/codegen.cc
+++ b/src/contrib/msc/framework/tensorflow/codegen.cc
@@ -22,7 +22,7 @@
  */
 #include "codegen.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 namespace tvm {
 namespace contrib {
diff --git a/src/contrib/msc/framework/tensorrt/codegen.cc b/src/contrib/msc/framework/tensorrt/codegen.cc
index 5f15d12a44..55a46789b8 100644
--- a/src/contrib/msc/framework/tensorrt/codegen.cc
+++ b/src/contrib/msc/framework/tensorrt/codegen.cc
@@ -24,7 +24,7 @@
 
 #include "codegen.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/module.h>
 #include <tvm/relax/expr.h>
 
diff --git a/src/contrib/msc/framework/tensorrt/transform_tensorrt.cc b/src/contrib/msc/framework/tensorrt/transform_tensorrt.cc
index a847fe5e40..5c2965de76 100644
--- a/src/contrib/msc/framework/tensorrt/transform_tensorrt.cc
+++ b/src/contrib/msc/framework/tensorrt/transform_tensorrt.cc
@@ -23,7 +23,7 @@
  */
 
 #include <dmlc/json.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/attrs/sorting.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/contrib/msc/framework/torch/codegen.cc b/src/contrib/msc/framework/torch/codegen.cc
index ee169c1917..68c55bb9cb 100644
--- a/src/contrib/msc/framework/torch/codegen.cc
+++ b/src/contrib/msc/framework/torch/codegen.cc
@@ -22,7 +22,7 @@
  */
 #include "codegen.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 namespace tvm {
 namespace contrib {
diff --git a/src/contrib/msc/framework/tvm/codegen.cc b/src/contrib/msc/framework/tvm/codegen.cc
index cd80b2e0c7..7c42ba8d14 100644
--- a/src/contrib/msc/framework/tvm/codegen.cc
+++ b/src/contrib/msc/framework/tvm/codegen.cc
@@ -22,7 +22,7 @@
  */
 #include "codegen.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 namespace tvm {
 namespace contrib {
diff --git a/src/contrib/msc/plugin/tensorrt_codegen.cc b/src/contrib/msc/plugin/tensorrt_codegen.cc
index 1c8c2edded..f1ab676b70 100644
--- a/src/contrib/msc/plugin/tensorrt_codegen.cc
+++ b/src/contrib/msc/plugin/tensorrt_codegen.cc
@@ -22,7 +22,7 @@
  */
 #include "tensorrt_codegen.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <set>
 namespace tvm {
diff --git a/src/contrib/msc/plugin/torch_codegen.cc b/src/contrib/msc/plugin/torch_codegen.cc
index 448e8ce558..63d068acab 100644
--- a/src/contrib/msc/plugin/torch_codegen.cc
+++ b/src/contrib/msc/plugin/torch_codegen.cc
@@ -22,7 +22,7 @@
  */
 #include "torch_codegen.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 namespace tvm {
 namespace contrib {
diff --git a/src/contrib/msc/plugin/tvm_codegen.cc b/src/contrib/msc/plugin/tvm_codegen.cc
index b42146b941..08cd3d7da6 100644
--- a/src/contrib/msc/plugin/tvm_codegen.cc
+++ b/src/contrib/msc/plugin/tvm_codegen.cc
@@ -22,7 +22,7 @@
  */
 #include "tvm_codegen.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 namespace tvm {
 namespace contrib {
diff --git a/src/ir/analysis.cc b/src/ir/analysis.cc
index d1bd278a2c..41c75c875b 100644
--- a/src/ir/analysis.cc
+++ b/src/ir/analysis.cc
@@ -21,7 +21,7 @@
  * \file src/ir/analysis.cc
  * \brief Analysis functions that must span multiple IR types
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/analysis.h>
 
 #include "../support/ordered_set.h"
diff --git a/src/ir/apply_pass_to_function.cc b/src/ir/apply_pass_to_function.cc
index 61c31c6169..c77bbf89d0 100644
--- a/src/ir/apply_pass_to_function.cc
+++ b/src/ir/apply_pass_to_function.cc
@@ -22,7 +22,7 @@
  * \brief Utility transformation that applies an inner pass to a subset of an IRModule
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/transform.h>
 #include <tvm/relax/expr.h>
 #include <tvm/tir/function.h>
diff --git a/src/ir/attrs.cc b/src/ir/attrs.cc
index 37c08ccac0..0daf88d553 100644
--- a/src/ir/attrs.cc
+++ b/src/ir/attrs.cc
@@ -21,7 +21,7 @@
  * \file attrs.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/attrs.h>
 
 #include "attr_functor.h"
diff --git a/src/ir/diagnostic.cc b/src/ir/diagnostic.cc
index 7ca61ff201..096bf43b40 100644
--- a/src/ir/diagnostic.cc
+++ b/src/ir/diagnostic.cc
@@ -21,7 +21,7 @@
  * \file src/ir/diagnostic.cc
  * \brief Implementation of DiagnosticContext and friends.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/diagnostic.h>
 #include <tvm/ir/source_map.h>
 
diff --git a/src/ir/env_func.cc b/src/ir/env_func.cc
index 2bb2588da2..9b47b713e7 100644
--- a/src/ir/env_func.cc
+++ b/src/ir/env_func.cc
@@ -21,7 +21,7 @@
  * \file env_func.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/env_func.h>
 #include <tvm/tir/expr.h>
 
diff --git a/src/ir/expr.cc b/src/ir/expr.cc
index 522edcbe18..863009fd83 100644
--- a/src/ir/expr.cc
+++ b/src/ir/expr.cc
@@ -23,7 +23,7 @@
  */
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/expr.h>
 #include <tvm/ir/function.h>
 #include <tvm/te/tensor.h>
diff --git a/src/ir/function.cc b/src/ir/function.cc
index 75be4619a5..6cf0cd35ce 100644
--- a/src/ir/function.cc
+++ b/src/ir/function.cc
@@ -22,7 +22,7 @@
  * \brief The function data structure.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/rvalue_ref.h>
 #include <tvm/ir/function.h>
 #include <tvm/relax/expr.h>
diff --git a/src/ir/global_info.cc b/src/ir/global_info.cc
index e1c187cf60..da6b5ac560 100644
--- a/src/ir/global_info.cc
+++ b/src/ir/global_info.cc
@@ -22,7 +22,7 @@
  * \brief Module global info.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/global_info.h>
 namespace tvm {
 
diff --git a/src/ir/global_var_supply.cc b/src/ir/global_var_supply.cc
index b7a00655e0..5903de1dde 100644
--- a/src/ir/global_var_supply.cc
+++ b/src/ir/global_var_supply.cc
@@ -24,7 +24,7 @@
 #include "tvm/ir/global_var_supply.h"
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <utility>
 
diff --git a/src/ir/instrument.cc b/src/ir/instrument.cc
index 03897cb6db..eb6b51dbfe 100644
--- a/src/ir/instrument.cc
+++ b/src/ir/instrument.cc
@@ -23,7 +23,7 @@
  */
 #include <dmlc/thread_local.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/instrument.h>
 #include <tvm/ir/transform.h>
 #include <tvm/node/repr_printer.h>
diff --git a/src/ir/module.cc b/src/ir/module.cc
index 6b513805e2..9eedbd5e30 100644
--- a/src/ir/module.cc
+++ b/src/ir/module.cc
@@ -22,7 +22,7 @@
  */
 #include <tvm/ffi/container/variant.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/rvalue_ref.h>
 #include <tvm/ir/global_var_supply.h>
 #include <tvm/ir/module.h>
diff --git a/src/ir/name_supply.cc b/src/ir/name_supply.cc
index 692a272089..40412ad307 100644
--- a/src/ir/name_supply.cc
+++ b/src/ir/name_supply.cc
@@ -24,7 +24,7 @@
 #include "tvm/ir/name_supply.h"
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <utility>
 
diff --git a/src/ir/op.cc b/src/ir/op.cc
index a07ddfa51b..d958a3949f 100644
--- a/src/ir/op.cc
+++ b/src/ir/op.cc
@@ -22,7 +22,7 @@
  * \brief Primitive operators and intrinsics.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/op.h>
 #include <tvm/ir/type.h>
 #include <tvm/runtime/module.h>
diff --git a/src/ir/replace_global_vars.cc b/src/ir/replace_global_vars.cc
index 65fe02e833..9887a111f9 100644
--- a/src/ir/replace_global_vars.cc
+++ b/src/ir/replace_global_vars.cc
@@ -23,7 +23,7 @@
  */
 
 #include <tvm/ffi/container/variant.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/replace_global_vars.h>
 
 #include <vector>
diff --git a/src/ir/source_map.cc b/src/ir/source_map.cc
index 46801b2559..e71ed05e32 100644
--- a/src/ir/source_map.cc
+++ b/src/ir/source_map.cc
@@ -21,7 +21,7 @@
  * \brief The implementation of the source map data structure.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/source_map.h>
 #include <tvm/ir/transform.h>
 
diff --git a/src/ir/transform.cc b/src/ir/transform.cc
index ea49cf5c59..d069bd7fee 100644
--- a/src/ir/transform.cc
+++ b/src/ir/transform.cc
@@ -23,7 +23,7 @@
  */
 #include <dmlc/thread_local.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/rvalue_ref.h>
 #include <tvm/ir/transform.h>
 #include <tvm/node/repr_printer.h>
diff --git a/src/ir/type.cc b/src/ir/type.cc
index 37bfd540c5..4e580356ff 100644
--- a/src/ir/type.cc
+++ b/src/ir/type.cc
@@ -22,7 +22,7 @@
  * \brief Common type system AST nodes throughout the IR.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/type.h>
 namespace tvm {
 
diff --git a/src/meta_schedule/arg_info.cc b/src/meta_schedule/arg_info.cc
index 34206a8284..7994ff6863 100644
--- a/src/meta_schedule/arg_info.cc
+++ b/src/meta_schedule/arg_info.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "./utils.h"
 
diff --git a/src/meta_schedule/builder/builder.cc b/src/meta_schedule/builder/builder.cc
index 9623c50028..acef3c90ac 100644
--- a/src/meta_schedule/builder/builder.cc
+++ b/src/meta_schedule/builder/builder.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/cost_model/cost_model.cc b/src/meta_schedule/cost_model/cost_model.cc
index 0ce259bc6c..96b407edba 100644
--- a/src/meta_schedule/cost_model/cost_model.cc
+++ b/src/meta_schedule/cost_model/cost_model.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/database/database.cc b/src/meta_schedule/database/database.cc
index fe4401fa4c..11b3c6dc3e 100644
--- a/src/meta_schedule/database/database.cc
+++ b/src/meta_schedule/database/database.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../module_equality.h"
 #include "../utils.h"
diff --git a/src/meta_schedule/database/json_database.cc b/src/meta_schedule/database/json_database.cc
index aca011e55b..1c859cc28c 100644
--- a/src/meta_schedule/database/json_database.cc
+++ b/src/meta_schedule/database/json_database.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <set>
 #include <thread>
diff --git a/src/meta_schedule/database/memory_database.cc b/src/meta_schedule/database/memory_database.cc
index 9889463728..262b70466e 100644
--- a/src/meta_schedule/database/memory_database.cc
+++ b/src/meta_schedule/database/memory_database.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../module_equality.h"
 #include "../utils.h"
diff --git a/src/meta_schedule/database/ordered_union_database.cc b/src/meta_schedule/database/ordered_union_database.cc
index 8a1e1f5a71..824386b24c 100644
--- a/src/meta_schedule/database/ordered_union_database.cc
+++ b/src/meta_schedule/database/ordered_union_database.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/database/schedule_fn_database.cc b/src/meta_schedule/database/schedule_fn_database.cc
index 242c797a45..a42ab49b17 100644
--- a/src/meta_schedule/database/schedule_fn_database.cc
+++ b/src/meta_schedule/database/schedule_fn_database.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/database/union_database.cc b/src/meta_schedule/database/union_database.cc
index fa6a5d4b38..00a8a01c28 100644
--- a/src/meta_schedule/database/union_database.cc
+++ b/src/meta_schedule/database/union_database.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/extracted_task.cc b/src/meta_schedule/extracted_task.cc
index 21c1e2024a..5854a8c318 100644
--- a/src/meta_schedule/extracted_task.cc
+++ b/src/meta_schedule/extracted_task.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/meta_schedule/extracted_task.h>
 #include <tvm/te/operation.h>
 #include <tvm/te/tensor.h>
diff --git a/src/meta_schedule/feature_extractor/feature_extractor.cc b/src/meta_schedule/feature_extractor/feature_extractor.cc
index 146d32d6a3..171f44715d 100644
--- a/src/meta_schedule/feature_extractor/feature_extractor.cc
+++ b/src/meta_schedule/feature_extractor/feature_extractor.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/feature_extractor/per_store_feature.cc b/src/meta_schedule/feature_extractor/per_store_feature.cc
index 60f2bee7ea..690c36882c 100644
--- a/src/meta_schedule/feature_extractor/per_store_feature.cc
+++ b/src/meta_schedule/feature_extractor/per_store_feature.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/transform.h>
 
 #include <cmath>
diff --git a/src/meta_schedule/measure_callback/add_to_database.cc b/src/meta_schedule/measure_callback/add_to_database.cc
index 04fac7b3ba..ad3b75e056 100644
--- a/src/meta_schedule/measure_callback/add_to_database.cc
+++ b/src/meta_schedule/measure_callback/add_to_database.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/measure_callback/measure_callback.cc b/src/meta_schedule/measure_callback/measure_callback.cc
index e1c32f8e0a..8e19e898be 100644
--- a/src/meta_schedule/measure_callback/measure_callback.cc
+++ b/src/meta_schedule/measure_callback/measure_callback.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/measure_callback/remove_build_artifact.cc b/src/meta_schedule/measure_callback/remove_build_artifact.cc
index c1500308ee..2de99f4f2d 100644
--- a/src/meta_schedule/measure_callback/remove_build_artifact.cc
+++ b/src/meta_schedule/measure_callback/remove_build_artifact.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/measure_callback/update_cost_model.cc b/src/meta_schedule/measure_callback/update_cost_model.cc
index ada68bf29a..65089c5ab8 100644
--- a/src/meta_schedule/measure_callback/update_cost_model.cc
+++ b/src/meta_schedule/measure_callback/update_cost_model.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/mutator/mutate_compute_location.cc b/src/meta_schedule/mutator/mutate_compute_location.cc
index 5442337ac5..a0fccc0d3e 100644
--- a/src/meta_schedule/mutator/mutate_compute_location.cc
+++ b/src/meta_schedule/mutator/mutate_compute_location.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/mutator/mutate_parallel.cc b/src/meta_schedule/mutator/mutate_parallel.cc
index a923ddb6fd..ea5c039f6b 100644
--- a/src/meta_schedule/mutator/mutate_parallel.cc
+++ b/src/meta_schedule/mutator/mutate_parallel.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <algorithm>
 #include <unordered_map>
diff --git a/src/meta_schedule/mutator/mutate_thread_binding.cc b/src/meta_schedule/mutator/mutate_thread_binding.cc
index c9419679a4..6e49ed74be 100644
--- a/src/meta_schedule/mutator/mutate_thread_binding.cc
+++ b/src/meta_schedule/mutator/mutate_thread_binding.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/mutator/mutate_tile_size.cc b/src/meta_schedule/mutator/mutate_tile_size.cc
index 41f19b8a4c..af5fb3ebab 100644
--- a/src/meta_schedule/mutator/mutate_tile_size.cc
+++ b/src/meta_schedule/mutator/mutate_tile_size.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <mutex>
 #include <unordered_map>
diff --git a/src/meta_schedule/mutator/mutate_unroll.cc b/src/meta_schedule/mutator/mutate_unroll.cc
index 99df1f7d1f..5c6b2f0c7b 100644
--- a/src/meta_schedule/mutator/mutate_unroll.cc
+++ b/src/meta_schedule/mutator/mutate_unroll.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/mutator/mutator.cc b/src/meta_schedule/mutator/mutator.cc
index b9e300ef22..13cd6fdfe0 100644
--- a/src/meta_schedule/mutator/mutator.cc
+++ b/src/meta_schedule/mutator/mutator.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/postproc/disallow_async_strided_mem_copy.cc b/src/meta_schedule/postproc/disallow_async_strided_mem_copy.cc
index 22c9fd9a8f..52d48b3d08 100644
--- a/src/meta_schedule/postproc/disallow_async_strided_mem_copy.cc
+++ b/src/meta_schedule/postproc/disallow_async_strided_mem_copy.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/postproc/disallow_dynamic_loop.cc b/src/meta_schedule/postproc/disallow_dynamic_loop.cc
index a2021085a5..03f50ee045 100644
--- a/src/meta_schedule/postproc/disallow_dynamic_loop.cc
+++ b/src/meta_schedule/postproc/disallow_dynamic_loop.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/postproc/postproc.cc b/src/meta_schedule/postproc/postproc.cc
index 43a8fc9816..9805d874de 100644
--- a/src/meta_schedule/postproc/postproc.cc
+++ b/src/meta_schedule/postproc/postproc.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/postproc/rewrite_cooperative_fetch.cc b/src/meta_schedule/postproc/rewrite_cooperative_fetch.cc
index b76fe1d832..8bbb2f2646 100644
--- a/src/meta_schedule/postproc/rewrite_cooperative_fetch.cc
+++ b/src/meta_schedule/postproc/rewrite_cooperative_fetch.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/postproc/rewrite_layout.cc b/src/meta_schedule/postproc/rewrite_layout.cc
index 867b6dfa66..caafee5cb1 100644
--- a/src/meta_schedule/postproc/rewrite_layout.cc
+++ b/src/meta_schedule/postproc/rewrite_layout.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <optional>
 #include <unordered_set>
diff --git a/src/meta_schedule/postproc/rewrite_parallel_vectorize_unroll.cc b/src/meta_schedule/postproc/rewrite_parallel_vectorize_unroll.cc
index 9cf856a528..ab49374c8f 100644
--- a/src/meta_schedule/postproc/rewrite_parallel_vectorize_unroll.cc
+++ b/src/meta_schedule/postproc/rewrite_parallel_vectorize_unroll.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/postproc/rewrite_reduction_block.cc b/src/meta_schedule/postproc/rewrite_reduction_block.cc
index 02d6edc1b2..571ed5675e 100644
--- a/src/meta_schedule/postproc/rewrite_reduction_block.cc
+++ b/src/meta_schedule/postproc/rewrite_reduction_block.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/postproc/rewrite_tensorize.cc b/src/meta_schedule/postproc/rewrite_tensorize.cc
index 897ea30876..ec3389d9e2 100644
--- a/src/meta_schedule/postproc/rewrite_tensorize.cc
+++ b/src/meta_schedule/postproc/rewrite_tensorize.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/meta_schedule/postproc.h>
 
 #include <algorithm>
diff --git a/src/meta_schedule/postproc/rewrite_unbound_block.cc b/src/meta_schedule/postproc/rewrite_unbound_block.cc
index 8b620bfb68..9006fb2764 100644
--- a/src/meta_schedule/postproc/rewrite_unbound_block.cc
+++ b/src/meta_schedule/postproc/rewrite_unbound_block.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/meta_schedule/schedule/cuda/thread_bind.h>
 
 #include "../utils.h"
diff --git a/src/meta_schedule/postproc/verify_gpu_code.cc b/src/meta_schedule/postproc/verify_gpu_code.cc
index 390fe407a5..d06e3bf7e9 100644
--- a/src/meta_schedule/postproc/verify_gpu_code.cc
+++ b/src/meta_schedule/postproc/verify_gpu_code.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/transform.h>
 
 #include "../utils.h"
diff --git a/src/meta_schedule/postproc/verify_vtcm_limit.cc b/src/meta_schedule/postproc/verify_vtcm_limit.cc
index 4e310e16a2..bcd6e7d258 100644
--- a/src/meta_schedule/postproc/verify_vtcm_limit.cc
+++ b/src/meta_schedule/postproc/verify_vtcm_limit.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/transform.h>
 
 #include "../utils.h"
diff --git a/src/meta_schedule/profiler.cc b/src/meta_schedule/profiler.cc
index 8540c8188b..cf82958392 100644
--- a/src/meta_schedule/profiler.cc
+++ b/src/meta_schedule/profiler.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <algorithm>
 #include <chrono>
diff --git a/src/meta_schedule/runner/runner.cc b/src/meta_schedule/runner/runner.cc
index 088468a201..73b4369445 100644
--- a/src/meta_schedule/runner/runner.cc
+++ b/src/meta_schedule/runner/runner.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/schedule/cpu/winograd.cc b/src/meta_schedule/schedule/cpu/winograd.cc
index fca4b11078..9d2cdaedbd 100644
--- a/src/meta_schedule/schedule/cpu/winograd.cc
+++ b/src/meta_schedule/schedule/cpu/winograd.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/meta_schedule/schedule/generic/winograd.h>
 
 #include "../../utils.h"
diff --git a/src/meta_schedule/schedule/cuda/winograd.cc b/src/meta_schedule/schedule/cuda/winograd.cc
index 871e0565fb..ea7ee90e14 100644
--- a/src/meta_schedule/schedule/cuda/winograd.cc
+++ b/src/meta_schedule/schedule/cuda/winograd.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/meta_schedule/schedule/cuda/thread_bind.h>
 #include <tvm/meta_schedule/schedule/generic/winograd.h>
 
diff --git a/src/meta_schedule/schedule_rule/add_rfactor.cc b/src/meta_schedule/schedule_rule/add_rfactor.cc
index e5f6848512..f0826538d0 100644
--- a/src/meta_schedule/schedule_rule/add_rfactor.cc
+++ b/src/meta_schedule/schedule_rule/add_rfactor.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/schedule_rule/apply_custom_rule.cc b/src/meta_schedule/schedule_rule/apply_custom_rule.cc
index 6d8995a3bf..c8603bfd01 100644
--- a/src/meta_schedule/schedule_rule/apply_custom_rule.cc
+++ b/src/meta_schedule/schedule_rule/apply_custom_rule.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/schedule_rule/auto_bind.cc b/src/meta_schedule/schedule_rule/auto_bind.cc
index 6e15e2a750..11ae7fb0f2 100644
--- a/src/meta_schedule/schedule_rule/auto_bind.cc
+++ b/src/meta_schedule/schedule_rule/auto_bind.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/meta_schedule/schedule/cuda/thread_bind.h>
 
 #include <algorithm>
diff --git a/src/meta_schedule/schedule_rule/auto_inline.cc b/src/meta_schedule/schedule_rule/auto_inline.cc
index 8f8a186065..bcf927803e 100644
--- a/src/meta_schedule/schedule_rule/auto_inline.cc
+++ b/src/meta_schedule/schedule_rule/auto_inline.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/schedule_rule/cross_thread_reduction.cc b/src/meta_schedule/schedule_rule/cross_thread_reduction.cc
index ac1e43d2b6..be6a7202b4 100644
--- a/src/meta_schedule/schedule_rule/cross_thread_reduction.cc
+++ b/src/meta_schedule/schedule_rule/cross_thread_reduction.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/schedule_rule/multi_level_tiling.cc b/src/meta_schedule/schedule_rule/multi_level_tiling.cc
index a642cc62c1..b812d7d81d 100644
--- a/src/meta_schedule/schedule_rule/multi_level_tiling.cc
+++ b/src/meta_schedule/schedule_rule/multi_level_tiling.cc
@@ -18,7 +18,7 @@
  */
 #include "./multi_level_tiling.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/meta_schedule/schedule_rule.h>
 
 #include <algorithm>
diff --git a/src/meta_schedule/schedule_rule/multi_level_tiling.h b/src/meta_schedule/schedule_rule/multi_level_tiling.h
index 5589604fd9..2b03d749f2 100644
--- a/src/meta_schedule/schedule_rule/multi_level_tiling.h
+++ b/src/meta_schedule/schedule_rule/multi_level_tiling.h
@@ -19,7 +19,7 @@
 #ifndef TVM_META_SCHEDULE_SCHEDULE_RULE_MULTI_LEVEL_TILING_H_
 #define TVM_META_SCHEDULE_SCHEDULE_RULE_MULTI_LEVEL_TILING_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/meta_schedule/schedule_rule.h>
 #include <tvm/tir/schedule/schedule.h>
 
diff --git a/src/meta_schedule/schedule_rule/multi_level_tiling_tensor_core.cc b/src/meta_schedule/schedule_rule/multi_level_tiling_tensor_core.cc
index 4b80d6909d..3c57a3cfdd 100644
--- a/src/meta_schedule/schedule_rule/multi_level_tiling_tensor_core.cc
+++ b/src/meta_schedule/schedule_rule/multi_level_tiling_tensor_core.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/meta_schedule/schedule_rule.h>
 #include <tvm/tir/op.h>
 
diff --git a/src/meta_schedule/schedule_rule/multi_level_tiling_wide_vector.cc b/src/meta_schedule/schedule_rule/multi_level_tiling_wide_vector.cc
index 415636949a..1724f3065e 100644
--- a/src/meta_schedule/schedule_rule/multi_level_tiling_wide_vector.cc
+++ b/src/meta_schedule/schedule_rule/multi_level_tiling_wide_vector.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../../tir/schedule/analysis.h"
 #include "../../tir/schedule/transform.h"
diff --git a/src/meta_schedule/schedule_rule/multi_level_tiling_with_intrin.cc b/src/meta_schedule/schedule_rule/multi_level_tiling_with_intrin.cc
index df20f39fbc..567cfbccb7 100644
--- a/src/meta_schedule/schedule_rule/multi_level_tiling_with_intrin.cc
+++ b/src/meta_schedule/schedule_rule/multi_level_tiling_with_intrin.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../../tir/schedule/analysis.h"
 #include "../../tir/schedule/transform.h"
diff --git a/src/meta_schedule/schedule_rule/parallel_vectorize_unroll.cc b/src/meta_schedule/schedule_rule/parallel_vectorize_unroll.cc
index a04d1591b4..b2ae2b01a2 100644
--- a/src/meta_schedule/schedule_rule/parallel_vectorize_unroll.cc
+++ b/src/meta_schedule/schedule_rule/parallel_vectorize_unroll.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/schedule_rule/random_compute_location.cc b/src/meta_schedule/schedule_rule/random_compute_location.cc
index 18c01e9125..9aa7c2c5cb 100644
--- a/src/meta_schedule/schedule_rule/random_compute_location.cc
+++ b/src/meta_schedule/schedule_rule/random_compute_location.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/schedule_rule/schedule_rule.cc b/src/meta_schedule/schedule_rule/schedule_rule.cc
index 0086564ee4..8950c5c935 100644
--- a/src/meta_schedule/schedule_rule/schedule_rule.cc
+++ b/src/meta_schedule/schedule_rule/schedule_rule.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/search_strategy/evolutionary_search.cc b/src/meta_schedule/search_strategy/evolutionary_search.cc
index b50db43edb..78b80f4397 100644
--- a/src/meta_schedule/search_strategy/evolutionary_search.cc
+++ b/src/meta_schedule/search_strategy/evolutionary_search.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../module_equality.h"
 #include "../utils.h"
diff --git a/src/meta_schedule/search_strategy/replay_func.cc b/src/meta_schedule/search_strategy/replay_func.cc
index 2c53b7b77a..d9435f873a 100644
--- a/src/meta_schedule/search_strategy/replay_func.cc
+++ b/src/meta_schedule/search_strategy/replay_func.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/search_strategy/replay_trace.cc b/src/meta_schedule/search_strategy/replay_trace.cc
index 2166d527f5..7303113cf4 100644
--- a/src/meta_schedule/search_strategy/replay_trace.cc
+++ b/src/meta_schedule/search_strategy/replay_trace.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/search_strategy/search_strategy.cc b/src/meta_schedule/search_strategy/search_strategy.cc
index 171def21ee..cfc4ae44e9 100644
--- a/src/meta_schedule/search_strategy/search_strategy.cc
+++ b/src/meta_schedule/search_strategy/search_strategy.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/space_generator/post_order_apply.cc b/src/meta_schedule/space_generator/post_order_apply.cc
index 9702b2c602..9f71989fa4 100644
--- a/src/meta_schedule/space_generator/post_order_apply.cc
+++ b/src/meta_schedule/space_generator/post_order_apply.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/space_generator/schedule_fn.cc b/src/meta_schedule/space_generator/schedule_fn.cc
index 2562c0d601..5d1c8a1613 100644
--- a/src/meta_schedule/space_generator/schedule_fn.cc
+++ b/src/meta_schedule/space_generator/schedule_fn.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/space_generator/space_generator.cc b/src/meta_schedule/space_generator/space_generator.cc
index e3b9e8fcb7..f402931946 100644
--- a/src/meta_schedule/space_generator/space_generator.cc
+++ b/src/meta_schedule/space_generator/space_generator.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../../target/parsers/aprofile.h"
 #include "../utils.h"
diff --git a/src/meta_schedule/space_generator/space_generator_union.cc b/src/meta_schedule/space_generator/space_generator_union.cc
index 8af12e879d..0adb22a448 100644
--- a/src/meta_schedule/space_generator/space_generator_union.cc
+++ b/src/meta_schedule/space_generator/space_generator_union.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/task_scheduler/gradient_based.cc b/src/meta_schedule/task_scheduler/gradient_based.cc
index baf579e18d..da41be04fd 100644
--- a/src/meta_schedule/task_scheduler/gradient_based.cc
+++ b/src/meta_schedule/task_scheduler/gradient_based.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/task_scheduler/round_robin.cc b/src/meta_schedule/task_scheduler/round_robin.cc
index 9523749ddf..5614c14b12 100644
--- a/src/meta_schedule/task_scheduler/round_robin.cc
+++ b/src/meta_schedule/task_scheduler/round_robin.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/task_scheduler/task_scheduler.cc b/src/meta_schedule/task_scheduler/task_scheduler.cc
index d2f5f05f22..1d9d8e89ad 100644
--- a/src/meta_schedule/task_scheduler/task_scheduler.cc
+++ b/src/meta_schedule/task_scheduler/task_scheduler.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/meta_schedule/trace_apply.cc b/src/meta_schedule/trace_apply.cc
index 3608d25cea..4037f6757b 100644
--- a/src/meta_schedule/trace_apply.cc
+++ b/src/meta_schedule/trace_apply.cc
@@ -18,7 +18,7 @@
  */
 #include "trace_apply.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/stmt_functor.h>
 
diff --git a/src/meta_schedule/tune_context.cc b/src/meta_schedule/tune_context.cc
index 939b90c93b..722209893d 100644
--- a/src/meta_schedule/tune_context.cc
+++ b/src/meta_schedule/tune_context.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <utility>
 
diff --git a/src/node/object_path.cc b/src/node/object_path.cc
index 7edd690b7b..6fd7a43a04 100644
--- a/src/node/object_path.cc
+++ b/src/node/object_path.cc
@@ -19,7 +19,7 @@
 
 #include <tvm/ffi/function.h>
 #include <tvm/ffi/memory.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/node/object_path.h>
 #include <tvm/node/repr_printer.h>
 
diff --git a/src/node/reflection.cc b/src/node/reflection.cc
index baed335e6e..a5f24672e6 100644
--- a/src/node/reflection.cc
+++ b/src/node/reflection.cc
@@ -22,7 +22,8 @@
  * \file node/reflection.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/accessor.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/attrs.h>
 #include <tvm/node/node.h>
 #include <tvm/node/reflection.h>
diff --git a/src/node/repr_printer.cc b/src/node/repr_printer.cc
index ff16406dd9..d273ba6a73 100644
--- a/src/node/repr_printer.cc
+++ b/src/node/repr_printer.cc
@@ -22,7 +22,7 @@
  * \file node/repr_printer.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/node/repr_printer.h>
 #include <tvm/runtime/device_api.h>
 
diff --git a/src/node/script_printer.cc b/src/node/script_printer.cc
index 3cc1f018f0..ed64a43084 100644
--- a/src/node/script_printer.cc
+++ b/src/node/script_printer.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/expr.h>
 #include <tvm/node/repr_printer.h>
 #include <tvm/node/script_printer.h>
diff --git a/src/node/serialization.cc b/src/node/serialization.cc
index e5618ea2fa..016822e256 100644
--- a/src/node/serialization.cc
+++ b/src/node/serialization.cc
@@ -24,7 +24,8 @@
 #include <dmlc/json.h>
 #include <dmlc/memory_io.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/accessor.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/attrs.h>
 #include <tvm/node/reflection.h>
 #include <tvm/node/serialization.h>
diff --git a/src/node/structural_equal.cc b/src/node/structural_equal.cc
index c0a3992010..43dee2eb3b 100644
--- a/src/node/structural_equal.cc
+++ b/src/node/structural_equal.cc
@@ -20,7 +20,7 @@
  * \file src/node/structural_equal.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/module.h>
 #include <tvm/node/functor.h>
 #include <tvm/node/node.h>
diff --git a/src/node/structural_hash.cc b/src/node/structural_hash.cc
index 5f11448f85..2a60754f7b 100644
--- a/src/node/structural_hash.cc
+++ b/src/node/structural_hash.cc
@@ -21,7 +21,7 @@
  */
 #include <dmlc/memory_io.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/node/functor.h>
 #include <tvm/node/node.h>
 #include <tvm/node/object_path.h>
diff --git a/src/relax/analysis/analysis.cc b/src/relax/analysis/analysis.cc
index 8580ec6112..f1f47910f8 100644
--- a/src/relax/analysis/analysis.cc
+++ b/src/relax/analysis/analysis.cc
@@ -24,7 +24,7 @@
  * \brief Analysis functions for Relax.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/tir/expr_functor.h>
diff --git a/src/relax/analysis/computable_at_compile_time.cc b/src/relax/analysis/computable_at_compile_time.cc
index bd9b566335..8b8665445d 100644
--- a/src/relax/analysis/computable_at_compile_time.cc
+++ b/src/relax/analysis/computable_at_compile_time.cc
@@ -23,7 +23,7 @@
  * \brief Utilities for identifying potentially compile-time variables
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr_functor.h>
 
diff --git a/src/relax/analysis/detect_recursion.cc b/src/relax/analysis/detect_recursion.cc
index d3af3a78de..73ad8a31f8 100644
--- a/src/relax/analysis/detect_recursion.cc
+++ b/src/relax/analysis/detect_recursion.cc
@@ -24,7 +24,7 @@
  * \brief Analysis to detect global recursive or mutually recursive functions.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/tir/expr_functor.h>
diff --git a/src/relax/analysis/layout_transformation.cc b/src/relax/analysis/layout_transformation.cc
index f0d5620dd2..109af127df 100644
--- a/src/relax/analysis/layout_transformation.cc
+++ b/src/relax/analysis/layout_transformation.cc
@@ -24,7 +24,7 @@
  */
 #include <tvm/arith/analyzer.h>
 #include <tvm/arith/iter_affine_map.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/index_map.h>
diff --git a/src/relax/analysis/struct_info_analysis.cc b/src/relax/analysis/struct_info_analysis.cc
index 1888a7b27d..389fb003c6 100644
--- a/src/relax/analysis/struct_info_analysis.cc
+++ b/src/relax/analysis/struct_info_analysis.cc
@@ -23,7 +23,7 @@
  *
  * \note Update this file when you added a new StructInfo.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/struct_info_functor.h>
diff --git a/src/relax/analysis/tir_op_pattern_kind.cc b/src/relax/analysis/tir_op_pattern_kind.cc
index 2f896263e9..b6809c0f35 100644
--- a/src/relax/analysis/tir_op_pattern_kind.cc
+++ b/src/relax/analysis/tir_op_pattern_kind.cc
@@ -18,7 +18,7 @@
  */
 
 #include <tvm/arith/iter_affine_map.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/op_attr_types.h>
 #include <tvm/tir/analysis.h>
diff --git a/src/relax/analysis/udchain.cc b/src/relax/analysis/udchain.cc
index e2c201abeb..6ec8dcfb57 100644
--- a/src/relax/analysis/udchain.cc
+++ b/src/relax/analysis/udchain.cc
@@ -22,7 +22,7 @@
  * \brief Implementation of use-def analysis.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/relax/analysis/var2value.cc b/src/relax/analysis/var2value.cc
index d24067c8f4..1f28ba9edb 100644
--- a/src/relax/analysis/var2value.cc
+++ b/src/relax/analysis/var2value.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/relax/analysis/well_formed.cc b/src/relax/analysis/well_formed.cc
index bd6d727c21..db216aba96 100644
--- a/src/relax/analysis/well_formed.cc
+++ b/src/relax/analysis/well_formed.cc
@@ -64,7 +64,7 @@
  *    17. If the kForcePure attribute is set for a function,
  *        that function's is_pure field must be true.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/relax/backend/contrib/clml/codegen.cc b/src/relax/backend/contrib/clml/codegen.cc
index cd038597ee..ec7063f2e9 100644
--- a/src/relax/backend/contrib/clml/codegen.cc
+++ b/src/relax/backend/contrib/clml/codegen.cc
@@ -21,7 +21,7 @@
  * \file src/relax/backend/contrib/clml/codegen.cc
  * \brief Implementation of the OpenCLML JSON serializer.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/module.h>
 #include <tvm/ir/transform.h>
 #include <tvm/relax/type.h>
diff --git a/src/relax/backend/contrib/codegen_json/codegen_json.h b/src/relax/backend/contrib/codegen_json/codegen_json.h
index b2b0423257..6b7b955cdd 100644
--- a/src/relax/backend/contrib/codegen_json/codegen_json.h
+++ b/src/relax/backend/contrib/codegen_json/codegen_json.h
@@ -26,7 +26,8 @@
 
 #include <dmlc/any.h>
 #include <dmlc/json.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/accessor.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/node/reflection.h>
 #include <tvm/relax/struct_info.h>
 #include <tvm/tir/op.h>
diff --git a/src/relax/backend/contrib/cublas/codegen.cc b/src/relax/backend/contrib/cublas/codegen.cc
index d894d44f45..41a4cb766a 100644
--- a/src/relax/backend/contrib/cublas/codegen.cc
+++ b/src/relax/backend/contrib/cublas/codegen.cc
@@ -21,7 +21,7 @@
  * \file src/relax/backend/contrib/cublas/codegen.cc
  * \brief Implementation of the CUBLAS JSON serializer.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/module.h>
 #include <tvm/runtime/builtin_fp16.h>
 
diff --git a/src/relax/backend/contrib/cudnn/codegen.cc b/src/relax/backend/contrib/cudnn/codegen.cc
index 3de9f6e033..358f2d6604 100644
--- a/src/relax/backend/contrib/cudnn/codegen.cc
+++ b/src/relax/backend/contrib/cudnn/codegen.cc
@@ -21,7 +21,7 @@
  * \file src/relax/backend/contrib/cudnn/codegen.cc
  * \brief Implementation of the cuDNN JSON serializer.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/module.h>
 
 #include <string>
diff --git a/src/relax/backend/contrib/cutlass/codegen.cc b/src/relax/backend/contrib/cutlass/codegen.cc
index 2ddc348996..874dced500 100644
--- a/src/relax/backend/contrib/cutlass/codegen.cc
+++ b/src/relax/backend/contrib/cutlass/codegen.cc
@@ -21,7 +21,7 @@
  * \file src/relax/backend/contrib/cutlass/codegen.cc
  * \brief Implementation of the CUTLASS code generator for Relax.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/module.h>
 #include <tvm/ir/name_supply.h>
 #include <tvm/relax/analysis.h>
diff --git a/src/relax/backend/contrib/dnnl/codegen.cc b/src/relax/backend/contrib/dnnl/codegen.cc
index c79734e15a..349dbd4ef1 100644
--- a/src/relax/backend/contrib/dnnl/codegen.cc
+++ b/src/relax/backend/contrib/dnnl/codegen.cc
@@ -21,7 +21,7 @@
  * \file src/relax/backend/contrib/dnnl/codegen.cc
  * \brief Implementation of the DNNL JSON serializer.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/module.h>
 
 #include <string>
diff --git a/src/relax/backend/contrib/hipblas/codegen.cc b/src/relax/backend/contrib/hipblas/codegen.cc
index 408dcc4e72..d14d7aed57 100644
--- a/src/relax/backend/contrib/hipblas/codegen.cc
+++ b/src/relax/backend/contrib/hipblas/codegen.cc
@@ -21,7 +21,7 @@
  * \file src/relax/backend/contrib/hipblas/codegen.cc
  * \brief Implementation of the HIPBLAS JSON serializer.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/module.h>
 
 #include <string>
diff --git a/src/relax/backend/contrib/nnapi/codegen.cc b/src/relax/backend/contrib/nnapi/codegen.cc
index f3b0e7bb95..ded7340b6f 100644
--- a/src/relax/backend/contrib/nnapi/codegen.cc
+++ b/src/relax/backend/contrib/nnapi/codegen.cc
@@ -18,7 +18,7 @@
  */
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/module.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/type.h>
diff --git a/src/relax/backend/contrib/tensorrt/codegen.cc b/src/relax/backend/contrib/tensorrt/codegen.cc
index 65b67ce493..8665fe347e 100644
--- a/src/relax/backend/contrib/tensorrt/codegen.cc
+++ b/src/relax/backend/contrib/tensorrt/codegen.cc
@@ -21,7 +21,7 @@
  * \file src/relax/backend/contrib/tensorrt/codegen.cc
  * \brief Implementation of the TensorRT JSON serializer.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/module.h>
 #include <tvm/ir/transform.h>
 // TODO(sunggg): add operator attribute when it's ready
diff --git a/src/relax/backend/contrib/utils.cc b/src/relax/backend/contrib/utils.cc
index 41bd11d60e..b555d1fc0f 100644
--- a/src/relax/backend/contrib/utils.cc
+++ b/src/relax/backend/contrib/utils.cc
@@ -18,7 +18,7 @@
  */
 #include "utils.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/dataflow_matcher.h>
 #include <tvm/relax/expr.h>
diff --git a/src/relax/backend/pattern_registry.cc b/src/relax/backend/pattern_registry.cc
index 90b5afbd4d..6689aca2f9 100644
--- a/src/relax/backend/pattern_registry.cc
+++ b/src/relax/backend/pattern_registry.cc
@@ -19,7 +19,7 @@
 
 #include "./pattern_registry.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../../support/utils.h"
 
diff --git a/src/relax/backend/task_extraction.cc b/src/relax/backend/task_extraction.cc
index 7b476b88b7..b057191304 100644
--- a/src/relax/backend/task_extraction.cc
+++ b/src/relax/backend/task_extraction.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/meta_schedule/extracted_task.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/relax/backend/vm/codegen_vm.cc b/src/relax/backend/vm/codegen_vm.cc
index 4a76905f3f..13fe82d4bc 100644
--- a/src/relax/backend/vm/codegen_vm.cc
+++ b/src/relax/backend/vm/codegen_vm.cc
@@ -21,7 +21,7 @@
  * \file src/relax/backend/vm/codegen_vm.cc
  * \brief A codegen to generate VM executable from a Relax IRModule.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/exec_builder.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/op_attr_types.h>
diff --git a/src/relax/backend/vm/codegen_vm_tir.cc b/src/relax/backend/vm/codegen_vm_tir.cc
index 91df8329d0..042bd5301a 100644
--- a/src/relax/backend/vm/codegen_vm_tir.cc
+++ b/src/relax/backend/vm/codegen_vm_tir.cc
@@ -21,7 +21,7 @@
  * \file src/relax/backend/vm/codegen_tir.cc
  * \brief A codegen to generate VMTIR function(that can be compiled) from executable.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/module.h>
 #include <tvm/relax/exec_builder.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/relax/backend/vm/exec_builder.cc b/src/relax/backend/vm/exec_builder.cc
index 86ac536a9f..0a768e89fe 100644
--- a/src/relax/backend/vm/exec_builder.cc
+++ b/src/relax/backend/vm/exec_builder.cc
@@ -20,7 +20,7 @@
 /*!
  * \file src/relax/backend/vm/exec_builder.cc
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/exec_builder.h>
 
 #include <sstream>
diff --git a/src/relax/backend/vm/lower_runtime_builtin.cc b/src/relax/backend/vm/lower_runtime_builtin.cc
index c569920c57..06adc3daba 100644
--- a/src/relax/backend/vm/lower_runtime_builtin.cc
+++ b/src/relax/backend/vm/lower_runtime_builtin.cc
@@ -20,7 +20,7 @@
  * \file src/relax/backend/vm/lower_runtime_builtin.cc
  * \brief Lowers most builtin functions and packed calls.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/attrs/op.h>
 #include <tvm/relax/backend.h>
diff --git a/src/relax/backend/vm/vm_shape_lower.cc b/src/relax/backend/vm/vm_shape_lower.cc
index a964ca1e1a..397490023c 100644
--- a/src/relax/backend/vm/vm_shape_lower.cc
+++ b/src/relax/backend/vm/vm_shape_lower.cc
@@ -20,7 +20,7 @@
  * \file src/relax/backend/vm/vm_shape_lower.cc
  * \brief Lower the function boundary type checks and symbolic shape computations.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/backend.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/relax/distributed/global_info.cc b/src/relax/distributed/global_info.cc
index 57d2e652dc..8489ecc1b2 100644
--- a/src/relax/distributed/global_info.cc
+++ b/src/relax/distributed/global_info.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/distributed/global_info.h>
 
 namespace tvm {
diff --git a/src/relax/distributed/struct_info.cc b/src/relax/distributed/struct_info.cc
index 4b014d2a4a..fc6d5f8504 100644
--- a/src/relax/distributed/struct_info.cc
+++ b/src/relax/distributed/struct_info.cc
@@ -22,7 +22,7 @@
  * \brief Relax dtensor struct info.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/distributed/struct_info.h>
 namespace tvm {
 namespace relax {
diff --git a/src/relax/distributed/transform/legalize_redistribute.cc b/src/relax/distributed/transform/legalize_redistribute.cc
index cc5a26bc47..47f28252ff 100644
--- a/src/relax/distributed/transform/legalize_redistribute.cc
+++ b/src/relax/distributed/transform/legalize_redistribute.cc
@@ -22,7 +22,7 @@
  * \brief Pass for legalizing redistribute op to ccl op.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/attrs/ccl.h>
 #include <tvm/relax/attrs/distributed.h>
 #include <tvm/relax/distributed/axis_group_graph.h>
diff --git a/src/relax/distributed/transform/lower_distir.cc b/src/relax/distributed/transform/lower_distir.cc
index 73ed61d45c..036867043f 100644
--- a/src/relax/distributed/transform/lower_distir.cc
+++ b/src/relax/distributed/transform/lower_distir.cc
@@ -25,7 +25,7 @@
  *  inserting necessary broadcast and scatter for inputs.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/attrs/ccl.h>
 #include <tvm/relax/distributed/axis_group_graph.h>
 #include <tvm/relax/distributed/transform.h>
diff --git a/src/relax/distributed/transform/lower_global_view_to_local_view.cc b/src/relax/distributed/transform/lower_global_view_to_local_view.cc
index e2951fd764..7baf49508d 100644
--- a/src/relax/distributed/transform/lower_global_view_to_local_view.cc
+++ b/src/relax/distributed/transform/lower_global_view_to_local_view.cc
@@ -21,7 +21,7 @@
  * \file tvm/relax/distributed/transform/lower_global_view_to_local_view.cc
  * \brief Pass for lowering global view TensorIR into local view
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/attrs/ccl.h>
 #include <tvm/relax/distributed/axis_group_graph.h>
 #include <tvm/relax/distributed/transform.h>
diff --git a/src/relax/distributed/transform/propagate_sharding.cc b/src/relax/distributed/transform/propagate_sharding.cc
index 5e0972be77..1f46b54cfe 100644
--- a/src/relax/distributed/transform/propagate_sharding.cc
+++ b/src/relax/distributed/transform/propagate_sharding.cc
@@ -21,7 +21,7 @@
  * \file tvm/relax/distributed/transform/propagate_sharding.cc
  * \brief Pass for propagating sharding information.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/attrs/distributed.h>
 #include <tvm/relax/attrs/linear_algebra.h>
diff --git a/src/relax/ir/binding_rewrite.cc b/src/relax/ir/binding_rewrite.cc
index 72f1e1acbf..ffe01f1f94 100644
--- a/src/relax/ir/binding_rewrite.cc
+++ b/src/relax/ir/binding_rewrite.cc
@@ -22,7 +22,7 @@
  * \brief Implementation of binding rewriters.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/binding_rewrite.h>
 #include <tvm/relax/block_builder.h>
 #include <tvm/relax/expr.h>
diff --git a/src/relax/ir/block_builder.cc b/src/relax/ir/block_builder.cc
index 7990dc0d39..6a972f518f 100644
--- a/src/relax/ir/block_builder.cc
+++ b/src/relax/ir/block_builder.cc
@@ -22,7 +22,7 @@
  */
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/block_builder.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/relax/ir/dataflow_block_rewriter.cc b/src/relax/ir/dataflow_block_rewriter.cc
index d7934c1422..def0e61c98 100644
--- a/src/relax/ir/dataflow_block_rewriter.cc
+++ b/src/relax/ir/dataflow_block_rewriter.cc
@@ -23,7 +23,7 @@
  */
 
 #include <tvm/arith/analyzer.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/node/structural_equal.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/dataflow_matcher.h>
diff --git a/src/relax/ir/dataflow_expr_rewriter.cc b/src/relax/ir/dataflow_expr_rewriter.cc
index 8646612777..8074790003 100644
--- a/src/relax/ir/dataflow_expr_rewriter.cc
+++ b/src/relax/ir/dataflow_expr_rewriter.cc
@@ -22,7 +22,7 @@
  * \brief A transform to match a Relax Expr and rewrite
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/transform.h>
 #include <tvm/node/structural_equal.h>
 #include <tvm/relax/analysis.h>
diff --git a/src/relax/ir/dataflow_pattern.cc b/src/relax/ir/dataflow_pattern.cc
index f2861eb684..9b15495727 100644
--- a/src/relax/ir/dataflow_pattern.cc
+++ b/src/relax/ir/dataflow_pattern.cc
@@ -22,7 +22,7 @@
  * \brief The dataflow pattern language for Relax
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/dataflow_pattern.h>
 #include <tvm/relax/dataflow_pattern_functor.h>
 
diff --git a/src/relax/ir/dataflow_rewriter.h b/src/relax/ir/dataflow_rewriter.h
index 8e36ebbbc4..3c5f6d3a5f 100644
--- a/src/relax/ir/dataflow_rewriter.h
+++ b/src/relax/ir/dataflow_rewriter.h
@@ -24,7 +24,7 @@
 #ifndef TVM_RELAX_IR_DATAFLOW_REWRITER_H_
 #define TVM_RELAX_IR_DATAFLOW_REWRITER_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/expr.h>
 #include <tvm/ir/transform.h>
 #include <tvm/node/reflection.h>
diff --git a/src/relax/ir/emit_te.cc b/src/relax/ir/emit_te.cc
index 264e88af39..0cd3d6d78a 100644
--- a/src/relax/ir/emit_te.cc
+++ b/src/relax/ir/emit_te.cc
@@ -22,7 +22,7 @@
  */
 #include "./emit_te.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/struct_info.h>
 #include <tvm/tir/stmt_functor.h>
 
diff --git a/src/relax/ir/emit_te.h b/src/relax/ir/emit_te.h
index 3a58d918c6..bc4b90a373 100644
--- a/src/relax/ir/emit_te.h
+++ b/src/relax/ir/emit_te.h
@@ -24,7 +24,7 @@
 #ifndef TVM_RELAX_IR_EMIT_TE_H_
 #define TVM_RELAX_IR_EMIT_TE_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/expr.h>
 #include <tvm/te/operation.h>
 
diff --git a/src/relax/ir/expr.cc b/src/relax/ir/expr.cc
index 07dae6b29e..6005497a8e 100644
--- a/src/relax/ir/expr.cc
+++ b/src/relax/ir/expr.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/struct_info.h>
diff --git a/src/relax/ir/expr_functor.cc b/src/relax/ir/expr_functor.cc
index cdc9ab8d50..d772613b5d 100644
--- a/src/relax/ir/expr_functor.cc
+++ b/src/relax/ir/expr_functor.cc
@@ -24,7 +24,7 @@
  * ExprMutator uses memoization and self return in order to amortize
  * the cost of using functional updates.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/type_functor.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/relax/ir/py_expr_functor.cc b/src/relax/ir/py_expr_functor.cc
index 6b32b00d1b..963f13b84f 100644
--- a/src/relax/ir/py_expr_functor.cc
+++ b/src/relax/ir/py_expr_functor.cc
@@ -21,7 +21,7 @@
  * \file src/relax/py_expr_functor.cc
  * \brief The backbone of PyExprVisitor/PyExprMutator.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/expr_functor.h>
 
 namespace tvm {
diff --git a/src/relax/ir/struct_info.cc b/src/relax/ir/struct_info.cc
index db94af28ab..00414fe339 100644
--- a/src/relax/ir/struct_info.cc
+++ b/src/relax/ir/struct_info.cc
@@ -22,7 +22,7 @@
  * \brief Relax struct info.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/struct_info.h>
 #include <tvm/relax/struct_info_functor.h>
diff --git a/src/relax/ir/transform.cc b/src/relax/ir/transform.cc
index d2f6612454..4c057b5e0c 100644
--- a/src/relax/ir/transform.cc
+++ b/src/relax/ir/transform.cc
@@ -23,7 +23,7 @@
  */
 #include <dmlc/thread_local.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/rvalue_ref.h>
 #include <tvm/node/repr_printer.h>
 #include <tvm/relax/analysis.h>
diff --git a/src/relax/ir/type.cc b/src/relax/ir/type.cc
index aa5be9294a..bcec47a2b1 100644
--- a/src/relax/ir/type.cc
+++ b/src/relax/ir/type.cc
@@ -22,7 +22,7 @@
  * \brief Relax type system.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/type.h>
 
 namespace tvm {
diff --git a/src/relax/op/ccl/ccl.cc b/src/relax/op/ccl/ccl.cc
index e28dd7e397..ee6537d034 100644
--- a/src/relax/op/ccl/ccl.cc
+++ b/src/relax/op/ccl/ccl.cc
@@ -19,7 +19,7 @@
 
 #include "ccl.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <utility>
 
diff --git a/src/relax/op/distributed/distributed.cc b/src/relax/op/distributed/distributed.cc
index 97e8a12a5b..52087af34e 100644
--- a/src/relax/op/distributed/distributed.cc
+++ b/src/relax/op/distributed/distributed.cc
@@ -24,7 +24,7 @@
 
 #include "distributed.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/attrs/ccl.h>
 #include <tvm/topi/einsum.h>
 
diff --git a/src/relax/op/image/resize.cc b/src/relax/op/image/resize.cc
index b20543f6af..9620420107 100644
--- a/src/relax/op/image/resize.cc
+++ b/src/relax/op/image/resize.cc
@@ -24,7 +24,7 @@
 
 #include "resize.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <utility>
 
diff --git a/src/relax/op/memory/view.cc b/src/relax/op/memory/view.cc
index 32badb28eb..1af12b4751 100644
--- a/src/relax/op/memory/view.cc
+++ b/src/relax/op/memory/view.cc
@@ -24,7 +24,7 @@
 
 #include "view.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 namespace tvm {
 namespace relax {
diff --git a/src/relax/op/nn/attention.cc b/src/relax/op/nn/attention.cc
index e1d2e1f7bd..7edefbc32c 100644
--- a/src/relax/op/nn/attention.cc
+++ b/src/relax/op/nn/attention.cc
@@ -19,7 +19,7 @@
 
 #include "attention.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <utility>
 
diff --git a/src/relax/op/nn/convolution.cc b/src/relax/op/nn/convolution.cc
index d869eaf94c..96932442e8 100644
--- a/src/relax/op/nn/convolution.cc
+++ b/src/relax/op/nn/convolution.cc
@@ -24,7 +24,7 @@
 
 #include "convolution.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <vector>
 
diff --git a/src/relax/op/nn/nn.cc b/src/relax/op/nn/nn.cc
index 279d6f08f8..165e265d93 100644
--- a/src/relax/op/nn/nn.cc
+++ b/src/relax/op/nn/nn.cc
@@ -19,7 +19,7 @@
 
 #include "nn.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <utility>
 #include <vector>
diff --git a/src/relax/op/nn/pooling.cc b/src/relax/op/nn/pooling.cc
index 61bda019a5..d6fd53de98 100644
--- a/src/relax/op/nn/pooling.cc
+++ b/src/relax/op/nn/pooling.cc
@@ -19,7 +19,7 @@
 
 #include "pooling.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <utility>
 #include <vector>
diff --git a/src/relax/op/op.cc b/src/relax/op/op.cc
index 4c55f98b36..37454f5607 100644
--- a/src/relax/op/op.cc
+++ b/src/relax/op/op.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/attrs/op.h>
 #include <tvm/relax/distributed/struct_info.h>
diff --git a/src/relax/op/tensor/create.cc b/src/relax/op/tensor/create.cc
index 3bd943e11f..e7d23518e6 100644
--- a/src/relax/op/tensor/create.cc
+++ b/src/relax/op/tensor/create.cc
@@ -25,7 +25,7 @@
 #include "create.h"
 
 #include <tvm/arith/analyzer.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <string>
 #include <utility>
diff --git a/src/relax/op/tensor/datatype.cc b/src/relax/op/tensor/datatype.cc
index 7129fe58e9..515bb0209d 100644
--- a/src/relax/op/tensor/datatype.cc
+++ b/src/relax/op/tensor/datatype.cc
@@ -24,7 +24,7 @@
 
 #include "datatype.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <utility>
 
diff --git a/src/relax/op/tensor/grad.cc b/src/relax/op/tensor/grad.cc
index 1343fd1a39..03578e5dd5 100644
--- a/src/relax/op/tensor/grad.cc
+++ b/src/relax/op/tensor/grad.cc
@@ -24,7 +24,7 @@
 
 #include "grad.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <utility>
 
diff --git a/src/relax/op/tensor/index.cc b/src/relax/op/tensor/index.cc
index 5354929844..86383a50d5 100644
--- a/src/relax/op/tensor/index.cc
+++ b/src/relax/op/tensor/index.cc
@@ -24,7 +24,7 @@
 
 #include "index.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/topi/transform.h>
 
diff --git a/src/relax/op/tensor/linear_algebra.cc b/src/relax/op/tensor/linear_algebra.cc
index 9ce2208434..d9f94fe3bf 100644
--- a/src/relax/op/tensor/linear_algebra.cc
+++ b/src/relax/op/tensor/linear_algebra.cc
@@ -24,7 +24,7 @@
 
 #include "linear_algebra.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/topi/einsum.h>
 
 #include <algorithm>
diff --git a/src/relax/op/tensor/manipulate.cc b/src/relax/op/tensor/manipulate.cc
index fd1fcc67f7..7e35f51678 100644
--- a/src/relax/op/tensor/manipulate.cc
+++ b/src/relax/op/tensor/manipulate.cc
@@ -24,7 +24,7 @@
 
 #include "manipulate.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <algorithm>
 #include <numeric>
diff --git a/src/relax/op/tensor/qdq.cc b/src/relax/op/tensor/qdq.cc
index baf622f269..f55d8fc9cc 100644
--- a/src/relax/op/tensor/qdq.cc
+++ b/src/relax/op/tensor/qdq.cc
@@ -24,7 +24,7 @@
 
 #include "qdq.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <utility>
 
diff --git a/src/relax/op/tensor/sampling.cc b/src/relax/op/tensor/sampling.cc
index b5016c75b4..dc032cd822 100644
--- a/src/relax/op/tensor/sampling.cc
+++ b/src/relax/op/tensor/sampling.cc
@@ -24,7 +24,7 @@
 
 #include "sampling.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 
 #include <utility>
diff --git a/src/relax/op/tensor/search.cc b/src/relax/op/tensor/search.cc
index 60b9a4ce9d..a3d17be135 100644
--- a/src/relax/op/tensor/search.cc
+++ b/src/relax/op/tensor/search.cc
@@ -24,7 +24,7 @@
 
 #include "search.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <algorithm>
 #include <utility>
diff --git a/src/relax/op/tensor/set.cc b/src/relax/op/tensor/set.cc
index 0268a5bfc7..f0fc387137 100644
--- a/src/relax/op/tensor/set.cc
+++ b/src/relax/op/tensor/set.cc
@@ -24,7 +24,7 @@
 
 #include "set.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <algorithm>
 #include <utility>
diff --git a/src/relax/op/tensor/sorting.cc b/src/relax/op/tensor/sorting.cc
index 5f210e2d92..1f4399e5e1 100644
--- a/src/relax/op/tensor/sorting.cc
+++ b/src/relax/op/tensor/sorting.cc
@@ -24,7 +24,7 @@
 
 #include "sorting.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <vector>
 
diff --git a/src/relax/op/tensor/statistical.cc b/src/relax/op/tensor/statistical.cc
index 56920c896a..e784081d5c 100644
--- a/src/relax/op/tensor/statistical.cc
+++ b/src/relax/op/tensor/statistical.cc
@@ -24,7 +24,7 @@
 
 #include "statistical.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <string>
 #include <vector>
diff --git a/src/relax/op/tensor/ternary.cc b/src/relax/op/tensor/ternary.cc
index e57638c41a..b60344e351 100644
--- a/src/relax/op/tensor/ternary.cc
+++ b/src/relax/op/tensor/ternary.cc
@@ -24,7 +24,7 @@
 
 #include "ternary.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 namespace tvm {
 namespace relax {
diff --git a/src/relax/op/tensor/unary.cc b/src/relax/op/tensor/unary.cc
index 2482032f5e..ac7b995ff1 100644
--- a/src/relax/op/tensor/unary.cc
+++ b/src/relax/op/tensor/unary.cc
@@ -24,7 +24,7 @@
 
 #include "unary.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <utility>
 
diff --git a/src/relax/testing/transform.cc b/src/relax/testing/transform.cc
index ea1e4dc1aa..67660f6651 100644
--- a/src/relax/testing/transform.cc
+++ b/src/relax/testing/transform.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/transform.h>
 
diff --git a/src/relax/training/utils.cc b/src/relax/training/utils.cc
index d72e2ee140..49e5b862e9 100644
--- a/src/relax/training/utils.cc
+++ b/src/relax/training/utils.cc
@@ -24,7 +24,7 @@
 
 #include "utils.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/transform.h>
diff --git a/src/relax/transform/adjust_matmul_order.cc b/src/relax/transform/adjust_matmul_order.cc
index d376fa8a75..55ca86c306 100644
--- a/src/relax/transform/adjust_matmul_order.cc
+++ b/src/relax/transform/adjust_matmul_order.cc
@@ -22,7 +22,7 @@
  * \brief Re-order `matmul(matmul(A,B), x)` to `matmul(A, matmul(B,x))`
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/dataflow_matcher.h>
 #include <tvm/relax/expr.h>
diff --git a/src/relax/transform/allocate_workspace.cc b/src/relax/transform/allocate_workspace.cc
index 084eec69c1..d0b462bb1e 100644
--- a/src/relax/transform/allocate_workspace.cc
+++ b/src/relax/transform/allocate_workspace.cc
@@ -23,7 +23,7 @@
  * satisfy their temporary storage requirement.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/name_supply.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/relax/transform/alter_op_impl.cc b/src/relax/transform/alter_op_impl.cc
index 5b8067d37e..9ae492262d 100644
--- a/src/relax/transform/alter_op_impl.cc
+++ b/src/relax/transform/alter_op_impl.cc
@@ -24,7 +24,7 @@
  * true.
  */
 #include <tvm/arith/analyzer.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/attrs.h>
 #include <tvm/node/serialization.h>
 #include <tvm/relax/analysis.h>
diff --git a/src/relax/transform/annotate_tir_op_pattern.cc b/src/relax/transform/annotate_tir_op_pattern.cc
index e623643b5e..58f22eb47a 100644
--- a/src/relax/transform/annotate_tir_op_pattern.cc
+++ b/src/relax/transform/annotate_tir_op_pattern.cc
@@ -22,7 +22,7 @@
  * \brief Annotate Op Pattern for TIR functions. It is a pass works on TIR PrimFuncs,
  *        but they are needed for relax fusion. So we put them in the relax namespace.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/transform.h>
 #include <tvm/tir/transform.h>
diff --git a/src/relax/transform/attach_attr_layout_free_buffers.cc b/src/relax/transform/attach_attr_layout_free_buffers.cc
index 1bab46f0cd..a7c8013a56 100644
--- a/src/relax/transform/attach_attr_layout_free_buffers.cc
+++ b/src/relax/transform/attach_attr_layout_free_buffers.cc
@@ -21,7 +21,7 @@
  * \brief Attach layout_free_buffers for layout-free buffers.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/transform.h>
 #include <tvm/tir/stmt_functor.h>
diff --git a/src/relax/transform/attach_global_symbol.cc b/src/relax/transform/attach_global_symbol.cc
index 73ae2c36d2..5c2fb9a797 100644
--- a/src/relax/transform/attach_global_symbol.cc
+++ b/src/relax/transform/attach_global_symbol.cc
@@ -21,7 +21,7 @@
  * \brief Attach global_symbol to Relax functions and TIR Primfuncs for codegen.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/module.h>
 #include <tvm/ir/replace_global_vars.h>
 #include <tvm/relax/struct_info.h>
diff --git a/src/relax/transform/bind_params.cc b/src/relax/transform/bind_params.cc
index 582e500dab..6103dbbaec 100644
--- a/src/relax/transform/bind_params.cc
+++ b/src/relax/transform/bind_params.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/function.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/relax/transform/bind_symbolic_vars.cc b/src/relax/transform/bind_symbolic_vars.cc
index 9bac3114d4..7fd75ed7d3 100644
--- a/src/relax/transform/bind_symbolic_vars.cc
+++ b/src/relax/transform/bind_symbolic_vars.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/struct_info.h>
diff --git a/src/relax/transform/bundle_model_params.cc b/src/relax/transform/bundle_model_params.cc
index 2d2a493deb..16b7348b8d 100644
--- a/src/relax/transform/bundle_model_params.cc
+++ b/src/relax/transform/bundle_model_params.cc
@@ -22,7 +22,7 @@
  * \brief Lift local functions into global functions.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/relax/transform/call_tir_rewrite.cc b/src/relax/transform/call_tir_rewrite.cc
index b05229fa56..a47b9bfe51 100644
--- a/src/relax/transform/call_tir_rewrite.cc
+++ b/src/relax/transform/call_tir_rewrite.cc
@@ -21,7 +21,7 @@
  * \brief Perform explicit tensor allocation for call_tir,
  *        call_tir_inplace, and call_dps_packed.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/attrs/op.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/struct_info.h>
diff --git a/src/relax/transform/canonicalize_bindings.cc b/src/relax/transform/canonicalize_bindings.cc
index 9238c5eeae..54c508ff23 100644
--- a/src/relax/transform/canonicalize_bindings.cc
+++ b/src/relax/transform/canonicalize_bindings.cc
@@ -24,7 +24,7 @@
  *        Ideally should be used before constant folding and eliminating unused bindings.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/relax/transform/combine_parallel_matmul.cc b/src/relax/transform/combine_parallel_matmul.cc
index ef827d1dd5..9c0318ee39 100644
--- a/src/relax/transform/combine_parallel_matmul.cc
+++ b/src/relax/transform/combine_parallel_matmul.cc
@@ -18,7 +18,7 @@
  */
 
 #include <tvm/arith/analyzer.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/dataflow_matcher.h>
 #include <tvm/relax/dataflow_pattern.h>
diff --git a/src/relax/transform/compute_prim_value.cc b/src/relax/transform/compute_prim_value.cc
index 9cffabc31d..c2cffd2c44 100644
--- a/src/relax/transform/compute_prim_value.cc
+++ b/src/relax/transform/compute_prim_value.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/transform.h>
 #include <tvm/tir/analysis.h>
diff --git a/src/relax/transform/convert_dataflow.cc b/src/relax/transform/convert_dataflow.cc
index 0afef159d9..4fad1f8318 100644
--- a/src/relax/transform/convert_dataflow.cc
+++ b/src/relax/transform/convert_dataflow.cc
@@ -23,7 +23,7 @@
  *   dataflow into dataflow blocks.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/transform.h>
diff --git a/src/relax/transform/convert_layout.cc b/src/relax/transform/convert_layout.cc
index 57329e32a8..2ba757c76a 100644
--- a/src/relax/transform/convert_layout.cc
+++ b/src/relax/transform/convert_layout.cc
@@ -21,7 +21,7 @@
  * \brief Automatic layout conversion pass, especially for axis swapping.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/node/serialization.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/nested_msg.h>
diff --git a/src/relax/transform/dataflow_inplace.cc b/src/relax/transform/dataflow_inplace.cc
index 3a5e490f5a..7aca1b5e73 100644
--- a/src/relax/transform/dataflow_inplace.cc
+++ b/src/relax/transform/dataflow_inplace.cc
@@ -23,7 +23,7 @@
  *   into in-place versions.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/transform.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/attrs/op.h>
diff --git a/src/relax/transform/dead_code_elimination.cc b/src/relax/transform/dead_code_elimination.cc
index 129b61eb54..59874e7377 100644
--- a/src/relax/transform/dead_code_elimination.cc
+++ b/src/relax/transform/dead_code_elimination.cc
@@ -32,7 +32,7 @@
  * Any binding blocks that are left empty will be removed by the normalizer.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/analysis.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr.h>
diff --git a/src/relax/transform/decompose_ops.cc b/src/relax/transform/decompose_ops.cc
index 589e8f40c5..df57434ebb 100644
--- a/src/relax/transform/decompose_ops.cc
+++ b/src/relax/transform/decompose_ops.cc
@@ -19,7 +19,7 @@
 
 /*! \file src/relax/transform/decompose_ops.cc */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/attrs/nn.h>
 #include <tvm/relax/struct_info.h>
diff --git a/src/relax/transform/eliminate_common_subexpr.cc b/src/relax/transform/eliminate_common_subexpr.cc
index 790d6c30ef..68e3797003 100644
--- a/src/relax/transform/eliminate_common_subexpr.cc
+++ b/src/relax/transform/eliminate_common_subexpr.cc
@@ -24,7 +24,7 @@
  *
  * Currently it removes common subexpressions within a Function.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/transform.h>
diff --git a/src/relax/transform/expand_matmul_of_sum.cc b/src/relax/transform/expand_matmul_of_sum.cc
index 518cd25724..70662396fe 100644
--- a/src/relax/transform/expand_matmul_of_sum.cc
+++ b/src/relax/transform/expand_matmul_of_sum.cc
@@ -22,7 +22,7 @@
  * \brief Expand `matmul(x, A+B)` to `matmul(x, A) + matmul(x,B)`
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/dataflow_matcher.h>
 #include <tvm/relax/expr.h>
diff --git a/src/relax/transform/expand_tuple_arguments.cc b/src/relax/transform/expand_tuple_arguments.cc
index 68921c22e3..17ab181ec9 100644
--- a/src/relax/transform/expand_tuple_arguments.cc
+++ b/src/relax/transform/expand_tuple_arguments.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/transform.h>
 
diff --git a/src/relax/transform/few_shot_tuning.cc b/src/relax/transform/few_shot_tuning.cc
index a2ba60fc65..a9ebdfebf3 100644
--- a/src/relax/transform/few_shot_tuning.cc
+++ b/src/relax/transform/few_shot_tuning.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/transform.h>
 
 #include "../../meta_schedule/utils.h"
diff --git a/src/relax/transform/fold_constant.cc b/src/relax/transform/fold_constant.cc
index 7c5b5812b8..fc7c6b26df 100644
--- a/src/relax/transform/fold_constant.cc
+++ b/src/relax/transform/fold_constant.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/function.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/relax/transform/fuse_ops.cc b/src/relax/transform/fuse_ops.cc
index 42fb14aede..0828e9c81c 100644
--- a/src/relax/transform/fuse_ops.cc
+++ b/src/relax/transform/fuse_ops.cc
@@ -27,7 +27,7 @@
  * A follow-up pass named "FuseTIR" will generate a TIR PrimFunc for each grouped function.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/dataflow_matcher.h>
 #include <tvm/relax/dataflow_pattern.h>
diff --git a/src/relax/transform/fuse_tir.cc b/src/relax/transform/fuse_tir.cc
index 5de5579ec0..db3916bc22 100644
--- a/src/relax/transform/fuse_tir.cc
+++ b/src/relax/transform/fuse_tir.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/attrs/op.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/relax/transform/gradient.cc b/src/relax/transform/gradient.cc
index e42302b187..ff14dc9eef 100644
--- a/src/relax/transform/gradient.cc
+++ b/src/relax/transform/gradient.cc
@@ -25,7 +25,7 @@
  * with respect to the only return value of the function, which needs to be scalar.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/attrs/op.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/relax/transform/infer_layout_utils.cc b/src/relax/transform/infer_layout_utils.cc
index 4bba41d657..b2f647c5c2 100644
--- a/src/relax/transform/infer_layout_utils.cc
+++ b/src/relax/transform/infer_layout_utils.cc
@@ -18,7 +18,7 @@
  */
 #include "infer_layout_utils.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "utils.h"
 
diff --git a/src/relax/transform/infer_layout_utils.h b/src/relax/transform/infer_layout_utils.h
index bf0a992f99..69148ce060 100644
--- a/src/relax/transform/infer_layout_utils.h
+++ b/src/relax/transform/infer_layout_utils.h
@@ -27,7 +27,7 @@
 #ifndef TVM_RELAX_TRANSFORM_INFER_LAYOUT_UTILS_H_
 #define TVM_RELAX_TRANSFORM_INFER_LAYOUT_UTILS_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/attrs/create.h>
 #include <tvm/relax/attrs/datatype.h>
 #include <tvm/relax/attrs/image.h>
diff --git a/src/relax/transform/inline_functions.cc b/src/relax/transform/inline_functions.cc
index e69b24cee1..2c393a4a93 100644
--- a/src/relax/transform/inline_functions.cc
+++ b/src/relax/transform/inline_functions.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/relax/transform/kill_after_last_use.cc b/src/relax/transform/kill_after_last_use.cc
index 50cfc970ab..8c3b76703d 100644
--- a/src/relax/transform/kill_after_last_use.cc
+++ b/src/relax/transform/kill_after_last_use.cc
@@ -21,7 +21,7 @@
  * \brief Kill storage/tensor objects after last use, if not already killed
  */
 #include <tvm/arith/analyzer.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/nested_msg.h>
diff --git a/src/relax/transform/lambda_lift.cc b/src/relax/transform/lambda_lift.cc
index fdd5cbe8ac..1fd82b1cc6 100644
--- a/src/relax/transform/lambda_lift.cc
+++ b/src/relax/transform/lambda_lift.cc
@@ -22,7 +22,7 @@
  * \brief Lift local functions into global functions.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/relax/transform/lazy_transform_params.cc b/src/relax/transform/lazy_transform_params.cc
index 9ec990c8aa..23c99eb928 100644
--- a/src/relax/transform/lazy_transform_params.cc
+++ b/src/relax/transform/lazy_transform_params.cc
@@ -19,7 +19,7 @@
 
 /*! \file src/relax/transform/lazy_transform_params.cc */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/relax/transform/legalize_ops.cc b/src/relax/transform/legalize_ops.cc
index 57df1f5d3d..780de9f570 100644
--- a/src/relax/transform/legalize_ops.cc
+++ b/src/relax/transform/legalize_ops.cc
@@ -23,7 +23,7 @@
  * with corresponding low-level TIR PrimFuncs.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/op_attr_types.h>
diff --git a/src/relax/transform/lift_transform_params.cc b/src/relax/transform/lift_transform_params.cc
index 5c4c88c6a3..1a426ec5da 100644
--- a/src/relax/transform/lift_transform_params.cc
+++ b/src/relax/transform/lift_transform_params.cc
@@ -22,7 +22,7 @@
  * \brief Lift local functions into global functions.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/relax/transform/lower_alloc_tensor.cc b/src/relax/transform/lower_alloc_tensor.cc
index dda7828e41..36911cd094 100644
--- a/src/relax/transform/lower_alloc_tensor.cc
+++ b/src/relax/transform/lower_alloc_tensor.cc
@@ -20,7 +20,7 @@
  * \file src/relax/transform/lower_alloc_tensor.cc
  * \brief Lower any relax.builtin.alloc_tensor remaining after static planning
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/transform.h>
 
diff --git a/src/relax/transform/merge_composite_functions.cc b/src/relax/transform/merge_composite_functions.cc
index a12699b672..3c8511f8ed 100644
--- a/src/relax/transform/merge_composite_functions.cc
+++ b/src/relax/transform/merge_composite_functions.cc
@@ -54,7 +54,7 @@
  * is important since the dependency relation is transitive.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/struct_info.h>
 #include <tvm/relax/transform.h>
diff --git a/src/relax/transform/meta_schedule.cc b/src/relax/transform/meta_schedule.cc
index d6654b33a7..85b021e2f5 100644
--- a/src/relax/transform/meta_schedule.cc
+++ b/src/relax/transform/meta_schedule.cc
@@ -21,7 +21,7 @@
  * \file tvm/relax/transform/meta_schedule.cc
  * \brief Pass for meta_schedule tuning
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/meta_schedule/database.h>
 #include <tvm/relax/transform.h>
 #include <tvm/tir/transform.h>
diff --git a/src/relax/transform/normalize.cc b/src/relax/transform/normalize.cc
index 36573ac8e2..8bd740009e 100644
--- a/src/relax/transform/normalize.cc
+++ b/src/relax/transform/normalize.cc
@@ -24,7 +24,7 @@
  * available.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/struct_info.h>
diff --git a/src/relax/transform/realize_vdevice.cc b/src/relax/transform/realize_vdevice.cc
index d557920a29..96885eb255 100644
--- a/src/relax/transform/realize_vdevice.cc
+++ b/src/relax/transform/realize_vdevice.cc
@@ -21,7 +21,7 @@
  * \file tvm/relax/transform/realize_vdevice.cc
  * \brief Propagate virtual device information.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/attrs/op.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/relax/transform/remove_purity_checking.cc b/src/relax/transform/remove_purity_checking.cc
index f6a990ec10..d8bb6465da 100644
--- a/src/relax/transform/remove_purity_checking.cc
+++ b/src/relax/transform/remove_purity_checking.cc
@@ -20,7 +20,7 @@
  * \file src/relax/transform/remove_purity_checking.cc
  * \brief Apply kForcePure in all pure functions and unwrap all calls to pure overrides
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/struct_info.h>
 #include <tvm/relax/transform.h>
diff --git a/src/relax/transform/remove_unused_outputs.cc b/src/relax/transform/remove_unused_outputs.cc
index ad1760fbbb..3a2dd9c219 100644
--- a/src/relax/transform/remove_unused_outputs.cc
+++ b/src/relax/transform/remove_unused_outputs.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/transform.h>
diff --git a/src/relax/transform/remove_unused_parameters.cc b/src/relax/transform/remove_unused_parameters.cc
index 985ce4af22..778e551e9a 100644
--- a/src/relax/transform/remove_unused_parameters.cc
+++ b/src/relax/transform/remove_unused_parameters.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/transform.h>
diff --git a/src/relax/transform/reorder_permute_dims_after_concat.cc b/src/relax/transform/reorder_permute_dims_after_concat.cc
index df4ba45d5f..b97981a7f4 100644
--- a/src/relax/transform/reorder_permute_dims_after_concat.cc
+++ b/src/relax/transform/reorder_permute_dims_after_concat.cc
@@ -22,7 +22,7 @@
  * \brief Reorder concat(permute_dims(A), permute_dims(B)) into permute_dims(concat(A,B))
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/dataflow_matcher.h>
 #include <tvm/relax/expr.h>
diff --git a/src/relax/transform/reorder_take_after_matmul.cc b/src/relax/transform/reorder_take_after_matmul.cc
index 6793e18306..eebec15f52 100644
--- a/src/relax/transform/reorder_take_after_matmul.cc
+++ b/src/relax/transform/reorder_take_after_matmul.cc
@@ -22,7 +22,7 @@
  * \brief Expand `matmul(x, A+B)` to `matmul(x, A) + matmul(x,B)`
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/dataflow_matcher.h>
 #include <tvm/relax/expr.h>
diff --git a/src/relax/transform/rewrite_cuda_graph.cc b/src/relax/transform/rewrite_cuda_graph.cc
index c26bf887e4..b1faf5c092 100644
--- a/src/relax/transform/rewrite_cuda_graph.cc
+++ b/src/relax/transform/rewrite_cuda_graph.cc
@@ -49,7 +49,7 @@
  * 2. Lift the regions identified in step 1 to a separate function and rewrite the original function
  * with `CUDAGraphRewriter`.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/backend.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/relax/transform/rewrite_dataflow_reshape.cc b/src/relax/transform/rewrite_dataflow_reshape.cc
index b491b96c57..a9e5e8b3c5 100644
--- a/src/relax/transform/rewrite_dataflow_reshape.cc
+++ b/src/relax/transform/rewrite_dataflow_reshape.cc
@@ -21,7 +21,7 @@
  * \brief Transform all reshape within dataflow block to a relax.reshape operator
  */
 #include <tvm/arith/analyzer.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/transform.h>
diff --git a/src/relax/transform/run_codegen.cc b/src/relax/transform/run_codegen.cc
index 0dadbebbff..a4a109cb0e 100644
--- a/src/relax/transform/run_codegen.cc
+++ b/src/relax/transform/run_codegen.cc
@@ -23,7 +23,7 @@
  * \brief Run codegen for annotated relax functions.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/transform.h>
diff --git a/src/relax/transform/split_call_tir_by_pattern.cc b/src/relax/transform/split_call_tir_by_pattern.cc
index bb4142900e..e669979d09 100644
--- a/src/relax/transform/split_call_tir_by_pattern.cc
+++ b/src/relax/transform/split_call_tir_by_pattern.cc
@@ -21,7 +21,7 @@
  * \brief Transform all dataflow structure to non-dataflow version.
  */
 #include <tvm/arith/analyzer.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/module.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/tir_pattern.h>
diff --git a/src/relax/transform/split_layout_rewrite_preproc.cc b/src/relax/transform/split_layout_rewrite_preproc.cc
index a2f67bc65d..3fa9d52147 100644
--- a/src/relax/transform/split_layout_rewrite_preproc.cc
+++ b/src/relax/transform/split_layout_rewrite_preproc.cc
@@ -21,7 +21,7 @@
  * \file src/relax/transform/split_tir_layout_rewrite.cc
  * \brief Use for rewriting the TIRs after meta_schedule layout rewrite post process.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/transform.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/transform.h>
diff --git a/src/relax/transform/static_plan_block_memory.cc b/src/relax/transform/static_plan_block_memory.cc
index 58e3df3b7e..9e54a8fac8 100644
--- a/src/relax/transform/static_plan_block_memory.cc
+++ b/src/relax/transform/static_plan_block_memory.cc
@@ -66,7 +66,7 @@
  * during memory planning.
  */
 #include <tvm/arith/analyzer.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/nested_msg.h>
diff --git a/src/relax/transform/to_mixed_precision.cc b/src/relax/transform/to_mixed_precision.cc
index b22654181c..90b343faa6 100644
--- a/src/relax/transform/to_mixed_precision.cc
+++ b/src/relax/transform/to_mixed_precision.cc
@@ -21,7 +21,7 @@
  * \brief Automatic mixed precision pass.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/op_attr_types.h>
 #include <tvm/relax/transform.h>
diff --git a/src/relax/transform/to_non_dataflow.cc b/src/relax/transform/to_non_dataflow.cc
index 6516c794a3..5f87c4a6be 100644
--- a/src/relax/transform/to_non_dataflow.cc
+++ b/src/relax/transform/to_non_dataflow.cc
@@ -20,7 +20,7 @@
  * \file src/relax/transform/to_non_dataflow.cc
  * \brief Transform all dataflow structure to non-dataflow version.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/struct_info.h>
 #include <tvm/relax/transform.h>
diff --git a/src/relax/transform/topological_sort.cc b/src/relax/transform/topological_sort.cc
index fcb5011731..c9f11b32be 100644
--- a/src/relax/transform/topological_sort.cc
+++ b/src/relax/transform/topological_sort.cc
@@ -20,7 +20,7 @@
  * \file src/relax/transform/topological_sort.cc
  * \brief Perform a topological sort of Dataflow blocks
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/struct_info.h>
diff --git a/src/relax/transform/update_param_struct_info.cc b/src/relax/transform/update_param_struct_info.cc
index 091448964d..85acec6942 100644
--- a/src/relax/transform/update_param_struct_info.cc
+++ b/src/relax/transform/update_param_struct_info.cc
@@ -22,7 +22,7 @@
  * \brief Mutate IRModule to accept new parameters
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/transform.h>
diff --git a/src/relax/transform/update_vdevice.cc b/src/relax/transform/update_vdevice.cc
index ce5e40048a..fc7d8941fe 100644
--- a/src/relax/transform/update_vdevice.cc
+++ b/src/relax/transform/update_vdevice.cc
@@ -23,7 +23,7 @@
  * \brief Update Virtual Device pass.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/expr_functor.h>
 #include <tvm/relax/transform.h>
diff --git a/src/relax/utils.cc b/src/relax/utils.cc
index 88ecbbe64e..92747a2515 100644
--- a/src/relax/utils.cc
+++ b/src/relax/utils.cc
@@ -19,7 +19,7 @@
 
 #include "transform/utils.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/attrs/index.h>
 #include <tvm/relax/expr_functor.h>
diff --git a/src/runtime/const_loader_module.cc b/src/runtime/const_loader_module.cc
index 1ba8b9c2a8..27daf7cc3e 100644
--- a/src/runtime/const_loader_module.cc
+++ b/src/runtime/const_loader_module.cc
@@ -30,7 +30,7 @@
 #include <tvm/ffi/container/array.h>
 #include <tvm/ffi/container/map.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/string.h>
 #include <tvm/runtime/module.h>
 #include <tvm/runtime/ndarray.h>
diff --git a/src/runtime/contrib/amx/amx_config.cc b/src/runtime/contrib/amx/amx_config.cc
index f607591348..a38072dec1 100644
--- a/src/runtime/contrib/amx/amx_config.cc
+++ b/src/runtime/contrib/amx/amx_config.cc
@@ -22,7 +22,7 @@
  * \brief extraction of AMX configuration on x86 platforms
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 namespace tvm {
 namespace runtime {
diff --git a/src/runtime/contrib/arm_compute_lib/acl_runtime.cc b/src/runtime/contrib/arm_compute_lib/acl_runtime.cc
index d2c6294474..183d4c0a5b 100644
--- a/src/runtime/contrib/arm_compute_lib/acl_runtime.cc
+++ b/src/runtime/contrib/arm_compute_lib/acl_runtime.cc
@@ -23,7 +23,7 @@
  */
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/ndarray.h>
 
 #include "../json/json_node.h"
diff --git a/src/runtime/contrib/bnns/bnns_json_runtime.cc b/src/runtime/contrib/bnns/bnns_json_runtime.cc
index 5177d55319..0bd961524e 100644
--- a/src/runtime/contrib/bnns/bnns_json_runtime.cc
+++ b/src/runtime/contrib/bnns/bnns_json_runtime.cc
@@ -23,7 +23,7 @@
  */
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/c_backend_api.h>
 #include <tvm/runtime/ndarray.h>
 
diff --git a/src/runtime/contrib/cblas/cblas.cc b/src/runtime/contrib/cblas/cblas.cc
index 23e55cd276..8d74ce855c 100644
--- a/src/runtime/contrib/cblas/cblas.cc
+++ b/src/runtime/contrib/cblas/cblas.cc
@@ -21,7 +21,7 @@
  * \file Use external cblas library call.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/data_type.h>
 #include <tvm/runtime/logging.h>
 
diff --git a/src/runtime/contrib/cblas/dnnl_blas.cc b/src/runtime/contrib/cblas/dnnl_blas.cc
index dd36953d27..59400f19dd 100644
--- a/src/runtime/contrib/cblas/dnnl_blas.cc
+++ b/src/runtime/contrib/cblas/dnnl_blas.cc
@@ -21,7 +21,7 @@
  * \file Use external cblas library call.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/data_type.h>
 #include <tvm/runtime/logging.h>
 
diff --git a/src/runtime/contrib/cblas/mkl.cc b/src/runtime/contrib/cblas/mkl.cc
index 93e2cfa533..19ce6ceb9b 100644
--- a/src/runtime/contrib/cblas/mkl.cc
+++ b/src/runtime/contrib/cblas/mkl.cc
@@ -21,7 +21,7 @@
  * \file Use external mkl library call.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/data_type.h>
 #include <tvm/runtime/logging.h>
 
diff --git a/src/runtime/contrib/clml/clml_runtime.cc b/src/runtime/contrib/clml/clml_runtime.cc
index d298eaf5d6..6b96cbb41b 100644
--- a/src/runtime/contrib/clml/clml_runtime.cc
+++ b/src/runtime/contrib/clml/clml_runtime.cc
@@ -23,7 +23,7 @@
  */
 #include "clml_runtime.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <unordered_map>
 
diff --git a/src/runtime/contrib/coreml/coreml_runtime.mm b/src/runtime/contrib/coreml/coreml_runtime.mm
index 0e902bea9a..6dfd7a67e5 100644
--- a/src/runtime/contrib/coreml/coreml_runtime.mm
+++ b/src/runtime/contrib/coreml/coreml_runtime.mm
@@ -21,7 +21,7 @@
  * \file coreml_runtime.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "coreml_runtime.h"
 
diff --git a/src/runtime/contrib/cublas/cublas.cc b/src/runtime/contrib/cublas/cublas.cc
index 36607973de..d55e0535c2 100644
--- a/src/runtime/contrib/cublas/cublas.cc
+++ b/src/runtime/contrib/cublas/cublas.cc
@@ -21,7 +21,7 @@
  * \file Use external cblas library call.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/data_type.h>
 #include <tvm/runtime/logging.h>
 
diff --git a/src/runtime/contrib/cublas/cublas_json_runtime.cc b/src/runtime/contrib/cublas/cublas_json_runtime.cc
index 7d05cf56bd..9f2cfaa506 100644
--- a/src/runtime/contrib/cublas/cublas_json_runtime.cc
+++ b/src/runtime/contrib/cublas/cublas_json_runtime.cc
@@ -23,7 +23,7 @@
  */
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/ndarray.h>
 
 #include <cstddef>
diff --git a/src/runtime/contrib/cudnn/conv_backward.cc b/src/runtime/contrib/cudnn/conv_backward.cc
index cf049407fc..915f21bc7c 100644
--- a/src/runtime/contrib/cudnn/conv_backward.cc
+++ b/src/runtime/contrib/cudnn/conv_backward.cc
@@ -21,7 +21,7 @@
  * \file cuDNN kernel calls for backward algorithms.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/data_type.h>
 #include <tvm/runtime/device_api.h>
 
diff --git a/src/runtime/contrib/cudnn/conv_forward.cc b/src/runtime/contrib/cudnn/conv_forward.cc
index 14487be359..a0a9edef97 100644
--- a/src/runtime/contrib/cudnn/conv_forward.cc
+++ b/src/runtime/contrib/cudnn/conv_forward.cc
@@ -21,7 +21,7 @@
  * \file cuDNN kernel calls for the forward algorithm.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/data_type.h>
 #include <tvm/runtime/device_api.h>
 
diff --git a/src/runtime/contrib/cudnn/cudnn_json_runtime.cc b/src/runtime/contrib/cudnn/cudnn_json_runtime.cc
index e5268051df..d54fad9d99 100644
--- a/src/runtime/contrib/cudnn/cudnn_json_runtime.cc
+++ b/src/runtime/contrib/cudnn/cudnn_json_runtime.cc
@@ -23,7 +23,7 @@
  */
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/ndarray.h>
 
 #include <cstddef>
diff --git a/src/runtime/contrib/cudnn/cudnn_utils.cc b/src/runtime/contrib/cudnn/cudnn_utils.cc
index f3f0f8b175..f5bb56e089 100644
--- a/src/runtime/contrib/cudnn/cudnn_utils.cc
+++ b/src/runtime/contrib/cudnn/cudnn_utils.cc
@@ -25,7 +25,7 @@
 
 #include <dmlc/thread_local.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/data_type.h>
 
 #include <string>
diff --git a/src/runtime/contrib/cudnn/softmax.cc b/src/runtime/contrib/cudnn/softmax.cc
index 60eb5402a7..f0fda4fd59 100644
--- a/src/runtime/contrib/cudnn/softmax.cc
+++ b/src/runtime/contrib/cudnn/softmax.cc
@@ -22,7 +22,7 @@
  * \brief Use external cudnn softmax function
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/device_api.h>
 
 #include "cudnn_utils.h"
diff --git a/src/runtime/contrib/curand/curand.cc b/src/runtime/contrib/curand/curand.cc
index 9509f45f07..7a9f2d5988 100644
--- a/src/runtime/contrib/curand/curand.cc
+++ b/src/runtime/contrib/curand/curand.cc
@@ -18,7 +18,7 @@
  */
 #include <curand.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/base.h>
 
 #include "../../cuda/cuda_common.h"
diff --git a/src/runtime/contrib/cutlass/fp16_group_gemm_sm100.cu b/src/runtime/contrib/cutlass/fp16_group_gemm_sm100.cu
index 8149fab0aa..90802969c5 100644
--- a/src/runtime/contrib/cutlass/fp16_group_gemm_sm100.cu
+++ b/src/runtime/contrib/cutlass/fp16_group_gemm_sm100.cu
@@ -20,7 +20,7 @@
 #include <cuda_fp16.h>
 #include <float.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/ndarray.h>
 #include <tvm/runtime/packed_func.h>
 
diff --git a/src/runtime/contrib/cutlass/fp16_group_gemm_sm90.cu b/src/runtime/contrib/cutlass/fp16_group_gemm_sm90.cu
index 5276ce9f82..0b240b85a4 100644
--- a/src/runtime/contrib/cutlass/fp16_group_gemm_sm90.cu
+++ b/src/runtime/contrib/cutlass/fp16_group_gemm_sm90.cu
@@ -20,7 +20,7 @@
 #include <cuda_fp16.h>
 #include <float.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/ndarray.h>
 
 #include "fp16_group_gemm.cuh"
diff --git a/src/runtime/contrib/cutlass/fp8_gemm.cu b/src/runtime/contrib/cutlass/fp8_gemm.cu
index fc5c76282b..befef1db93 100644
--- a/src/runtime/contrib/cutlass/fp8_gemm.cu
+++ b/src/runtime/contrib/cutlass/fp8_gemm.cu
@@ -20,7 +20,7 @@
 #include <cuda_fp16.h>
 #include <float.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/ndarray.h>
 
 #include "../cublas/cublas_utils.h"
diff --git a/src/runtime/contrib/cutlass/fp8_group_gemm_sm90.cu b/src/runtime/contrib/cutlass/fp8_group_gemm_sm90.cu
index 4477cccf7f..f9f03fc4ed 100644
--- a/src/runtime/contrib/cutlass/fp8_group_gemm_sm90.cu
+++ b/src/runtime/contrib/cutlass/fp8_group_gemm_sm90.cu
@@ -20,7 +20,7 @@
 #include <cuda_fp16.h>
 #include <float.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/ndarray.h>
 
 #include "fp16_group_gemm_runner_sm90.cuh"
diff --git a/src/runtime/contrib/cutlass/fp8_groupwise_scaled_gemm_sm100.cu b/src/runtime/contrib/cutlass/fp8_groupwise_scaled_gemm_sm100.cu
index 477243e624..7201604a7c 100644
--- a/src/runtime/contrib/cutlass/fp8_groupwise_scaled_gemm_sm100.cu
+++ b/src/runtime/contrib/cutlass/fp8_groupwise_scaled_gemm_sm100.cu
@@ -20,7 +20,7 @@
 #include <cuda_fp16.h>
 #include <float.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/ndarray.h>
 #include <tvm/runtime/packed_func.h>
 
diff --git a/src/runtime/contrib/cutlass/fp8_groupwise_scaled_gemm_sm90.cu b/src/runtime/contrib/cutlass/fp8_groupwise_scaled_gemm_sm90.cu
index ee9c9a4d00..8099d91419 100644
--- a/src/runtime/contrib/cutlass/fp8_groupwise_scaled_gemm_sm90.cu
+++ b/src/runtime/contrib/cutlass/fp8_groupwise_scaled_gemm_sm90.cu
@@ -20,7 +20,7 @@
 #include <cuda_fp16.h>
 #include <float.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/ndarray.h>
 #include <tvm/runtime/packed_func.h>
 
diff --git a/src/runtime/contrib/cutlass/fp8_groupwise_scaled_group_gemm_sm100.cu b/src/runtime/contrib/cutlass/fp8_groupwise_scaled_group_gemm_sm100.cu
index c1371ee90e..5b467c9bd5 100644
--- a/src/runtime/contrib/cutlass/fp8_groupwise_scaled_group_gemm_sm100.cu
+++ b/src/runtime/contrib/cutlass/fp8_groupwise_scaled_group_gemm_sm100.cu
@@ -20,7 +20,7 @@
 #include <cuda_fp16.h>
 #include <float.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/ndarray.h>
 #include <tvm/runtime/packed_func.h>
 
diff --git a/src/runtime/contrib/cutlass/weight_preprocess.cc b/src/runtime/contrib/cutlass/weight_preprocess.cc
index 642b5d01f8..c403039c58 100644
--- a/src/runtime/contrib/cutlass/weight_preprocess.cc
+++ b/src/runtime/contrib/cutlass/weight_preprocess.cc
@@ -18,7 +18,7 @@
  */
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/ndarray.h>
 
 #include "cutlass_kernels/cutlass_preprocessors.h"
diff --git a/src/runtime/contrib/dnnl/dnnl.cc b/src/runtime/contrib/dnnl/dnnl.cc
index 1b45d4ddd9..3ae84a782e 100644
--- a/src/runtime/contrib/dnnl/dnnl.cc
+++ b/src/runtime/contrib/dnnl/dnnl.cc
@@ -25,7 +25,7 @@
 #include <assert.h>
 #include <stdlib.h>
 #include <string.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <algorithm>
 #include <iostream>
diff --git a/src/runtime/contrib/dnnl/dnnl_json_runtime.cc b/src/runtime/contrib/dnnl/dnnl_json_runtime.cc
index 41309612d9..138f41cb77 100644
--- a/src/runtime/contrib/dnnl/dnnl_json_runtime.cc
+++ b/src/runtime/contrib/dnnl/dnnl_json_runtime.cc
@@ -23,7 +23,7 @@
  */
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/ndarray.h>
 
 #include <cstddef>
diff --git a/src/runtime/contrib/edgetpu/edgetpu_runtime.cc b/src/runtime/contrib/edgetpu/edgetpu_runtime.cc
index 827997ae38..515eac9489 100644
--- a/src/runtime/contrib/edgetpu/edgetpu_runtime.cc
+++ b/src/runtime/contrib/edgetpu/edgetpu_runtime.cc
@@ -27,7 +27,7 @@
 #include <tensorflow/lite/kernels/register.h>
 #include <tensorflow/lite/model.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 namespace tvm {
 namespace runtime {
diff --git a/src/runtime/contrib/hipblas/hipblas.cc b/src/runtime/contrib/hipblas/hipblas.cc
index 81d44a4412..4e7a5c5d10 100644
--- a/src/runtime/contrib/hipblas/hipblas.cc
+++ b/src/runtime/contrib/hipblas/hipblas.cc
@@ -21,7 +21,7 @@
  * \file Use external hipblas library call.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/data_type.h>
 #include <tvm/runtime/logging.h>
 
diff --git a/src/runtime/contrib/hipblas/hipblas_json_runtime.cc b/src/runtime/contrib/hipblas/hipblas_json_runtime.cc
index b9e7d1a392..fbac6f12fe 100644
--- a/src/runtime/contrib/hipblas/hipblas_json_runtime.cc
+++ b/src/runtime/contrib/hipblas/hipblas_json_runtime.cc
@@ -23,7 +23,7 @@
  */
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/ndarray.h>
 
 #include <cstddef>
diff --git a/src/runtime/contrib/miopen/conv_forward.cc b/src/runtime/contrib/miopen/conv_forward.cc
index 39f52f8263..53eba8e9c4 100644
--- a/src/runtime/contrib/miopen/conv_forward.cc
+++ b/src/runtime/contrib/miopen/conv_forward.cc
@@ -21,7 +21,7 @@
  * \file Use external miopen utils function
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/data_type.h>
 #include <tvm/runtime/device_api.h>
 
diff --git a/src/runtime/contrib/miopen/softmax.cc b/src/runtime/contrib/miopen/softmax.cc
index def72c8658..dfcde9e879 100644
--- a/src/runtime/contrib/miopen/softmax.cc
+++ b/src/runtime/contrib/miopen/softmax.cc
@@ -22,7 +22,7 @@
  * \brief Use external miopen softmax function
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/data_type.h>
 
 #include "miopen_utils.h"
diff --git a/src/runtime/contrib/mps/conv.mm b/src/runtime/contrib/mps/conv.mm
index d7a7ae21b4..dfc98388d3 100644
--- a/src/runtime/contrib/mps/conv.mm
+++ b/src/runtime/contrib/mps/conv.mm
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include "mps_utils.h"
 
 namespace tvm {
diff --git a/src/runtime/contrib/mps/gemm.mm b/src/runtime/contrib/mps/gemm.mm
index a449316834..9f5270f38f 100644
--- a/src/runtime/contrib/mps/gemm.mm
+++ b/src/runtime/contrib/mps/gemm.mm
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include "mps_utils.h"
 
 namespace tvm {
diff --git a/src/runtime/contrib/mrvl/mrvl_hw_runtime.cc b/src/runtime/contrib/mrvl/mrvl_hw_runtime.cc
index 4fd1636f6f..d531963ec8 100644
--- a/src/runtime/contrib/mrvl/mrvl_hw_runtime.cc
+++ b/src/runtime/contrib/mrvl/mrvl_hw_runtime.cc
@@ -24,7 +24,7 @@
 
 #include <dlfcn.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/module.h>
 #include <tvm/runtime/ndarray.h>
 
diff --git a/src/runtime/contrib/mrvl/mrvl_runtime.cc b/src/runtime/contrib/mrvl/mrvl_runtime.cc
index ee1f953974..b9f9bc960c 100644
--- a/src/runtime/contrib/mrvl/mrvl_runtime.cc
+++ b/src/runtime/contrib/mrvl/mrvl_runtime.cc
@@ -25,7 +25,7 @@
 #include <assert.h>
 #include <ctype.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/module.h>
 #include <tvm/runtime/ndarray.h>
 
diff --git a/src/runtime/contrib/msc/tensorrt_runtime.cc b/src/runtime/contrib/msc/tensorrt_runtime.cc
index 99efa20850..fd65175d6f 100644
--- a/src/runtime/contrib/msc/tensorrt_runtime.cc
+++ b/src/runtime/contrib/msc/tensorrt_runtime.cc
@@ -24,7 +24,7 @@
 
 #include <dmlc/parameter.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/ndarray.h>
 
 #include <fstream>
diff --git a/src/runtime/contrib/nnapi/nnapi_runtime.cc b/src/runtime/contrib/nnapi/nnapi_runtime.cc
index 83faf354b4..52b4a47118 100644
--- a/src/runtime/contrib/nnapi/nnapi_runtime.cc
+++ b/src/runtime/contrib/nnapi/nnapi_runtime.cc
@@ -19,7 +19,7 @@
 
 #include <dlpack/dlpack.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/ndarray.h>
 
 #include <algorithm>
diff --git a/src/runtime/contrib/nvshmem/init.cc b/src/runtime/contrib/nvshmem/init.cc
index 494b4d5e4d..1b0a65f4f1 100644
--- a/src/runtime/contrib/nvshmem/init.cc
+++ b/src/runtime/contrib/nvshmem/init.cc
@@ -20,7 +20,7 @@
 #include <nvshmemx.h>
 #include <picojson.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/disco/disco_worker.h>
 
 #include "../../cuda/cuda_common.h"
diff --git a/src/runtime/contrib/nvshmem/kv_transfer.cu b/src/runtime/contrib/nvshmem/kv_transfer.cu
index 59bd26b5da..e225b1a346 100644
--- a/src/runtime/contrib/nvshmem/kv_transfer.cu
+++ b/src/runtime/contrib/nvshmem/kv_transfer.cu
@@ -20,7 +20,7 @@
 #include <dlpack/dlpack.h>
 #include <nvshmem.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/disco/disco_worker.h>
 #include <tvm/runtime/logging.h>
 
diff --git a/src/runtime/contrib/nvshmem/memory_allocator.cc b/src/runtime/contrib/nvshmem/memory_allocator.cc
index f651c67aaa..6ac7aa04f7 100644
--- a/src/runtime/contrib/nvshmem/memory_allocator.cc
+++ b/src/runtime/contrib/nvshmem/memory_allocator.cc
@@ -19,7 +19,7 @@
 #include <nvshmem.h>
 #include <nvshmemx.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/memory/memory_manager.h>
 
 #include <thread>
diff --git a/src/runtime/contrib/papi/papi.cc b/src/runtime/contrib/papi/papi.cc
index 670bf9a276..88d73388b4 100644
--- a/src/runtime/contrib/papi/papi.cc
+++ b/src/runtime/contrib/papi/papi.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 #include <papi.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/contrib/papi.h>
 
 #include <string>
diff --git a/src/runtime/contrib/random/random.cc b/src/runtime/contrib/random/random.cc
index 9c1ba3e327..580ed1073a 100644
--- a/src/runtime/contrib/random/random.cc
+++ b/src/runtime/contrib/random/random.cc
@@ -22,7 +22,7 @@
  */
 #include <dmlc/thread_local.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/data_type.h>
 #include <tvm/runtime/logging.h>
 #include <tvm/runtime/threading_backend.h>
diff --git a/src/runtime/contrib/rocblas/rocblas.cc b/src/runtime/contrib/rocblas/rocblas.cc
index 42fe8425d1..8fdce7e43b 100644
--- a/src/runtime/contrib/rocblas/rocblas.cc
+++ b/src/runtime/contrib/rocblas/rocblas.cc
@@ -24,7 +24,7 @@
 
 #include <dmlc/thread_local.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/data_type.h>
 #include <tvm/runtime/logging.h>
 
diff --git a/src/runtime/contrib/sort/sort.cc b/src/runtime/contrib/sort/sort.cc
index 54b17b9b0e..de67555b0a 100644
--- a/src/runtime/contrib/sort/sort.cc
+++ b/src/runtime/contrib/sort/sort.cc
@@ -23,7 +23,7 @@
 
 #include <dlpack/dlpack.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/data_type.h>
 #include <tvm/runtime/logging.h>
 
diff --git a/src/runtime/contrib/tensorrt/tensorrt_runtime.cc b/src/runtime/contrib/tensorrt/tensorrt_runtime.cc
index 07ce7a016c..ba9725d9bb 100644
--- a/src/runtime/contrib/tensorrt/tensorrt_runtime.cc
+++ b/src/runtime/contrib/tensorrt/tensorrt_runtime.cc
@@ -24,7 +24,7 @@
 
 #include <dmlc/parameter.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/ndarray.h>
 
 #include <fstream>
diff --git a/src/runtime/contrib/tflite/tflite_runtime.cc b/src/runtime/contrib/tflite/tflite_runtime.cc
index 8df356b047..0fa3bc2fe6 100644
--- a/src/runtime/contrib/tflite/tflite_runtime.cc
+++ b/src/runtime/contrib/tflite/tflite_runtime.cc
@@ -26,7 +26,7 @@
 #include <tensorflow/lite/kernels/register.h>
 #include <tensorflow/lite/model.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 namespace tvm {
 namespace runtime {
diff --git a/src/runtime/contrib/thrust/thrust.cu b/src/runtime/contrib/thrust/thrust.cu
index 94651c37f1..45c1bcc7cf 100644
--- a/src/runtime/contrib/thrust/thrust.cu
+++ b/src/runtime/contrib/thrust/thrust.cu
@@ -33,7 +33,7 @@
 #include <thrust/sort.h>
 #include <tvm/ffi/dtype.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <algorithm>
 #include <functional>
diff --git a/src/runtime/contrib/vllm/attention_kernels.cu b/src/runtime/contrib/vllm/attention_kernels.cu
index 5e0fe5f24e..e5e45735fb 100644
--- a/src/runtime/contrib/vllm/attention_kernels.cu
+++ b/src/runtime/contrib/vllm/attention_kernels.cu
@@ -19,7 +19,7 @@
 
 #include <float.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/ndarray.h>
 
 #include <algorithm>
diff --git a/src/runtime/contrib/vllm/cache_alloc.cc b/src/runtime/contrib/vllm/cache_alloc.cc
index 042224d548..d616923ad7 100644
--- a/src/runtime/contrib/vllm/cache_alloc.cc
+++ b/src/runtime/contrib/vllm/cache_alloc.cc
@@ -18,7 +18,7 @@
  */
 #include <cuda_runtime.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/ndarray.h>
 
 namespace tvm {
diff --git a/src/runtime/contrib/vllm/cache_kernels.cu b/src/runtime/contrib/vllm/cache_kernels.cu
index 13f21971e8..c7f91aa42f 100644
--- a/src/runtime/contrib/vllm/cache_kernels.cu
+++ b/src/runtime/contrib/vllm/cache_kernels.cu
@@ -17,7 +17,7 @@
  * under the License.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/ndarray.h>
 
 #include <algorithm>
diff --git a/src/runtime/cpu_device_api.cc b/src/runtime/cpu_device_api.cc
index 7f92ac9fa8..e9b16d003e 100644
--- a/src/runtime/cpu_device_api.cc
+++ b/src/runtime/cpu_device_api.cc
@@ -22,7 +22,7 @@
  */
 #include <dmlc/thread_local.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/device_api.h>
 #include <tvm/runtime/logging.h>
 
diff --git a/src/runtime/cuda/cuda_device_api.cc b/src/runtime/cuda/cuda_device_api.cc
index b7fc28e5fe..222b58c3fe 100644
--- a/src/runtime/cuda/cuda_device_api.cc
+++ b/src/runtime/cuda/cuda_device_api.cc
@@ -25,7 +25,7 @@
 #include <cuda_runtime.h>
 #include <dmlc/thread_local.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/device_api.h>
 #include <tvm/runtime/profiling.h>
 
diff --git a/src/runtime/cuda/cuda_module.cc b/src/runtime/cuda/cuda_module.cc
index c2f6adf1a4..2435cccf0a 100644
--- a/src/runtime/cuda/cuda_module.cc
+++ b/src/runtime/cuda/cuda_module.cc
@@ -25,7 +25,7 @@
 #include <cuda.h>
 #include <cuda_runtime.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <array>
 #include <mutex>
diff --git a/src/runtime/cuda/l2_cache_flush.cc b/src/runtime/cuda/l2_cache_flush.cc
index 67ed6884e1..9427a6a3ee 100644
--- a/src/runtime/cuda/l2_cache_flush.cc
+++ b/src/runtime/cuda/l2_cache_flush.cc
@@ -20,7 +20,7 @@
 
 #include <dmlc/thread_local.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/device_api.h>
 
 #include "cuda_common.h"
diff --git a/src/runtime/device_api.cc b/src/runtime/device_api.cc
index 635b882752..3eb817fd0f 100644
--- a/src/runtime/device_api.cc
+++ b/src/runtime/device_api.cc
@@ -24,7 +24,7 @@
 #include <tvm/ffi/container/ndarray.h>
 #include <tvm/ffi/function.h>
 #include <tvm/ffi/optional.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/rvalue_ref.h>
 #include <tvm/ffi/string.h>
 #include <tvm/runtime/base.h>
diff --git a/src/runtime/disco/builtin.cc b/src/runtime/disco/builtin.cc
index 7672fee255..126a593e51 100644
--- a/src/runtime/disco/builtin.cc
+++ b/src/runtime/disco/builtin.cc
@@ -19,7 +19,7 @@
 #include <dlpack/dlpack.h>
 #include <tvm/ffi/container/shape.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/disco/builtin.h>
 #include <tvm/runtime/disco/disco_worker.h>
 #include <tvm/runtime/disco/session.h>
diff --git a/src/runtime/disco/cuda_ipc/cuda_ipc_memory.cc b/src/runtime/disco/cuda_ipc/cuda_ipc_memory.cc
index df6a6ccf01..03aa0ce872 100644
--- a/src/runtime/disco/cuda_ipc/cuda_ipc_memory.cc
+++ b/src/runtime/disco/cuda_ipc/cuda_ipc_memory.cc
@@ -19,7 +19,7 @@
 
 #include <cuda_runtime.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/disco/cuda_ipc_memory.h>
 #include <tvm/runtime/memory/memory_manager.h>
 
diff --git a/src/runtime/disco/cuda_ipc/custom_allreduce.cc b/src/runtime/disco/cuda_ipc/custom_allreduce.cc
index ea3b308dbf..f1293d4a46 100644
--- a/src/runtime/disco/cuda_ipc/custom_allreduce.cc
+++ b/src/runtime/disco/cuda_ipc/custom_allreduce.cc
@@ -19,7 +19,7 @@
 
 #include <cuda_runtime.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/disco/cuda_ipc_memory.h>
 #include <tvm/runtime/memory/memory_manager.h>
 
diff --git a/src/runtime/disco/distributed/socket_session.cc b/src/runtime/disco/distributed/socket_session.cc
index 1d88e9aa46..4132f582ad 100644
--- a/src/runtime/disco/distributed/socket_session.cc
+++ b/src/runtime/disco/distributed/socket_session.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <numeric>
 
diff --git a/src/runtime/disco/loader.cc b/src/runtime/disco/loader.cc
index f5fbbd71e7..1f248cb0d3 100644
--- a/src/runtime/disco/loader.cc
+++ b/src/runtime/disco/loader.cc
@@ -22,7 +22,7 @@
 #endif
 #include <picojson.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/data_type.h>
 #include <tvm/runtime/disco/builtin.h>
 #include <tvm/runtime/vm/ndarray_cache_support.h>
diff --git a/src/runtime/disco/nccl/nccl.cc b/src/runtime/disco/nccl/nccl.cc
index bd41320175..f3f79c9ccc 100644
--- a/src/runtime/disco/nccl/nccl.cc
+++ b/src/runtime/disco/nccl/nccl.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <cstring>
 #include <mutex>
diff --git a/src/runtime/disco/process_session.cc b/src/runtime/disco/process_session.cc
index fc8dcdfbdb..6aaaa68ff6 100644
--- a/src/runtime/disco/process_session.cc
+++ b/src/runtime/disco/process_session.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/base.h>
 #include <tvm/runtime/disco/disco_worker.h>
 #include <tvm/runtime/object.h>
diff --git a/src/runtime/disco/session.cc b/src/runtime/disco/session.cc
index 8f9a9fe0a4..6ac5dd3349 100644
--- a/src/runtime/disco/session.cc
+++ b/src/runtime/disco/session.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/disco/disco_worker.h>
 #include <tvm/runtime/disco/session.h>
 
diff --git a/src/runtime/dso_library.cc b/src/runtime/dso_library.cc
index e5c7aa7de1..0d74fc87a0 100644
--- a/src/runtime/dso_library.cc
+++ b/src/runtime/dso_library.cc
@@ -23,7 +23,7 @@
  */
 #include <tvm/ffi/function.h>
 #include <tvm/ffi/memory.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/module.h>
 
 #include "library_module.h"
diff --git a/src/runtime/file_utils.cc b/src/runtime/file_utils.cc
index 56a12968bb..4564d72e5e 100644
--- a/src/runtime/file_utils.cc
+++ b/src/runtime/file_utils.cc
@@ -25,7 +25,7 @@
 #include <dmlc/json.h>
 #include <dmlc/memory_io.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/logging.h>
 #include <tvm/runtime/serializer.h>
 
diff --git a/src/runtime/hexagon/hexagon_common.cc b/src/runtime/hexagon/hexagon_common.cc
index 5437956424..b068c8f1b3 100644
--- a/src/runtime/hexagon/hexagon_common.cc
+++ b/src/runtime/hexagon/hexagon_common.cc
@@ -23,7 +23,7 @@
 #include "hexagon_common.h"
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/logging.h>
 #include <tvm/runtime/profiling.h>
 
diff --git a/src/runtime/hexagon/hexagon_device_api.cc b/src/runtime/hexagon/hexagon_device_api.cc
index 2b77886608..fd8d6e53bf 100644
--- a/src/runtime/hexagon/hexagon_device_api.cc
+++ b/src/runtime/hexagon/hexagon_device_api.cc
@@ -25,7 +25,7 @@
 
 #include <dmlc/thread_local.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/logging.h>
 #include <tvm/runtime/ndarray.h>
 
diff --git a/src/runtime/hexagon/rpc/android/session.cc b/src/runtime/hexagon/rpc/android/session.cc
index 1318c27157..31fed010a3 100644
--- a/src/runtime/hexagon/rpc/android/session.cc
+++ b/src/runtime/hexagon/rpc/android/session.cc
@@ -22,7 +22,7 @@
  */
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 extern "C" {
 #include <AEEStdDef.h>
diff --git a/src/runtime/hexagon/rpc/hexagon/rpc_server.cc b/src/runtime/hexagon/rpc/hexagon/rpc_server.cc
index 8a5ea01be5..fd5fc9ee2b 100644
--- a/src/runtime/hexagon/rpc/hexagon/rpc_server.cc
+++ b/src/runtime/hexagon/rpc/hexagon/rpc_server.cc
@@ -28,7 +28,7 @@ extern "C" {
 #include <dlfcn.h>
 #include <stdlib.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/object.h>
 
 #include <algorithm>
diff --git a/src/runtime/hexagon/rpc/simulator/rpc_server.cc b/src/runtime/hexagon/rpc/simulator/rpc_server.cc
index b9a0504e98..448cd0db94 100644
--- a/src/runtime/hexagon/rpc/simulator/rpc_server.cc
+++ b/src/runtime/hexagon/rpc/simulator/rpc_server.cc
@@ -19,7 +19,7 @@
 
 #include <HAP_farf.h>
 #include <dlfcn.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <algorithm>
 #include <cassert>
diff --git a/src/runtime/hexagon/rpc/simulator/session.cc b/src/runtime/hexagon/rpc/simulator/session.cc
index 96a554e221..687ff6e79a 100644
--- a/src/runtime/hexagon/rpc/simulator/session.cc
+++ b/src/runtime/hexagon/rpc/simulator/session.cc
@@ -19,7 +19,7 @@
 
 #include <HexagonWrapper.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 // POSIX includes
 #include <dirent.h>
 #include <unistd.h>
diff --git a/src/runtime/memory/memory_manager.cc b/src/runtime/memory/memory_manager.cc
index c817d66f69..7634100809 100644
--- a/src/runtime/memory/memory_manager.cc
+++ b/src/runtime/memory/memory_manager.cc
@@ -22,7 +22,7 @@
  * \brief Allocate and manage memory for the runtime.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/memory/memory_manager.h>
 
 #include <memory>
diff --git a/src/runtime/metal/metal_device_api.mm b/src/runtime/metal/metal_device_api.mm
index 46c5fb9f29..04659e7586 100644
--- a/src/runtime/metal/metal_device_api.mm
+++ b/src/runtime/metal/metal_device_api.mm
@@ -22,7 +22,7 @@
  */
 #include <dmlc/thread_local.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/profiling.h>
 #include "metal_common.h"
 
diff --git a/src/runtime/metal/metal_module.mm b/src/runtime/metal/metal_module.mm
index f8b2aca1d1..be36e6197f 100644
--- a/src/runtime/metal/metal_module.mm
+++ b/src/runtime/metal/metal_module.mm
@@ -23,7 +23,7 @@
 #include "metal_module.h"
 #include <dmlc/memory_io.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/module.h>
 #include <array>
 #include <mutex>
diff --git a/src/runtime/module.cc b/src/runtime/module.cc
index d71b2c217f..cf19ff147f 100644
--- a/src/runtime/module.cc
+++ b/src/runtime/module.cc
@@ -22,7 +22,7 @@
  * \brief TVM module system
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/module.h>
 
 #include <cstring>
diff --git a/src/runtime/ndarray.cc b/src/runtime/ndarray.cc
index 8261359e8b..115d55c8f4 100644
--- a/src/runtime/ndarray.cc
+++ b/src/runtime/ndarray.cc
@@ -22,7 +22,7 @@
  * \brief NDArray container infratructure.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/base.h>
 #include <tvm/runtime/device_api.h>
 #include <tvm/runtime/logging.h>
diff --git a/src/runtime/opencl/opencl_device_api.cc b/src/runtime/opencl/opencl_device_api.cc
index 1999625a3a..15616f1267 100644
--- a/src/runtime/opencl/opencl_device_api.cc
+++ b/src/runtime/opencl/opencl_device_api.cc
@@ -23,7 +23,7 @@
 #include <dmlc/parameter.h>
 #include <dmlc/thread_local.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/profiling.h>
 
 #include <sstream>
diff --git a/src/runtime/opencl/opencl_module.cc b/src/runtime/opencl/opencl_module.cc
index a19a4e26cf..19b426d4b4 100644
--- a/src/runtime/opencl/opencl_module.cc
+++ b/src/runtime/opencl/opencl_module.cc
@@ -24,7 +24,7 @@
 
 #include <dmlc/memory_io.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <string>
 #include <unordered_map>
diff --git a/src/runtime/profiling.cc b/src/runtime/profiling.cc
index a62b1adf6f..390f383c00 100644
--- a/src/runtime/profiling.cc
+++ b/src/runtime/profiling.cc
@@ -24,7 +24,7 @@
 
 #include <dmlc/json.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/c_backend_api.h>
 #include <tvm/runtime/data_type.h>
 #include <tvm/runtime/profiling.h>
diff --git a/src/runtime/rocm/rocm_device_api.cc b/src/runtime/rocm/rocm_device_api.cc
index f347cb562c..66fd0b8ada 100644
--- a/src/runtime/rocm/rocm_device_api.cc
+++ b/src/runtime/rocm/rocm_device_api.cc
@@ -25,7 +25,7 @@
 #include <hip/hip_runtime_api.h>
 #include <hsa/hsa.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/device_api.h>
 #include <tvm/runtime/logging.h>
 #include <tvm/runtime/profiling.h>
diff --git a/src/runtime/rocm/rocm_module.cc b/src/runtime/rocm/rocm_module.cc
index 462f3b543e..791e4b1569 100644
--- a/src/runtime/rocm/rocm_module.cc
+++ b/src/runtime/rocm/rocm_module.cc
@@ -24,7 +24,7 @@
 
 #include <hip/hip_runtime_api.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <array>
 #include <mutex>
diff --git a/src/runtime/rpc/rpc_device_api.cc b/src/runtime/rpc/rpc_device_api.cc
index fba34eee5c..a02acd9611 100644
--- a/src/runtime/rpc/rpc_device_api.cc
+++ b/src/runtime/rpc/rpc_device_api.cc
@@ -21,7 +21,7 @@
  * \file rpc_device_api.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/device_api.h>
 #include <tvm/runtime/logging.h>
 
diff --git a/src/runtime/rpc/rpc_event_impl.cc b/src/runtime/rpc/rpc_event_impl.cc
index e893b975a0..abf635020a 100644
--- a/src/runtime/rpc/rpc_event_impl.cc
+++ b/src/runtime/rpc/rpc_event_impl.cc
@@ -22,7 +22,7 @@
  * \brief Event driven RPC server implementation.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <memory>
 
diff --git a/src/runtime/rpc/rpc_local_session.cc b/src/runtime/rpc/rpc_local_session.cc
index b858c1832c..3fcd38dfec 100644
--- a/src/runtime/rpc/rpc_local_session.cc
+++ b/src/runtime/rpc/rpc_local_session.cc
@@ -24,7 +24,7 @@
 #include "rpc_local_session.h"
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/device_api.h>
 #include <tvm/runtime/ndarray.h>
 
diff --git a/src/runtime/rpc/rpc_module.cc b/src/runtime/rpc/rpc_module.cc
index 9ef5abaf56..42643de2d1 100644
--- a/src/runtime/rpc/rpc_module.cc
+++ b/src/runtime/rpc/rpc_module.cc
@@ -22,7 +22,7 @@
  * \brief RPC runtime module.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/string.h>
 #include <tvm/runtime/device_api.h>
 #include <tvm/runtime/profiling.h>
diff --git a/src/runtime/rpc/rpc_pipe_impl.cc b/src/runtime/rpc/rpc_pipe_impl.cc
index 970f077444..e50c6a456e 100644
--- a/src/runtime/rpc/rpc_pipe_impl.cc
+++ b/src/runtime/rpc/rpc_pipe_impl.cc
@@ -28,7 +28,7 @@
 #include <signal.h>
 #include <sys/types.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <unistd.h>
 
 #include <cstdlib>
diff --git a/src/runtime/rpc/rpc_server_env.cc b/src/runtime/rpc/rpc_server_env.cc
index 64f49530db..52d04a7263 100644
--- a/src/runtime/rpc/rpc_server_env.cc
+++ b/src/runtime/rpc/rpc_server_env.cc
@@ -22,7 +22,7 @@
  * \brief Server environment of the RPC.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../file_utils.h"
 
diff --git a/src/runtime/rpc/rpc_socket_impl.cc b/src/runtime/rpc/rpc_socket_impl.cc
index 7bfd0ef54a..5ed34051cf 100644
--- a/src/runtime/rpc/rpc_socket_impl.cc
+++ b/src/runtime/rpc/rpc_socket_impl.cc
@@ -22,7 +22,7 @@
  * \brief Socket based RPC implementation.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <memory>
 
diff --git a/src/runtime/static_library.cc b/src/runtime/static_library.cc
index dc63251fdf..5ad331d27d 100644
--- a/src/runtime/static_library.cc
+++ b/src/runtime/static_library.cc
@@ -26,7 +26,7 @@
 
 #include <tvm/ffi/function.h>
 #include <tvm/ffi/memory.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/module.h>
 
 #include <iostream>
diff --git a/src/runtime/system_library.cc b/src/runtime/system_library.cc
index ab714b6363..65df96f963 100644
--- a/src/runtime/system_library.cc
+++ b/src/runtime/system_library.cc
@@ -23,7 +23,7 @@
  */
 #include <tvm/ffi/function.h>
 #include <tvm/ffi/memory.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/c_backend_api.h>
 
 #include <mutex>
diff --git a/src/runtime/thread_pool.cc b/src/runtime/thread_pool.cc
index a0f64fdf1c..deaeec6ad3 100644
--- a/src/runtime/thread_pool.cc
+++ b/src/runtime/thread_pool.cc
@@ -24,7 +24,7 @@
 #include <dmlc/thread_local.h>
 #include <tvm/ffi/container/array.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/base.h>
 #include <tvm/runtime/c_backend_api.h>
 #include <tvm/runtime/logging.h>
diff --git a/src/runtime/threading_backend.cc b/src/runtime/threading_backend.cc
index 71341721e6..cb56ed1812 100644
--- a/src/runtime/threading_backend.cc
+++ b/src/runtime/threading_backend.cc
@@ -23,7 +23,7 @@
  */
 #include <tvm/ffi/container/shape.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/logging.h>
 #include <tvm/runtime/threading_backend.h>
 
diff --git a/src/runtime/vm/builtin.cc b/src/runtime/vm/builtin.cc
index 1eb52d7337..90e3b4c549 100644
--- a/src/runtime/vm/builtin.cc
+++ b/src/runtime/vm/builtin.cc
@@ -24,7 +24,7 @@
 #include <tvm/ffi/container/shape.h>
 #include <tvm/ffi/function.h>
 #include <tvm/ffi/memory.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/data_type.h>
 #include <tvm/runtime/device_api.h>
 #include <tvm/runtime/logging.h>
diff --git a/src/runtime/vm/cuda/cuda_graph_builtin.cc b/src/runtime/vm/cuda/cuda_graph_builtin.cc
index 88ac79d67c..8844517973 100644
--- a/src/runtime/vm/cuda/cuda_graph_builtin.cc
+++ b/src/runtime/vm/cuda/cuda_graph_builtin.cc
@@ -24,7 +24,7 @@
 
 #include <tvm/ffi/container/array.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/vm/vm.h>
 
 #include "../../../support/utils.h"
diff --git a/src/runtime/vm/executable.cc b/src/runtime/vm/executable.cc
index 77bda63f8d..1bec6f5016 100644
--- a/src/runtime/vm/executable.cc
+++ b/src/runtime/vm/executable.cc
@@ -22,7 +22,7 @@
  */
 
 #include <dmlc/memory_io.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/logging.h>
 #include <tvm/runtime/vm/executable.h>
 #include <tvm/runtime/vm/vm.h>
diff --git a/src/runtime/vm/hexagon/builtin.cc b/src/runtime/vm/hexagon/builtin.cc
index 79909199e6..be5c7f5fd6 100644
--- a/src/runtime/vm/hexagon/builtin.cc
+++ b/src/runtime/vm/hexagon/builtin.cc
@@ -23,7 +23,7 @@
  */
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/device_api.h>
 #include <tvm/runtime/vm/vm.h>
 
diff --git a/src/runtime/vm/kv_state.cc b/src/runtime/vm/kv_state.cc
index 7ca88f4ab8..c80e3f3a6e 100644
--- a/src/runtime/vm/kv_state.cc
+++ b/src/runtime/vm/kv_state.cc
@@ -19,7 +19,7 @@
 
 #include "kv_state.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <utility>
 
diff --git a/src/runtime/vm/lm_support.cc b/src/runtime/vm/lm_support.cc
index d510bed0c1..4abfd15805 100644
--- a/src/runtime/vm/lm_support.cc
+++ b/src/runtime/vm/lm_support.cc
@@ -38,7 +38,7 @@
 #include <tvm/ffi/container/array.h>
 #include <tvm/ffi/container/shape.h>
 #include <tvm/ffi/memory.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/device_api.h>
 #include <tvm/runtime/logging.h>
 #include <tvm/runtime/memory/memory_manager.h>
diff --git a/src/runtime/vm/ndarray_cache_support.cc b/src/runtime/vm/ndarray_cache_support.cc
index 279091dec5..d91669016d 100644
--- a/src/runtime/vm/ndarray_cache_support.cc
+++ b/src/runtime/vm/ndarray_cache_support.cc
@@ -40,7 +40,7 @@
 #endif
 #include <picojson.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/ndarray.h>
 #include <tvm/runtime/vm/ndarray_cache_support.h>
 
diff --git a/src/runtime/vm/paged_kv_cache.cc b/src/runtime/vm/paged_kv_cache.cc
index a0bc2cb1a7..4ce854df59 100644
--- a/src/runtime/vm/paged_kv_cache.cc
+++ b/src/runtime/vm/paged_kv_cache.cc
@@ -21,7 +21,7 @@
  * \brief Runtime paged KV cache object for language models.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/device_api.h>
 #include <tvm/runtime/disco/disco_worker.h>
 #include <tvm/runtime/logging.h>
diff --git a/src/runtime/vm/rnn_state.cc b/src/runtime/vm/rnn_state.cc
index 40d0f63184..1e224e510b 100644
--- a/src/runtime/vm/rnn_state.cc
+++ b/src/runtime/vm/rnn_state.cc
@@ -21,7 +21,7 @@
  * \brief Runtime RNN state object for space state models.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <cstdint>
 #include <vector>
diff --git a/src/runtime/vulkan/vulkan_device_api.cc b/src/runtime/vulkan/vulkan_device_api.cc
index 322a7f467f..09c3d522b0 100644
--- a/src/runtime/vulkan/vulkan_device_api.cc
+++ b/src/runtime/vulkan/vulkan_device_api.cc
@@ -19,7 +19,7 @@
 
 #include "vulkan_device_api.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <algorithm>
 #include <memory>
diff --git a/src/runtime/vulkan/vulkan_module.cc b/src/runtime/vulkan/vulkan_module.cc
index 55982a3c05..81136c28cd 100644
--- a/src/runtime/vulkan/vulkan_module.cc
+++ b/src/runtime/vulkan/vulkan_module.cc
@@ -21,7 +21,7 @@
 
 #include <dmlc/memory_io.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../file_utils.h"
 #include "vulkan_wrapped_func.h"
diff --git a/src/script/ir_builder/base.cc b/src/script/ir_builder/base.cc
index 8f69f33e6d..9fb88a02d6 100644
--- a/src/script/ir_builder/base.cc
+++ b/src/script/ir_builder/base.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/module.h>
 #include <tvm/script/ir_builder/base.h>
 
diff --git a/src/script/ir_builder/ir/ir.cc b/src/script/ir_builder/ir/ir.cc
index 30ee9e987f..26af0e55c7 100644
--- a/src/script/ir_builder/ir/ir.cc
+++ b/src/script/ir_builder/ir/ir.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/module.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/script/ir_builder/ir/ir.h>
diff --git a/src/script/ir_builder/relax/distributed.cc b/src/script/ir_builder/relax/distributed.cc
index dd8bb41e41..424d20980a 100644
--- a/src/script/ir_builder/relax/distributed.cc
+++ b/src/script/ir_builder/relax/distributed.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/attrs/op.h>
 #include <tvm/relax/distributed/struct_info.h>
diff --git a/src/script/ir_builder/relax/ir.cc b/src/script/ir_builder/relax/ir.cc
index 06751629e7..0bb73abf4f 100644
--- a/src/script/ir_builder/relax/ir.cc
+++ b/src/script/ir_builder/relax/ir.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/struct_info.h>
 #include <tvm/script/ir_builder/relax/ir.h>
diff --git a/src/script/ir_builder/tir/ir.cc b/src/script/ir_builder/tir/ir.cc
index 66852a20ad..998b468f4b 100644
--- a/src/script/ir_builder/tir/ir.cc
+++ b/src/script/ir_builder/tir/ir.cc
@@ -18,7 +18,7 @@
  */
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/container/variant.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/script/ir_builder/tir/ir.h>
 
 #include "./utils.h"
diff --git a/src/script/printer/doc.cc b/src/script/printer/doc.cc
index 16eb81d74e..5137266fa4 100644
--- a/src/script/printer/doc.cc
+++ b/src/script/printer/doc.cc
@@ -18,7 +18,7 @@
  */
 #include <tvm/ffi/container/array.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/logging.h>
 #include <tvm/script/printer/doc.h>
 
diff --git a/src/script/printer/doc_printer/python_doc_printer.cc b/src/script/printer/doc_printer/python_doc_printer.cc
index e4ca2ad510..a6b8a8db09 100644
--- a/src/script/printer/doc_printer/python_doc_printer.cc
+++ b/src/script/printer/doc_printer/python_doc_printer.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/logging.h>
 #include <tvm/script/printer/doc.h>
 
diff --git a/src/script/printer/ir/utils.h b/src/script/printer/ir/utils.h
index 1944732d34..d79e5cd456 100644
--- a/src/script/printer/ir/utils.h
+++ b/src/script/printer/ir/utils.h
@@ -19,7 +19,7 @@
 #ifndef TVM_SCRIPT_PRINTER_IR_UTILS_H_
 #define TVM_SCRIPT_PRINTER_IR_UTILS_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/expr.h>
 #include <tvm/ir/function.h>
 #include <tvm/ir/op.h>
diff --git a/src/script/printer/ir_docsifier.cc b/src/script/printer/ir_docsifier.cc
index a7530f4ba5..0925e80921 100644
--- a/src/script/printer/ir_docsifier.cc
+++ b/src/script/printer/ir_docsifier.cc
@@ -17,7 +17,8 @@
  * under the License.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/accessor.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/node/reflection.h>
 #include <tvm/runtime/logging.h>
 #include <tvm/script/printer/ir_docsifier.h>
diff --git a/src/script/printer/relax/call.cc b/src/script/printer/relax/call.cc
index f629ea52bf..0cba1dfcd4 100644
--- a/src/script/printer/relax/call.cc
+++ b/src/script/printer/relax/call.cc
@@ -16,7 +16,8 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/accessor.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/attrs/op.h>
 #include <tvm/relax/distributed/struct_info.h>
 
diff --git a/src/script/printer/relax/type.cc b/src/script/printer/relax/type.cc
index ea1ed7e698..de9ef1ae91 100644
--- a/src/script/printer/relax/type.cc
+++ b/src/script/printer/relax/type.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "./utils.h"
 
diff --git a/src/script/printer/relax/utils.h b/src/script/printer/relax/utils.h
index b9a0a849f9..022c6e9c66 100644
--- a/src/script/printer/relax/utils.h
+++ b/src/script/printer/relax/utils.h
@@ -19,7 +19,7 @@
 #ifndef TVM_SCRIPT_PRINTER_RELAX_UTILS_H_
 #define TVM_SCRIPT_PRINTER_RELAX_UTILS_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/analysis.h>
 #include <tvm/relax/op_attr_types.h>
 #include <tvm/relax/struct_info.h>
diff --git a/src/script/printer/tir/utils.h b/src/script/printer/tir/utils.h
index 105dc94d56..4114600f0c 100644
--- a/src/script/printer/tir/utils.h
+++ b/src/script/printer/tir/utils.h
@@ -19,7 +19,7 @@
 #ifndef TVM_SCRIPT_PRINTER_TIR_UTILS_H_
 #define TVM_SCRIPT_PRINTER_TIR_UTILS_H_
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/script/printer/ir_docsifier.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/buffer.h>
diff --git a/src/support/ffi_testing.cc b/src/support/ffi_testing.cc
index 7162bffc01..12b08b209b 100644
--- a/src/support/ffi_testing.cc
+++ b/src/support/ffi_testing.cc
@@ -23,7 +23,7 @@
  */
 #include <tvm/ffi/container/variant.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/attrs.h>
 #include <tvm/ir/env_func.h>
 #include <tvm/runtime/module.h>
diff --git a/src/support/libinfo.cc b/src/support/libinfo.cc
index 1f274ee894..c35ef14054 100644
--- a/src/support/libinfo.cc
+++ b/src/support/libinfo.cc
@@ -18,7 +18,7 @@
  */
 #include <tvm/ffi/container/map.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/string.h>
 #include <tvm/runtime/object.h>
 
diff --git a/src/target/codegen.cc b/src/target/codegen.cc
index d2d69abb78..9b650c9aaa 100644
--- a/src/target/codegen.cc
+++ b/src/target/codegen.cc
@@ -23,7 +23,7 @@
  */
 #include <dmlc/memory_io.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/module.h>
 #include <tvm/runtime/base.h>
 #include <tvm/runtime/module.h>
diff --git a/src/target/datatype/registry.cc b/src/target/datatype/registry.cc
index 8e1844fd51..4a0d577725 100644
--- a/src/target/datatype/registry.cc
+++ b/src/target/datatype/registry.cc
@@ -19,7 +19,7 @@
 #include "registry.h"
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/data_type.h>
 
 namespace tvm {
diff --git a/src/target/llvm/codegen_aarch64.cc b/src/target/llvm/codegen_aarch64.cc
index 4c7554cf00..7937f72bea 100644
--- a/src/target/llvm/codegen_aarch64.cc
+++ b/src/target/llvm/codegen_aarch64.cc
@@ -26,7 +26,7 @@
 #include <llvm/IR/Intrinsics.h>
 #include <llvm/Target/TargetMachine.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../../arith/scalable_expression.h"
 #include "codegen_cpu.h"
diff --git a/src/target/llvm/codegen_amdgpu.cc b/src/target/llvm/codegen_amdgpu.cc
index 7a50396081..ae859170d6 100644
--- a/src/target/llvm/codegen_amdgpu.cc
+++ b/src/target/llvm/codegen_amdgpu.cc
@@ -30,7 +30,7 @@
 #include <llvm/IR/GlobalValue.h>
 #include <llvm/IR/Instructions.h>
 #include <llvm/IR/Intrinsics.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #if TVM_LLVM_VERSION >= 100
 #include <llvm/IR/IntrinsicsAMDGPU.h>
 #endif
diff --git a/src/target/llvm/codegen_arm.cc b/src/target/llvm/codegen_arm.cc
index 93879bf1ec..4abe667107 100644
--- a/src/target/llvm/codegen_arm.cc
+++ b/src/target/llvm/codegen_arm.cc
@@ -25,7 +25,7 @@
 
 #include <llvm/IR/Intrinsics.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #if TVM_LLVM_VERSION >= 100
 #include <llvm/IR/IntrinsicsARM.h>
 #endif
diff --git a/src/target/llvm/codegen_cpu.cc b/src/target/llvm/codegen_cpu.cc
index 7f87b0c7fb..b04d71da31 100644
--- a/src/target/llvm/codegen_cpu.cc
+++ b/src/target/llvm/codegen_cpu.cc
@@ -43,7 +43,7 @@
 #include <llvm/IR/MDBuilder.h>
 #include <llvm/IR/Metadata.h>
 #include <llvm/IR/Module.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #if TVM_LLVM_VERSION >= 100
 #include <llvm/Support/Alignment.h>
 #endif
diff --git a/src/target/llvm/codegen_hexagon.cc b/src/target/llvm/codegen_hexagon.cc
index b4362bebac..f0f1797a6c 100644
--- a/src/target/llvm/codegen_hexagon.cc
+++ b/src/target/llvm/codegen_hexagon.cc
@@ -29,7 +29,7 @@
 #include <llvm/IR/GlobalVariable.h>
 #include <llvm/IR/Instructions.h>
 #include <llvm/IR/Intrinsics.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #if TVM_LLVM_VERSION >= 100
 #include <llvm/IR/IntrinsicsHexagon.h>
 #endif
diff --git a/src/target/llvm/codegen_llvm.cc b/src/target/llvm/codegen_llvm.cc
index 0200035355..21dd62efa9 100644
--- a/src/target/llvm/codegen_llvm.cc
+++ b/src/target/llvm/codegen_llvm.cc
@@ -27,7 +27,7 @@
 #include <llvm/ADT/ArrayRef.h>
 #include <llvm/ADT/SmallVector.h>
 #include <llvm/ADT/StringRef.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #if LLVM_VERSION_MAJOR >= 17
 #include <llvm/TargetParser/Triple.h>
 #else
diff --git a/src/target/llvm/codegen_nvptx.cc b/src/target/llvm/codegen_nvptx.cc
index f988457c12..ed636b82a2 100644
--- a/src/target/llvm/codegen_nvptx.cc
+++ b/src/target/llvm/codegen_nvptx.cc
@@ -30,7 +30,7 @@
 #include <llvm/IR/InlineAsm.h>
 #include <llvm/IR/Instructions.h>
 #include <llvm/IR/Intrinsics.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #if TVM_LLVM_VERSION >= 100
 #include <llvm/IR/IntrinsicsNVPTX.h>
 #endif
diff --git a/src/target/llvm/codegen_x86_64.cc b/src/target/llvm/codegen_x86_64.cc
index a8cb5b39c5..b4c7cf1901 100644
--- a/src/target/llvm/codegen_x86_64.cc
+++ b/src/target/llvm/codegen_x86_64.cc
@@ -26,7 +26,7 @@
 #include <llvm/IR/DerivedTypes.h>
 #include <llvm/IR/Function.h>
 #include <llvm/IR/Intrinsics.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #if TVM_LLVM_VERSION >= 100
 #include <llvm/IR/IntrinsicsX86.h>
 #endif
diff --git a/src/target/llvm/llvm_module.cc b/src/target/llvm/llvm_module.cc
index 42881016ba..b3e5249c02 100644
--- a/src/target/llvm/llvm_module.cc
+++ b/src/target/llvm/llvm_module.cc
@@ -31,7 +31,7 @@
 #include <llvm/ExecutionEngine/MCJIT.h>
 #include <llvm/ExecutionEngine/Orc/LLJIT.h>
 #include <llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #if _WIN32
 #include <llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h>
 #include <llvm/ExecutionEngine/SectionMemoryManager.h>
diff --git a/src/target/opt/build_cuda_on.cc b/src/target/opt/build_cuda_on.cc
index 9bdbca0a5c..da8896bf48 100644
--- a/src/target/opt/build_cuda_on.cc
+++ b/src/target/opt/build_cuda_on.cc
@@ -25,7 +25,7 @@
  */
 #if defined(__linux__)
 #include <sys/stat.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #endif
 #include <cuda_runtime.h>
 #include <nvrtc.h>
diff --git a/src/target/source/codegen_c_host.cc b/src/target/source/codegen_c_host.cc
index 46cca620c7..2333534122 100644
--- a/src/target/source/codegen_c_host.cc
+++ b/src/target/source/codegen_c_host.cc
@@ -22,7 +22,7 @@
  */
 #include "codegen_c_host.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/module.h>
 #include <tvm/target/codegen.h>
 
diff --git a/src/target/source/codegen_metal.cc b/src/target/source/codegen_metal.cc
index 6704180de1..962bd777f1 100644
--- a/src/target/source/codegen_metal.cc
+++ b/src/target/source/codegen_metal.cc
@@ -22,7 +22,7 @@
  */
 #include "codegen_metal.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/transform.h>
 
 #include <algorithm>
diff --git a/src/target/source/codegen_opencl.cc b/src/target/source/codegen_opencl.cc
index 8ba0dad6e4..2645423aff 100644
--- a/src/target/source/codegen_opencl.cc
+++ b/src/target/source/codegen_opencl.cc
@@ -22,7 +22,7 @@
  */
 #include "codegen_opencl.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <cmath>
 #include <string>
diff --git a/src/target/source/codegen_webgpu.cc b/src/target/source/codegen_webgpu.cc
index b579663e8c..31f9899016 100644
--- a/src/target/source/codegen_webgpu.cc
+++ b/src/target/source/codegen_webgpu.cc
@@ -23,7 +23,7 @@
 #include "codegen_webgpu.h"
 
 #include <tvm/arith/analyzer.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/builtin.h>
 #include <tvm/tir/transform.h>
 
diff --git a/src/target/source/source_module.cc b/src/target/source/source_module.cc
index 30263a908f..b3c5ff311a 100644
--- a/src/target/source/source_module.cc
+++ b/src/target/source/source_module.cc
@@ -24,7 +24,7 @@
 
 #include <dmlc/memory_io.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/module.h>
 #include <tvm/runtime/ndarray.h>
 
diff --git a/src/target/spirv/build_vulkan.cc b/src/target/spirv/build_vulkan.cc
index fb3c592cca..26ecffcc6b 100644
--- a/src/target/spirv/build_vulkan.cc
+++ b/src/target/spirv/build_vulkan.cc
@@ -22,7 +22,7 @@
  * \brief Build SPIRV block
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../../runtime/spirv/spirv_shader.h"
 #include "../../runtime/vulkan/vulkan_module.h"
diff --git a/src/target/tag.cc b/src/target/tag.cc
index 108fed9cd0..5c79a70bff 100644
--- a/src/target/tag.cc
+++ b/src/target/tag.cc
@@ -23,7 +23,7 @@
  */
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/expr.h>
 #include <tvm/target/tag.h>
 #include <tvm/target/target.h>
diff --git a/src/target/target.cc b/src/target/target.cc
index 34f2f31183..a0e86330d7 100644
--- a/src/target/target.cc
+++ b/src/target/target.cc
@@ -22,7 +22,7 @@
  */
 #include <dmlc/thread_local.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/transform.h>
 #include <tvm/runtime/device_api.h>
 #include <tvm/runtime/logging.h>
diff --git a/src/target/target_kind.cc b/src/target/target_kind.cc
index 012d189462..e9b8363c1b 100644
--- a/src/target/target_kind.cc
+++ b/src/target/target_kind.cc
@@ -22,7 +22,7 @@
  * \brief Target kind registry
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/expr.h>
 #include <tvm/runtime/device_api.h>
 #include <tvm/target/target.h>
diff --git a/src/target/virtual_device.cc b/src/target/virtual_device.cc
index 9a03f8012e..85f74be3bc 100644
--- a/src/target/virtual_device.cc
+++ b/src/target/virtual_device.cc
@@ -22,7 +22,7 @@
  * \brief A compile time representation for where data is to be stored at runtime, and how to
  * compile code to compute it.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/node/reflection.h>
 #include <tvm/runtime/device_api.h>
 #include <tvm/target/virtual_device.h>
diff --git a/src/te/operation/compute_op.cc b/src/te/operation/compute_op.cc
index 00902de7ab..164e889b58 100644
--- a/src/te/operation/compute_op.cc
+++ b/src/te/operation/compute_op.cc
@@ -24,7 +24,7 @@
 
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/te/operation.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/builtin.h>
diff --git a/src/te/operation/create_primfunc.cc b/src/te/operation/create_primfunc.cc
index 0d30ca1744..7408eb46eb 100644
--- a/src/te/operation/create_primfunc.cc
+++ b/src/te/operation/create_primfunc.cc
@@ -21,7 +21,7 @@
 
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/name_supply.h>
 #include <tvm/te/operation.h>
 #include <tvm/tir/analysis.h>
diff --git a/src/te/operation/extern_op.cc b/src/te/operation/extern_op.cc
index c35e79ac2d..b72aa1ce9d 100644
--- a/src/te/operation/extern_op.cc
+++ b/src/te/operation/extern_op.cc
@@ -23,7 +23,7 @@
  */
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/te/operation.h>
 #include <tvm/tir/expr.h>
 
diff --git a/src/te/operation/graph.cc b/src/te/operation/graph.cc
index 6622f35d70..f477f9129b 100644
--- a/src/te/operation/graph.cc
+++ b/src/te/operation/graph.cc
@@ -24,7 +24,7 @@
 #include "graph.h"
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/te/operation.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/stmt_functor.h>
diff --git a/src/te/operation/placeholder_op.cc b/src/te/operation/placeholder_op.cc
index 05acaac0cb..f6a5decfcd 100644
--- a/src/te/operation/placeholder_op.cc
+++ b/src/te/operation/placeholder_op.cc
@@ -23,7 +23,7 @@
  */
 #include <tvm/ffi/container/variant.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/te/operation.h>
 
 namespace tvm {
diff --git a/src/te/operation/scan_op.cc b/src/te/operation/scan_op.cc
index a5adfcc269..f88be9b882 100644
--- a/src/te/operation/scan_op.cc
+++ b/src/te/operation/scan_op.cc
@@ -22,7 +22,7 @@
  * \file scan_op.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/te/operation.h>
 #include <tvm/tir/expr.h>
 
diff --git a/src/te/tensor.cc b/src/te/tensor.cc
index df20448367..1951013954 100644
--- a/src/te/tensor.cc
+++ b/src/te/tensor.cc
@@ -21,7 +21,7 @@
  * \file tensor.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/te/operation.h>
 #include <tvm/te/tensor.h>
 
diff --git a/src/tir/analysis/block_access_region_detector.cc b/src/tir/analysis/block_access_region_detector.cc
index be3d1e7f29..2503d12df1 100644
--- a/src/tir/analysis/block_access_region_detector.cc
+++ b/src/tir/analysis/block_access_region_detector.cc
@@ -23,7 +23,7 @@
  */
 
 #include <tvm/arith/analyzer.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/op.h>
 #include <tvm/tir/stmt_functor.h>
 
diff --git a/src/tir/analysis/buffer_access_lca_detector.cc b/src/tir/analysis/buffer_access_lca_detector.cc
index b90974798b..2ecd32b65a 100644
--- a/src/tir/analysis/buffer_access_lca_detector.cc
+++ b/src/tir/analysis/buffer_access_lca_detector.cc
@@ -22,7 +22,7 @@
  * \brief Detect the lowest common ancestor(LCA) of buffer access
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/stmt_functor.h>
 
diff --git a/src/tir/analysis/calculate_allocated_memory.cc b/src/tir/analysis/calculate_allocated_memory.cc
index b1427fc99c..feaa491cc8 100644
--- a/src/tir/analysis/calculate_allocated_memory.cc
+++ b/src/tir/analysis/calculate_allocated_memory.cc
@@ -23,7 +23,7 @@
  */
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/container/map.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/device_api.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/function.h>
diff --git a/src/tir/analysis/deep_equal.cc b/src/tir/analysis/deep_equal.cc
index 52c1adea46..bb105be02a 100644
--- a/src/tir/analysis/deep_equal.cc
+++ b/src/tir/analysis/deep_equal.cc
@@ -22,7 +22,7 @@
  * \brief Deep equality checking.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/node/object_path.h>
 #include <tvm/node/reflection.h>
 #include <tvm/node/structural_equal.h>
diff --git a/src/tir/analysis/estimate_flops.cc b/src/tir/analysis/estimate_flops.cc
index 8ae05ad53b..3f012d5f15 100644
--- a/src/tir/analysis/estimate_flops.cc
+++ b/src/tir/analysis/estimate_flops.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/stmt_functor.h>
 
diff --git a/src/tir/analysis/identify_memcpy.cc b/src/tir/analysis/identify_memcpy.cc
index d27a4d8296..c23eed2da9 100644
--- a/src/tir/analysis/identify_memcpy.cc
+++ b/src/tir/analysis/identify_memcpy.cc
@@ -25,7 +25,7 @@
 #include <tvm/arith/bound.h>
 #include <tvm/arith/iter_affine_map.h>
 #include <tvm/ffi/optional.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/buffer.h>
 #include <tvm/tir/stmt.h>
diff --git a/src/tir/analysis/is_pure_function.cc b/src/tir/analysis/is_pure_function.cc
index 0047902adf..0e94a0e88d 100644
--- a/src/tir/analysis/is_pure_function.cc
+++ b/src/tir/analysis/is_pure_function.cc
@@ -21,7 +21,7 @@
  * \file is_pure_function.cc
  * \brief PrimFunc purity analysis
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/op.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/stmt_functor.h>
diff --git a/src/tir/analysis/oob_checker.cc b/src/tir/analysis/oob_checker.cc
index 16eca99210..72626d2718 100644
--- a/src/tir/analysis/oob_checker.cc
+++ b/src/tir/analysis/oob_checker.cc
@@ -21,7 +21,7 @@
  *  Out of bounds array access static analyzer.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/transform.h>
 
 #include "../../arith/ir_visitor_with_analyzer.h"
diff --git a/src/tir/analysis/stmt_finding.cc b/src/tir/analysis/stmt_finding.cc
index 97088000d4..2fe2ce5235 100644
--- a/src/tir/analysis/stmt_finding.cc
+++ b/src/tir/analysis/stmt_finding.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/stmt_functor.h>
 
diff --git a/src/tir/analysis/var_use_def_analysis.cc b/src/tir/analysis/var_use_def_analysis.cc
index 56f5856f2e..95da50204b 100644
--- a/src/tir/analysis/var_use_def_analysis.cc
+++ b/src/tir/analysis/var_use_def_analysis.cc
@@ -23,7 +23,7 @@
  */
 #include "var_use_def_analysis.h"
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 namespace tvm {
 namespace tir {
 
diff --git a/src/tir/analysis/verify_gpu_code.cc b/src/tir/analysis/verify_gpu_code.cc
index f126dc0fe0..c1f8b327ec 100644
--- a/src/tir/analysis/verify_gpu_code.cc
+++ b/src/tir/analysis/verify_gpu_code.cc
@@ -25,7 +25,7 @@
  */
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/stmt.h>
diff --git a/src/tir/analysis/verify_memory.cc b/src/tir/analysis/verify_memory.cc
index 35caebf40f..6a93fa0206 100644
--- a/src/tir/analysis/verify_memory.cc
+++ b/src/tir/analysis/verify_memory.cc
@@ -22,7 +22,7 @@
  * \brief Pass to check if memory accesses are legal.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/transform.h>
 #include <tvm/target/target.h>
 #include <tvm/tir/analysis.h>
diff --git a/src/tir/analysis/verify_ssa.cc b/src/tir/analysis/verify_ssa.cc
index f0580b622a..0d5f3f6cb4 100644
--- a/src/tir/analysis/verify_ssa.cc
+++ b/src/tir/analysis/verify_ssa.cc
@@ -24,7 +24,7 @@
  * \file verify_ssa.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/stmt_functor.h>
diff --git a/src/tir/analysis/verify_well_formed.cc b/src/tir/analysis/verify_well_formed.cc
index 921d12cde7..f2dc526df3 100644
--- a/src/tir/analysis/verify_well_formed.cc
+++ b/src/tir/analysis/verify_well_formed.cc
@@ -23,7 +23,7 @@
  */
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/stmt.h>
 #include <tvm/tir/stmt_functor.h>
 
diff --git a/src/tir/ir/block_dependence_info.cc b/src/tir/ir/block_dependence_info.cc
index c4c71a12c5..7cb9ec0454 100644
--- a/src/tir/ir/block_dependence_info.cc
+++ b/src/tir/ir/block_dependence_info.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/block_dependence_info.h>
 #include <tvm/tir/utils.h>
 
diff --git a/src/tir/ir/block_scope.cc b/src/tir/ir/block_scope.cc
index 4cddd54d42..79ff87f4c4 100644
--- a/src/tir/ir/block_scope.cc
+++ b/src/tir/ir/block_scope.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/block_scope.h>
 #include <tvm/tir/utils.h>
 
diff --git a/src/tir/ir/buffer.cc b/src/tir/ir/buffer.cc
index 48e6992964..bb6f118134 100644
--- a/src/tir/ir/buffer.cc
+++ b/src/tir/ir/buffer.cc
@@ -22,7 +22,7 @@
  */
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/device_api.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/buffer.h>
diff --git a/src/tir/ir/data_layout.cc b/src/tir/ir/data_layout.cc
index 4844dab262..d877db8d45 100644
--- a/src/tir/ir/data_layout.cc
+++ b/src/tir/ir/data_layout.cc
@@ -23,7 +23,7 @@
  */
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/data_layout.h>
 #include <tvm/tir/stmt_functor.h>
 
diff --git a/src/tir/ir/expr.cc b/src/tir/ir/expr.cc
index 3014f471ba..cd73cbefe9 100644
--- a/src/tir/ir/expr.cc
+++ b/src/tir/ir/expr.cc
@@ -21,7 +21,7 @@
  * \file expr.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/builtin.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/op.h>
diff --git a/src/tir/ir/function.cc b/src/tir/ir/function.cc
index a05efac775..ad732488ac 100644
--- a/src/tir/ir/function.cc
+++ b/src/tir/ir/function.cc
@@ -22,7 +22,7 @@
  * \brief The function data structure.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/struct_info.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/function.h>
diff --git a/src/tir/ir/index_map.cc b/src/tir/ir/index_map.cc
index 01802dd4e4..c722af555a 100644
--- a/src/tir/ir/index_map.cc
+++ b/src/tir/ir/index_map.cc
@@ -24,7 +24,7 @@
 #include <tvm/arith/analyzer.h>
 #include <tvm/arith/int_set.h>
 #include <tvm/arith/iter_affine_map.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/name_supply.h>
 #include <tvm/tir/index_map.h>
 #include <tvm/tir/op.h>
diff --git a/src/tir/ir/py_functor.cc b/src/tir/ir/py_functor.cc
index 4859e46807..df5637c992 100644
--- a/src/tir/ir/py_functor.cc
+++ b/src/tir/ir/py_functor.cc
@@ -23,7 +23,7 @@
  *        StmtExprVisitor/StmtExprMutator.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/expr_functor.h>
 #include <tvm/tir/stmt_functor.h>
 
diff --git a/src/tir/ir/script/script_complete.cc b/src/tir/ir/script/script_complete.cc
index bf8289036a..d18bda77fa 100644
--- a/src/tir/ir/script/script_complete.cc
+++ b/src/tir/ir/script/script_complete.cc
@@ -25,7 +25,7 @@
 #include "./script_complete.h"
 
 #include <tvm/arith/int_set.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 
 #include <utility>
diff --git a/src/tir/ir/specialize.cc b/src/tir/ir/specialize.cc
index ac83477b1d..69a7c293b1 100644
--- a/src/tir/ir/specialize.cc
+++ b/src/tir/ir/specialize.cc
@@ -22,7 +22,7 @@
  * \brief Specialize parameters of PrimFunc.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/function.h>
 #include <tvm/tir/op.h>
diff --git a/src/tir/ir/stmt.cc b/src/tir/ir/stmt.cc
index bb8d6c9fd1..17c763c6e4 100644
--- a/src/tir/ir/stmt.cc
+++ b/src/tir/ir/stmt.cc
@@ -22,7 +22,7 @@
  */
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/op.h>
 #include <tvm/tir/op_attr_types.h>
 #include <tvm/tir/stmt.h>
diff --git a/src/tir/ir/stmt_functor.cc b/src/tir/ir/stmt_functor.cc
index 0aa699472d..e580f22f6b 100644
--- a/src/tir/ir/stmt_functor.cc
+++ b/src/tir/ir/stmt_functor.cc
@@ -20,7 +20,7 @@
  * \file stmt_functor.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/module.h>
 #include <tvm/tir/data_type_rewriter.h>
 #include <tvm/tir/function.h>
diff --git a/src/tir/ir/transform.cc b/src/tir/ir/transform.cc
index 704d6310d0..72b11f751c 100644
--- a/src/tir/ir/transform.cc
+++ b/src/tir/ir/transform.cc
@@ -22,7 +22,7 @@
  * \brief TIR specific transformation passes.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/rvalue_ref.h>
 #include <tvm/node/repr_printer.h>
 #include <tvm/tir/transform.h>
diff --git a/src/tir/op/op.cc b/src/tir/op/op.cc
index 55b89618a8..03b22de838 100644
--- a/src/tir/op/op.cc
+++ b/src/tir/op/op.cc
@@ -24,7 +24,7 @@
  */
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/builtin.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/op.h>
diff --git a/src/tir/schedule/analysis/analysis.cc b/src/tir/schedule/analysis/analysis.cc
index ea4a2bf41f..691ce8ebd1 100644
--- a/src/tir/schedule/analysis/analysis.cc
+++ b/src/tir/schedule/analysis/analysis.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../ir_comparator.h"
 #include "../utils.h"
diff --git a/src/tir/schedule/analysis/layout.cc b/src/tir/schedule/analysis/layout.cc
index 9f1a68e92e..f6dc0067a8 100644
--- a/src/tir/schedule/analysis/layout.cc
+++ b/src/tir/schedule/analysis/layout.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/tir/schedule/instruction.cc b/src/tir/schedule/instruction.cc
index 63da75851b..68e7bbbf83 100644
--- a/src/tir/schedule/instruction.cc
+++ b/src/tir/schedule/instruction.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "./utils.h"
 
diff --git a/src/tir/schedule/primitive/decompose_padding.cc b/src/tir/schedule/primitive/decompose_padding.cc
index 276c0697f1..d848dad28f 100644
--- a/src/tir/schedule/primitive/decompose_padding.cc
+++ b/src/tir/schedule/primitive/decompose_padding.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../../transforms/ir_utils.h"
 #include "../utils.h"
diff --git a/src/tir/schedule/primitive/reduction.cc b/src/tir/schedule/primitive/reduction.cc
index a14c485b79..b46801a068 100644
--- a/src/tir/schedule/primitive/reduction.cc
+++ b/src/tir/schedule/primitive/reduction.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../utils.h"
 
diff --git a/src/tir/schedule/schedule.cc b/src/tir/schedule/schedule.cc
index 282e246666..4d098771a2 100644
--- a/src/tir/schedule/schedule.cc
+++ b/src/tir/schedule/schedule.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "./utils.h"
 namespace tvm {
diff --git a/src/tir/schedule/state.cc b/src/tir/schedule/state.cc
index 2d2390e60c..b2924ea447 100644
--- a/src/tir/schedule/state.cc
+++ b/src/tir/schedule/state.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 #include <tvm/arith/int_set.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "./utils.h"
 namespace tvm {
diff --git a/src/tir/schedule/trace.cc b/src/tir/schedule/trace.cc
index 605bc53d12..8160035e3d 100644
--- a/src/tir/schedule/trace.cc
+++ b/src/tir/schedule/trace.cc
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "./utils.h"
 
diff --git a/src/tir/schedule/transform.cc b/src/tir/schedule/transform.cc
index 8e402194ec..256f44e148 100644
--- a/src/tir/schedule/transform.cc
+++ b/src/tir/schedule/transform.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../transforms/ir_utils.h"
 #include "./utils.h"
diff --git a/src/tir/transforms/annotate_device_regions.cc b/src/tir/transforms/annotate_device_regions.cc
index 77e0c80713..5cd2d65565 100644
--- a/src/tir/transforms/annotate_device_regions.cc
+++ b/src/tir/transforms/annotate_device_regions.cc
@@ -22,7 +22,7 @@
  * \brief Split device function from host.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/transform.h>
 #include <tvm/target/target.h>
 #include <tvm/tir/builtin.h>
diff --git a/src/tir/transforms/bind_target.cc b/src/tir/transforms/bind_target.cc
index fc8e6ede2b..281249f4ad 100644
--- a/src/tir/transforms/bind_target.cc
+++ b/src/tir/transforms/bind_target.cc
@@ -34,7 +34,7 @@
  * with appropriate targets and updates call sites accordingly.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/global_var_supply.h>
 #include <tvm/tir/stmt_functor.h>
 #include <tvm/tir/transform.h>
diff --git a/src/tir/transforms/bound_checker.cc b/src/tir/transforms/bound_checker.cc
index b5d5e70fee..6d5537e775 100644
--- a/src/tir/transforms/bound_checker.cc
+++ b/src/tir/transforms/bound_checker.cc
@@ -24,7 +24,7 @@
 
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/builtin.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/op.h>
diff --git a/src/tir/transforms/combine_context_call.cc b/src/tir/transforms/combine_context_call.cc
index 15e7dbcb40..2945c8e20f 100644
--- a/src/tir/transforms/combine_context_call.cc
+++ b/src/tir/transforms/combine_context_call.cc
@@ -23,7 +23,7 @@
  * \file combine_context_call.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/node/structural_equal.h>
 #include <tvm/node/structural_hash.h>
 #include <tvm/tir/builtin.h>
diff --git a/src/tir/transforms/common_subexpr_elim.cc b/src/tir/transforms/common_subexpr_elim.cc
index 3f89f82d09..23c7d88d47 100644
--- a/src/tir/transforms/common_subexpr_elim.cc
+++ b/src/tir/transforms/common_subexpr_elim.cc
@@ -30,7 +30,7 @@
 #include "common_subexpr_elim.h"
 
 #include <tvm/ffi/container/array.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ffi/string.h>
 #include <tvm/ir/transform.h>  // For the class Pass and the class PassContext
 #include <tvm/tir/analysis.h>  // For the analysis which gives the size of an expr
diff --git a/src/tir/transforms/compact_buffer_region.cc b/src/tir/transforms/compact_buffer_region.cc
index 3d78166468..6f5a496d1f 100644
--- a/src/tir/transforms/compact_buffer_region.cc
+++ b/src/tir/transforms/compact_buffer_region.cc
@@ -24,7 +24,7 @@
 
 #include <tvm/arith/int_set.h>
 #include <tvm/arith/int_solver.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/op.h>
 #include <tvm/tir/stmt_functor.h>
 #include <tvm/tir/transform.h>
diff --git a/src/tir/transforms/convert_blocks_to_opaque.cc b/src/tir/transforms/convert_blocks_to_opaque.cc
index 434a9c4954..bd340df97e 100644
--- a/src/tir/transforms/convert_blocks_to_opaque.cc
+++ b/src/tir/transforms/convert_blocks_to_opaque.cc
@@ -22,7 +22,7 @@
  * \brief Convert the blocks to opaque blocks which do not have block vars.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/stmt_functor.h>
 #include <tvm/tir/transform.h>
 
diff --git a/src/tir/transforms/convert_for_loops_serial.cc b/src/tir/transforms/convert_for_loops_serial.cc
index e4827bdc51..9b25547793 100644
--- a/src/tir/transforms/convert_for_loops_serial.cc
+++ b/src/tir/transforms/convert_for_loops_serial.cc
@@ -22,7 +22,7 @@
  * \brief Convert all for loops to serial for lesser memory consumption
  */
 #include <tvm/arith/analyzer.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/device_api.h>
 #include <tvm/tir/function.h>
 #include <tvm/tir/stmt_functor.h>
diff --git a/src/tir/transforms/decorate_device_scope.cc b/src/tir/transforms/decorate_device_scope.cc
index 5267e76d4d..a8c6b07c76 100644
--- a/src/tir/transforms/decorate_device_scope.cc
+++ b/src/tir/transforms/decorate_device_scope.cc
@@ -21,7 +21,7 @@
  * \file decorate_device_scope.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/op.h>
 #include <tvm/tir/stmt.h>
 #include <tvm/tir/transform.h>
diff --git a/src/tir/transforms/default_gpu_schedule.cc b/src/tir/transforms/default_gpu_schedule.cc
index 2ac1b1047b..5e1e5efa0e 100644
--- a/src/tir/transforms/default_gpu_schedule.cc
+++ b/src/tir/transforms/default_gpu_schedule.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include "../../meta_schedule/utils.h"
 
diff --git a/src/tir/transforms/extract_constants.cc b/src/tir/transforms/extract_constants.cc
index 3d1cb15d75..75451bc049 100644
--- a/src/tir/transforms/extract_constants.cc
+++ b/src/tir/transforms/extract_constants.cc
@@ -26,7 +26,7 @@
  */
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/transform.h>
 #include <tvm/tir/stmt_functor.h>
 
diff --git a/src/tir/transforms/flatten_buffer.cc b/src/tir/transforms/flatten_buffer.cc
index 8a9470093f..1515bfadb5 100644
--- a/src/tir/transforms/flatten_buffer.cc
+++ b/src/tir/transforms/flatten_buffer.cc
@@ -22,7 +22,7 @@
  */
 
 #include <tvm/arith/iter_affine_map.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/stmt_functor.h>
 #include <tvm/tir/transform.h>
diff --git a/src/tir/transforms/force_narrow_index_to_i32.cc b/src/tir/transforms/force_narrow_index_to_i32.cc
index 2e2833e5ca..d291e40f3c 100644
--- a/src/tir/transforms/force_narrow_index_to_i32.cc
+++ b/src/tir/transforms/force_narrow_index_to_i32.cc
@@ -23,7 +23,7 @@
  * \note This pass is not used in default cases.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/data_type_rewriter.h>
 #include <tvm/tir/op.h>
 #include <tvm/tir/transform.h>
diff --git a/src/tir/transforms/hoist_expression.cc b/src/tir/transforms/hoist_expression.cc
index 57a7247271..8dedc4e896 100644
--- a/src/tir/transforms/hoist_expression.cc
+++ b/src/tir/transforms/hoist_expression.cc
@@ -22,7 +22,7 @@
  */
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/stmt_functor.h>
diff --git a/src/tir/transforms/inject_double_buffer.cc b/src/tir/transforms/inject_double_buffer.cc
index c28bb8933a..e1c5ff2a75 100644
--- a/src/tir/transforms/inject_double_buffer.cc
+++ b/src/tir/transforms/inject_double_buffer.cc
@@ -22,7 +22,7 @@
  * \file inject_double_buffer.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/op.h>
 #include <tvm/tir/stmt_functor.h>
 #include <tvm/tir/transform.h>
diff --git a/src/tir/transforms/inject_permuted_layout.cc b/src/tir/transforms/inject_permuted_layout.cc
index 26aee25935..02bdfcbfed 100644
--- a/src/tir/transforms/inject_permuted_layout.cc
+++ b/src/tir/transforms/inject_permuted_layout.cc
@@ -22,7 +22,7 @@
  * \brief The pass injects permuted layout for shared memory buffers to avoid bank conflicts.
  */
 #include <tvm/arith/analyzer.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/function.h>
 #include <tvm/tir/op.h>
 #include <tvm/tir/stmt_functor.h>
diff --git a/src/tir/transforms/inject_ptx_async_copy.cc b/src/tir/transforms/inject_ptx_async_copy.cc
index 75c8e2ec46..f0a88ba981 100644
--- a/src/tir/transforms/inject_ptx_async_copy.cc
+++ b/src/tir/transforms/inject_ptx_async_copy.cc
@@ -21,7 +21,7 @@
  * \brief Replace copy from global to shared with async copy
  * \file inject_ptx_async_copy.cc
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/builtin.h>
 #include <tvm/tir/expr.h>
diff --git a/src/tir/transforms/inject_ptx_ldg32.cc b/src/tir/transforms/inject_ptx_ldg32.cc
index 37a3e93323..848e849194 100644
--- a/src/tir/transforms/inject_ptx_ldg32.cc
+++ b/src/tir/transforms/inject_ptx_ldg32.cc
@@ -20,7 +20,7 @@
 #include <tvm/arith/analyzer.h>
 #include <tvm/arith/iter_affine_map.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/op.h>
 #include <tvm/tir/stmt.h>
diff --git a/src/tir/transforms/inject_rolling_buffer.cc b/src/tir/transforms/inject_rolling_buffer.cc
index a1d84456eb..a68308261a 100644
--- a/src/tir/transforms/inject_rolling_buffer.cc
+++ b/src/tir/transforms/inject_rolling_buffer.cc
@@ -35,7 +35,7 @@
  */
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/stmt_functor.h>
 #include <tvm/tir/transform.h>
 
diff --git a/src/tir/transforms/inject_software_pipeline.cc b/src/tir/transforms/inject_software_pipeline.cc
index 0a79bc63cd..b89d3b89fa 100644
--- a/src/tir/transforms/inject_software_pipeline.cc
+++ b/src/tir/transforms/inject_software_pipeline.cc
@@ -21,7 +21,7 @@
  * \file inject_software_pipeline.cc
  * \brief Transform annotated loops into pipelined one that parallelize producers and consumers
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/target/target.h>
 #include <tvm/tir/builtin.h>
 #include <tvm/tir/transform.h>
diff --git a/src/tir/transforms/inject_virtual_thread.cc b/src/tir/transforms/inject_virtual_thread.cc
index 12b332feb9..d0f84842a4 100644
--- a/src/tir/transforms/inject_virtual_thread.cc
+++ b/src/tir/transforms/inject_virtual_thread.cc
@@ -21,7 +21,7 @@
  * \file inject_virtual_thread.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/builtin.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/stmt_functor.h>
diff --git a/src/tir/transforms/inline_private_functions.cc b/src/tir/transforms/inline_private_functions.cc
index 89ee9e7c7d..9e87ffe5b2 100644
--- a/src/tir/transforms/inline_private_functions.cc
+++ b/src/tir/transforms/inline_private_functions.cc
@@ -22,7 +22,7 @@
  * \brief Inline private functions to their callsite
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/builtin.h>
 #include <tvm/tir/op.h>
diff --git a/src/tir/transforms/ir_utils.cc b/src/tir/transforms/ir_utils.cc
index 37ea799df9..3f94fb0cfc 100644
--- a/src/tir/transforms/ir_utils.cc
+++ b/src/tir/transforms/ir_utils.cc
@@ -25,7 +25,7 @@
 
 #include <tvm/arith/analyzer.h>
 #include <tvm/arith/int_solver.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/stmt_functor.h>
 #include <tvm/tir/transform.h>
 
diff --git a/src/tir/transforms/lift_thread_binding.cc b/src/tir/transforms/lift_thread_binding.cc
index f9493abbf1..8995beb2ce 100644
--- a/src/tir/transforms/lift_thread_binding.cc
+++ b/src/tir/transforms/lift_thread_binding.cc
@@ -22,7 +22,7 @@
  * \brief Convert the blocks to opaque blocks which do not have block vars.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/stmt_functor.h>
 #include <tvm/tir/transform.h>
 
diff --git a/src/tir/transforms/loop_partition.cc b/src/tir/transforms/loop_partition.cc
index 5a55d41498..b3825908b7 100644
--- a/src/tir/transforms/loop_partition.cc
+++ b/src/tir/transforms/loop_partition.cc
@@ -23,7 +23,7 @@
 #include <tvm/arith/analyzer.h>
 #include <tvm/arith/bound.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/builtin.h>
 #include <tvm/tir/expr.h>
diff --git a/src/tir/transforms/lower_async_dma.cc b/src/tir/transforms/lower_async_dma.cc
index bbde22e480..71c6c945e8 100644
--- a/src/tir/transforms/lower_async_dma.cc
+++ b/src/tir/transforms/lower_async_dma.cc
@@ -24,7 +24,7 @@
 #include <tvm/arith/analyzer.h>
 #include <tvm/arith/bound.h>
 #include <tvm/arith/iter_affine_map.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/buffer.h>
 #include <tvm/tir/stmt.h>
diff --git a/src/tir/transforms/lower_cross_thread_reduction.cc b/src/tir/transforms/lower_cross_thread_reduction.cc
index 7054bc77fa..00cc2f226a 100644
--- a/src/tir/transforms/lower_cross_thread_reduction.cc
+++ b/src/tir/transforms/lower_cross_thread_reduction.cc
@@ -21,7 +21,7 @@
  * \file lower_cross_thread_reduction.cc
  */
 #include <tvm/arith/analyzer.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/stmt_functor.h>
 #include <tvm/tir/transform.h>
diff --git a/src/tir/transforms/lower_custom_datatypes.cc b/src/tir/transforms/lower_custom_datatypes.cc
index b651c39bb8..f77276e155 100644
--- a/src/tir/transforms/lower_custom_datatypes.cc
+++ b/src/tir/transforms/lower_custom_datatypes.cc
@@ -22,7 +22,7 @@
  */
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/target/target.h>
 #include <tvm/tir/op.h>
 #include <tvm/tir/stmt_functor.h>
diff --git a/src/tir/transforms/lower_device_kernel_launch.cc b/src/tir/transforms/lower_device_kernel_launch.cc
index 1774d97f64..529956d372 100644
--- a/src/tir/transforms/lower_device_kernel_launch.cc
+++ b/src/tir/transforms/lower_device_kernel_launch.cc
@@ -22,7 +22,7 @@
  * \brief Split device function from host.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/transform.h>
 #include <tvm/target/target.h>
 #include <tvm/tir/builtin.h>
diff --git a/src/tir/transforms/lower_device_storage_access_info.cc b/src/tir/transforms/lower_device_storage_access_info.cc
index 7e0849100d..65a55dff36 100644
--- a/src/tir/transforms/lower_device_storage_access_info.cc
+++ b/src/tir/transforms/lower_device_storage_access_info.cc
@@ -23,7 +23,7 @@
  */
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/target/target_info.h>
 #include <tvm/tir/buffer.h>
 #include <tvm/tir/builtin.h>
diff --git a/src/tir/transforms/lower_init_block.cc b/src/tir/transforms/lower_init_block.cc
index 188d856f9f..d3994b066d 100644
--- a/src/tir/transforms/lower_init_block.cc
+++ b/src/tir/transforms/lower_init_block.cc
@@ -21,7 +21,7 @@
  * Lower block init stmt into branch stmt
  * \file lower_reduction.cc
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/op.h>
 #include <tvm/tir/stmt_functor.h>
 #include <tvm/tir/transform.h>
diff --git a/src/tir/transforms/lower_intrin.cc b/src/tir/transforms/lower_intrin.cc
index dab0e672a6..2915a741e8 100644
--- a/src/tir/transforms/lower_intrin.cc
+++ b/src/tir/transforms/lower_intrin.cc
@@ -22,7 +22,7 @@
  * \file lower_intrin.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/target/target.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/op.h>
diff --git a/src/tir/transforms/lower_match_buffer.cc b/src/tir/transforms/lower_match_buffer.cc
index ea1055896a..d301e910f9 100644
--- a/src/tir/transforms/lower_match_buffer.cc
+++ b/src/tir/transforms/lower_match_buffer.cc
@@ -23,7 +23,7 @@
  */
 
 #include <tvm/arith/analyzer.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/function.h>
 #include <tvm/tir/op.h>
 #include <tvm/tir/stmt_functor.h>
diff --git a/src/tir/transforms/lower_opaque_block.cc b/src/tir/transforms/lower_opaque_block.cc
index d3fe46b5d1..75bfece625 100644
--- a/src/tir/transforms/lower_opaque_block.cc
+++ b/src/tir/transforms/lower_opaque_block.cc
@@ -21,7 +21,7 @@
  * \file lower_opaque_block.cc
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/stmt_functor.h>
 #include <tvm/tir/transform.h>
 
diff --git a/src/tir/transforms/lower_thread_allreduce.cc b/src/tir/transforms/lower_thread_allreduce.cc
index ef9e9f3b87..3b972482b7 100644
--- a/src/tir/transforms/lower_thread_allreduce.cc
+++ b/src/tir/transforms/lower_thread_allreduce.cc
@@ -23,7 +23,7 @@
  */
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/target/target.h>
 #include <tvm/tir/builtin.h>
 #include <tvm/tir/expr.h>
diff --git a/src/tir/transforms/lower_tvm_builtin.cc b/src/tir/transforms/lower_tvm_builtin.cc
index d364092ec9..0db4398711 100644
--- a/src/tir/transforms/lower_tvm_builtin.cc
+++ b/src/tir/transforms/lower_tvm_builtin.cc
@@ -22,7 +22,7 @@
  * \file tir/transforms/lower_tvm_buildin.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/builtin.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/stmt_functor.h>
diff --git a/src/tir/transforms/lower_vtcm_alloc.cc b/src/tir/transforms/lower_vtcm_alloc.cc
index f5be570aa3..7cddfb6785 100644
--- a/src/tir/transforms/lower_vtcm_alloc.cc
+++ b/src/tir/transforms/lower_vtcm_alloc.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/builtin.h>
 #include <tvm/tir/stmt.h>
 #include <tvm/tir/transform.h>
diff --git a/src/tir/transforms/lower_warp_memory.cc b/src/tir/transforms/lower_warp_memory.cc
index e2bef43286..5708ab0746 100644
--- a/src/tir/transforms/lower_warp_memory.cc
+++ b/src/tir/transforms/lower_warp_memory.cc
@@ -28,7 +28,7 @@
 #include <tvm/arith/analyzer.h>
 #include <tvm/arith/pattern.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/target/target.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/builtin.h>
diff --git a/src/tir/transforms/make_packed_api.cc b/src/tir/transforms/make_packed_api.cc
index 258db2afad..9f0228dc16 100644
--- a/src/tir/transforms/make_packed_api.cc
+++ b/src/tir/transforms/make_packed_api.cc
@@ -21,7 +21,7 @@
  * \file make_packed_api.cc Lower PrimFunc to use the packed function API.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/device_api.h>
 #include <tvm/runtime/module.h>
 #include <tvm/target/target.h>
diff --git a/src/tir/transforms/make_unpacked_api.cc b/src/tir/transforms/make_unpacked_api.cc
index 3357dc35c0..898e781906 100644
--- a/src/tir/transforms/make_unpacked_api.cc
+++ b/src/tir/transforms/make_unpacked_api.cc
@@ -21,7 +21,7 @@
  * \file make_unpacked_api.cc Lower PrimFunc to a standard C function API.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/device_api.h>
 #include <tvm/target/target.h>
 #include <tvm/tir/analysis.h>
diff --git a/src/tir/transforms/manifest_shared_memory_local_stage.cc b/src/tir/transforms/manifest_shared_memory_local_stage.cc
index c4405844d9..73f5d7746d 100644
--- a/src/tir/transforms/manifest_shared_memory_local_stage.cc
+++ b/src/tir/transforms/manifest_shared_memory_local_stage.cc
@@ -27,7 +27,7 @@
  * of requiring buffer access to be contiguous in each dimension.
  */
 #include <tvm/arith/analyzer.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/op.h>
 #include <tvm/tir/stmt_functor.h>
diff --git a/src/tir/transforms/memhammer_lower_auto_copy.cc b/src/tir/transforms/memhammer_lower_auto_copy.cc
index 64526b1715..15dd58d4ca 100644
--- a/src/tir/transforms/memhammer_lower_auto_copy.cc
+++ b/src/tir/transforms/memhammer_lower_auto_copy.cc
@@ -19,7 +19,7 @@
 
 #include <tvm/arith/iter_affine_map.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/target/target.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/op.h>
diff --git a/src/tir/transforms/merge_shared_memory_allocations.cc b/src/tir/transforms/merge_shared_memory_allocations.cc
index 09bf8b113c..63342bd2ec 100644
--- a/src/tir/transforms/merge_shared_memory_allocations.cc
+++ b/src/tir/transforms/merge_shared_memory_allocations.cc
@@ -24,7 +24,7 @@
  * allocation.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/op.h>
 #include <tvm/tir/stmt_functor.h>
diff --git a/src/tir/transforms/narrow_datatype.cc b/src/tir/transforms/narrow_datatype.cc
index 768e24e269..b09a4dc17b 100644
--- a/src/tir/transforms/narrow_datatype.cc
+++ b/src/tir/transforms/narrow_datatype.cc
@@ -23,7 +23,7 @@
  */
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/builtin.h>
 #include <tvm/tir/data_type_rewriter.h>
 #include <tvm/tir/op.h>
diff --git a/src/tir/transforms/plan_update_buffer_allocation_location.cc b/src/tir/transforms/plan_update_buffer_allocation_location.cc
index fea7ae9d4e..bcd5f53dd4 100644
--- a/src/tir/transforms/plan_update_buffer_allocation_location.cc
+++ b/src/tir/transforms/plan_update_buffer_allocation_location.cc
@@ -22,7 +22,7 @@
  * \file plan_update_buffer_allocation_location.cc
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/stmt_functor.h>
 #include <tvm/tir/transform.h>
diff --git a/src/tir/transforms/primfunc_utils.cc b/src/tir/transforms/primfunc_utils.cc
index 3d12a849d0..274199a6c4 100644
--- a/src/tir/transforms/primfunc_utils.cc
+++ b/src/tir/transforms/primfunc_utils.cc
@@ -22,7 +22,7 @@
  * \brief Passes that serve as helper functions.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/transform.h>
 
 namespace tvm {
diff --git a/src/tir/transforms/profile_instrumentation.cc b/src/tir/transforms/profile_instrumentation.cc
index 7dd85cf04d..d7763ee543 100644
--- a/src/tir/transforms/profile_instrumentation.cc
+++ b/src/tir/transforms/profile_instrumentation.cc
@@ -24,7 +24,7 @@
 // these instruction can be replaced with a call to a target specific handler
 // and can be used to capture profiling information such as processor cycles.
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/builtin.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/stmt.h>
diff --git a/src/tir/transforms/reduce_branching_through_overcompute.cc b/src/tir/transforms/reduce_branching_through_overcompute.cc
index b2ec1a464d..d56001432d 100644
--- a/src/tir/transforms/reduce_branching_through_overcompute.cc
+++ b/src/tir/transforms/reduce_branching_through_overcompute.cc
@@ -24,7 +24,7 @@
  * extra computations that do not impact the final results.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/op.h>
 #include <tvm/tir/transform.h>
 
diff --git a/src/tir/transforms/remap_thread_axis.cc b/src/tir/transforms/remap_thread_axis.cc
index 2a5cb5859d..14ad701227 100644
--- a/src/tir/transforms/remap_thread_axis.cc
+++ b/src/tir/transforms/remap_thread_axis.cc
@@ -21,7 +21,7 @@
  * \file remap_thread_axis.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/stmt_functor.h>
 #include <tvm/tir/transform.h>
diff --git a/src/tir/transforms/remove_assume.cc b/src/tir/transforms/remove_assume.cc
index 1be33fd631..95d55ed0a3 100644
--- a/src/tir/transforms/remove_assume.cc
+++ b/src/tir/transforms/remove_assume.cc
@@ -22,7 +22,7 @@
  * \brief Remove stores of tir::builtin::undef
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/builtin.h>
 #include <tvm/tir/op.h>
diff --git a/src/tir/transforms/remove_no_op.cc b/src/tir/transforms/remove_no_op.cc
index b410f9697d..c9773a293b 100644
--- a/src/tir/transforms/remove_no_op.cc
+++ b/src/tir/transforms/remove_no_op.cc
@@ -23,7 +23,7 @@
  */
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/op.h>
 #include <tvm/tir/stmt.h>
diff --git a/src/tir/transforms/remove_store_undef.cc b/src/tir/transforms/remove_store_undef.cc
index 25ede67af9..62b4391ef3 100644
--- a/src/tir/transforms/remove_store_undef.cc
+++ b/src/tir/transforms/remove_store_undef.cc
@@ -22,7 +22,7 @@
  * \brief Remove stores of tir::builtin::undef
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/builtin.h>
 #include <tvm/tir/op.h>
diff --git a/src/tir/transforms/remove_weight_layout_rewrite_block.cc b/src/tir/transforms/remove_weight_layout_rewrite_block.cc
index d0dda28e4a..3c1e12bc3a 100644
--- a/src/tir/transforms/remove_weight_layout_rewrite_block.cc
+++ b/src/tir/transforms/remove_weight_layout_rewrite_block.cc
@@ -22,7 +22,7 @@
  * \brief Remove weight layout rewrite block before benchmark
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/index_map.h>
 #include <tvm/tir/op.h>
 #include <tvm/tir/stmt_functor.h>
diff --git a/src/tir/transforms/renew_defs.cc b/src/tir/transforms/renew_defs.cc
index 8acd8508e7..167453c04f 100644
--- a/src/tir/transforms/renew_defs.cc
+++ b/src/tir/transforms/renew_defs.cc
@@ -22,7 +22,7 @@
  * \brief Renew the definition nodes for a TIR, including Var, Buffer and IterVar.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/stmt_functor.h>
 #include <tvm/tir/transform.h>
 
diff --git a/src/tir/transforms/renormalize_split_pattern.cc b/src/tir/transforms/renormalize_split_pattern.cc
index c79d33eb4b..bcb143f332 100644
--- a/src/tir/transforms/renormalize_split_pattern.cc
+++ b/src/tir/transforms/renormalize_split_pattern.cc
@@ -22,7 +22,7 @@
  * \brief Renormalize the split pattern from floordiv(floormod()) to floormod(floordiv())
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/op.h>
 #include <tvm/tir/stmt.h>
diff --git a/src/tir/transforms/rewrite_unsafe_select.cc b/src/tir/transforms/rewrite_unsafe_select.cc
index ceb117ad8e..1d311f9bac 100644
--- a/src/tir/transforms/rewrite_unsafe_select.cc
+++ b/src/tir/transforms/rewrite_unsafe_select.cc
@@ -22,7 +22,7 @@
  * \brief Rewrite uinsafe select expression.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/builtin.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/op_attr_types.h>
diff --git a/src/tir/transforms/simplify.cc b/src/tir/transforms/simplify.cc
index e0a3ce7a1a..f67db8677e 100644
--- a/src/tir/transforms/simplify.cc
+++ b/src/tir/transforms/simplify.cc
@@ -26,7 +26,7 @@
 
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/builtin.h>
 #include <tvm/tir/expr.h>
diff --git a/src/tir/transforms/skip_assert.cc b/src/tir/transforms/skip_assert.cc
index f4ae81b754..6a9e62cd1e 100644
--- a/src/tir/transforms/skip_assert.cc
+++ b/src/tir/transforms/skip_assert.cc
@@ -18,7 +18,7 @@
  */
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/stmt_functor.h>
 #include <tvm/tir/transform.h>
diff --git a/src/tir/transforms/split_host_device.cc b/src/tir/transforms/split_host_device.cc
index 57188ec765..796514e027 100644
--- a/src/tir/transforms/split_host_device.cc
+++ b/src/tir/transforms/split_host_device.cc
@@ -22,7 +22,7 @@
  * \brief Split device function from host.
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/global_var_supply.h>
 #include <tvm/ir/transform.h>
 #include <tvm/target/target.h>
diff --git a/src/tir/transforms/storage_rewrite.cc b/src/tir/transforms/storage_rewrite.cc
index e6bc94a3d7..7112f62a10 100644
--- a/src/tir/transforms/storage_rewrite.cc
+++ b/src/tir/transforms/storage_rewrite.cc
@@ -24,7 +24,7 @@
  */
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/ir/type.h>
 #include <tvm/target/target_info.h>
 #include <tvm/tir/analysis.h>
diff --git a/src/tir/transforms/tensorcore_infer_fragment.cc b/src/tir/transforms/tensorcore_infer_fragment.cc
index 82b573b6d4..8285ee9627 100644
--- a/src/tir/transforms/tensorcore_infer_fragment.cc
+++ b/src/tir/transforms/tensorcore_infer_fragment.cc
@@ -22,7 +22,7 @@
  * \file tensorcore_fragment.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/stmt_functor.h>
 #include <tvm/tir/transform.h>
diff --git a/src/tir/transforms/thread_storage_sync.cc b/src/tir/transforms/thread_storage_sync.cc
index 6f46dbeb82..f8b0a83d4d 100644
--- a/src/tir/transforms/thread_storage_sync.cc
+++ b/src/tir/transforms/thread_storage_sync.cc
@@ -21,7 +21,7 @@
  * \file thread_storage_sync.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/builtin.h>
 #include <tvm/tir/expr.h>
diff --git a/src/tir/transforms/transform_mma_buffer_layout.cc b/src/tir/transforms/transform_mma_buffer_layout.cc
index dc81f56d75..bee45716b1 100644
--- a/src/tir/transforms/transform_mma_buffer_layout.cc
+++ b/src/tir/transforms/transform_mma_buffer_layout.cc
@@ -18,7 +18,7 @@
  */
 
 #include <tvm/arith/analyzer.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/index_map.h>
 #include <tvm/tir/stmt_functor.h>
diff --git a/src/tir/transforms/unify_thread_binding.cc b/src/tir/transforms/unify_thread_binding.cc
index e6b71a99f0..a9e47055e2 100644
--- a/src/tir/transforms/unify_thread_binding.cc
+++ b/src/tir/transforms/unify_thread_binding.cc
@@ -22,7 +22,7 @@
  */
 
 #include <tvm/arith/analyzer.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/stmt_functor.h>
 #include <tvm/tir/transform.h>
diff --git a/src/tir/transforms/unroll_loop.cc b/src/tir/transforms/unroll_loop.cc
index 70375c3191..064116d117 100644
--- a/src/tir/transforms/unroll_loop.cc
+++ b/src/tir/transforms/unroll_loop.cc
@@ -24,7 +24,7 @@
 // Unrolls the loop as in Halide pipeline.
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/expr.h>
 #include <tvm/tir/op.h>
 #include <tvm/tir/stmt_functor.h>
diff --git a/src/tir/transforms/unsupported_dtype_legalize.cc b/src/tir/transforms/unsupported_dtype_legalize.cc
index f25c51160c..92f0a6de98 100644
--- a/src/tir/transforms/unsupported_dtype_legalize.cc
+++ b/src/tir/transforms/unsupported_dtype_legalize.cc
@@ -22,7 +22,7 @@
  * \brief legalize bf16/fp8 type by adding cast_to_fp32
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/builtin.h>
 #include <tvm/tir/op.h>
 #include <tvm/tir/stmt_functor.h>
diff --git a/src/tir/transforms/using_assume_to_reduce_branches.cc b/src/tir/transforms/using_assume_to_reduce_branches.cc
index 9d3feb8466..53509ce497 100644
--- a/src/tir/transforms/using_assume_to_reduce_branches.cc
+++ b/src/tir/transforms/using_assume_to_reduce_branches.cc
@@ -35,7 +35,7 @@
  *    4. This pass currently works for op_pattern kElemWise and kBroadcast.
  */
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/relax/expr.h>
 #include <tvm/relax/op_attr_types.h>
 #include <tvm/tir/builtin.h>
diff --git a/src/tir/transforms/vectorize_loop.cc b/src/tir/transforms/vectorize_loop.cc
index e6637073ec..705739d98b 100644
--- a/src/tir/transforms/vectorize_loop.cc
+++ b/src/tir/transforms/vectorize_loop.cc
@@ -23,7 +23,7 @@
 // Loop vectorizer as in Halide pipeline.
 #include <tvm/arith/analyzer.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/tir/analysis.h>
 #include <tvm/tir/builtin.h>
 #include <tvm/tir/expr.h>
diff --git a/src/topi/broadcast.cc b/src/topi/broadcast.cc
index db819f4bf7..99b43b82e9 100644
--- a/src/topi/broadcast.cc
+++ b/src/topi/broadcast.cc
@@ -22,7 +22,7 @@
  * \file broadcast.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/topi/broadcast.h>
 #include <tvm/topi/utils.h>
 
diff --git a/src/topi/einsum.cc b/src/topi/einsum.cc
index 01adc1744e..9586b9c557 100644
--- a/src/topi/einsum.cc
+++ b/src/topi/einsum.cc
@@ -21,7 +21,7 @@
  * \file topi/einsum.cc
  * \brief Einstein summation op
  */
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/topi/broadcast.h>
 #include <tvm/topi/einsum.h>
 
diff --git a/src/topi/elemwise.cc b/src/topi/elemwise.cc
index 47fe13bfb4..b60256cea5 100644
--- a/src/topi/elemwise.cc
+++ b/src/topi/elemwise.cc
@@ -22,7 +22,7 @@
  * \file elemwise.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/topi/elemwise.h>
 
 namespace tvm {
diff --git a/src/topi/nn.cc b/src/topi/nn.cc
index a658785bd6..d872bac2ce 100644
--- a/src/topi/nn.cc
+++ b/src/topi/nn.cc
@@ -22,7 +22,7 @@
  * \file nn.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/topi/nn.h>
 #include <tvm/topi/nn/bias_add.h>
 #include <tvm/topi/nn/bnn.h>
diff --git a/src/topi/reduction.cc b/src/topi/reduction.cc
index 42988ae762..7b10c7771b 100644
--- a/src/topi/reduction.cc
+++ b/src/topi/reduction.cc
@@ -22,7 +22,7 @@
  * \file reduction.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/topi/reduction.h>
 #include <tvm/topi/utils.h>
 
diff --git a/src/topi/transform.cc b/src/topi/transform.cc
index 62e9783b4d..433a641ad0 100644
--- a/src/topi/transform.cc
+++ b/src/topi/transform.cc
@@ -22,7 +22,7 @@
  * \file transform.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/topi/einsum.h>
 #include <tvm/topi/transform.h>
 #include <tvm/topi/utils.h>
diff --git a/src/topi/utils.cc b/src/topi/utils.cc
index de4b9d0a54..6e5c997739 100644
--- a/src/topi/utils.cc
+++ b/src/topi/utils.cc
@@ -23,7 +23,7 @@
  */
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/topi/detail/tensor_utils.h>
 
 namespace tvm {
diff --git a/src/topi/vision.cc b/src/topi/vision.cc
index 36388076e9..8e6a5f4cbc 100644
--- a/src/topi/vision.cc
+++ b/src/topi/vision.cc
@@ -22,7 +22,7 @@
  * \file vision.cc
  */
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/topi/vision/reorg.h>
 
 namespace tvm {
diff --git a/tests/cpp-runtime/hexagon/run_all_tests.cc b/tests/cpp-runtime/hexagon/run_all_tests.cc
index f84dd74dbf..e6793b5301 100644
--- a/tests/cpp-runtime/hexagon/run_all_tests.cc
+++ b/tests/cpp-runtime/hexagon/run_all_tests.cc
@@ -19,7 +19,7 @@
 
 #include <gtest/gtest.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <string>
 #include <vector>
diff --git a/tests/cpp-runtime/hexagon/run_unit_tests.cc b/tests/cpp-runtime/hexagon/run_unit_tests.cc
index ebcbd49e97..03f786b58b 100644
--- a/tests/cpp-runtime/hexagon/run_unit_tests.cc
+++ b/tests/cpp-runtime/hexagon/run_unit_tests.cc
@@ -19,7 +19,7 @@
 
 #include <gtest/gtest.h>
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 
 #include <string>
 #include <vector>
diff --git a/web/emcc/tvmjs_support.cc b/web/emcc/tvmjs_support.cc
index 8fecaad19d..4cf45075ed 100644
--- a/web/emcc/tvmjs_support.cc
+++ b/web/emcc/tvmjs_support.cc
@@ -32,7 +32,7 @@
 #define DMLC_USE_LOGGING_LIBRARY <tvm/runtime/logging.h>
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/device_api.h>
 
 #include "../../src/runtime/rpc/rpc_local_session.h"
diff --git a/web/emcc/wasm_runtime.cc b/web/emcc/wasm_runtime.cc
index 22c38effef..ae8bea5524 100644
--- a/web/emcc/wasm_runtime.cc
+++ b/web/emcc/wasm_runtime.cc
@@ -30,7 +30,7 @@
 #define TVM_FFI_ALWAYS_LOG_BEFORE_THROW 1
 #define DMLC_USE_LOGGING_LIBRARY <tvm/runtime/logging.h>
 
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/logging.h>
 
 #include "src/runtime/contrib/sort/sort.cc"
diff --git a/web/emcc/webgpu_runtime.cc b/web/emcc/webgpu_runtime.cc
index 72ea65ca85..7e9f7c0f45 100644
--- a/web/emcc/webgpu_runtime.cc
+++ b/web/emcc/webgpu_runtime.cc
@@ -30,7 +30,7 @@
 #define DMLC_USE_LOGGING_LIBRARY <tvm/runtime/logging.h>
 
 #include <tvm/ffi/function.h>
-#include <tvm/ffi/reflection/reflection.h>
+#include <tvm/ffi/reflection/registry.h>
 #include <tvm/runtime/device_api.h>
 
 #include <iostream>