tvm
Loading...
Searching...
No Matches
frame.h
Go to the documentation of this file.
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
19#ifndef TVM_SCRIPT_IR_BUILDER_IR_FRAME_H_
20#define TVM_SCRIPT_IR_BUILDER_IR_FRAME_H_
21
22#include <tvm/ffi/reflection/registry.h>
23#include <tvm/ir/expr.h>
24#include <tvm/ir/function.h>
25#include <tvm/ir/module.h>
27
28#include <vector>
29
30namespace tvm {
31namespace script {
32namespace ir_builder {
33namespace ir {
34
41 public:
43 ffi::Map<ffi::String, GlobalVar> global_var_map;
48 ffi::Map<GlobalVar, BaseFunc> functions;
50 ffi::Map<ffi::String, Any> attrs;
52 ffi::Map<ffi::String, ffi::Array<GlobalInfo>> global_infos;
53
54 static void RegisterReflection() {
55 namespace refl = tvm::ffi::reflection;
56 refl::ObjectDef<IRModuleFrameNode>()
57 .def_ro("global_vars", &IRModuleFrameNode::global_var_map)
58 .def_ro("functions", &IRModuleFrameNode::functions)
59 .def_ro("attrs", &IRModuleFrameNode::attrs)
60 .def_ro("global_infos", &IRModuleFrameNode::global_infos);
61 }
62 TVM_FFI_DECLARE_OBJECT_INFO_FINAL("script.ir_builder.IRModuleFrame", IRModuleFrameNode,
64
65 public:
67};
68
75 public:
76 explicit IRModuleFrame(ffi::ObjectPtr<IRModuleFrameNode> data) : IRBuilderFrame(data) {
77 TVM_FFI_ICHECK(data != nullptr);
78 }
80};
81
82} // namespace ir
83} // namespace ir_builder
84} // namespace script
85} // namespace tvm
86
87#endif // TVM_SCRIPT_IR_BUILDER_IR_FRAME_H_
RAII wrapper function to enter and exit a context object similar to python's with syntax.
Definition with_context.h:59
Managed reference to an IRBuilderFrameNode.
Definition base.h:103
A frame that represents the IRModule frame with functions and global variables.
Definition frame.h:40
ffi::Map< GlobalVar, BaseFunc > functions
A map from GlobalVar to all global functions.
Definition frame.h:48
ffi::Map< ffi::String, Any > attrs
IRModule's attributes.
Definition frame.h:50
ffi::Map< ffi::String, ffi::Array< GlobalInfo > > global_infos
IRModule's global_infos.
Definition frame.h:52
TVM_FFI_DECLARE_OBJECT_INFO_FINAL("script.ir_builder.IRModuleFrame", IRModuleFrameNode, IRBuilderFrameNode)
ffi::Map< ffi::String, GlobalVar > global_var_map
A map from string names to global variables that ensures global uniqueness.
Definition frame.h:43
void ExitWithScope() final
The method called when exiting RAII scope.
static void RegisterReflection()
Definition frame.h:54
Managed reference to IRModuleFrameNode.
Definition frame.h:74
IRModuleFrame(ffi::ObjectPtr< IRModuleFrameNode > data)
Definition frame.h:76
TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE(IRModuleFrame, IRBuilderFrame, IRModuleFrameNode)
Base expr nodes in TVM.
Function nodes.
IRModule that holds the functions and type definitions.
An object that builds and maintains block scope and StmtSref mapping for Dependence analysis.
Definition analyzer.h:40