tvm
Loading...
Searching...
No Matches
bound.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 */
23#ifndef TVM_ARITH_BOUND_H_
24#define TVM_ARITH_BOUND_H_
25
26#include <tvm/arith/int_set.h>
27#include <tvm/ir/expr.h>
28#include <tvm/ir/prim/expr.h>
29#include <tvm/tirx/stmt.h>
30
31#include <unordered_map>
32
33namespace tvm {
34namespace arith {
35
36using tirx::Region;
37using tirx::Stmt;
38using tirx::Var;
39using tirx::VarNode;
40
56IntSet DeduceBound(PrimExpr v, PrimExpr cond, const ffi::Map<Var, IntSet>& hint_map,
57 const ffi::Map<Var, IntSet>& relax_map);
69 const std::unordered_map<const VarNode*, IntSet>& hint_map,
70 const std::unordered_map<const VarNode*, IntSet>& relax_map);
71
80Region DomainTouched(const Stmt& body, const tirx::BufferVar& buffer, bool consider_loads,
81 bool consider_stores);
82
83} // namespace arith
84} // namespace tvm
85#endif // TVM_ARITH_BOUND_H_
Typed reference/view over any Expr whose ExprNode::ty is PrimType.
Definition base_expr.h:401
RAII wrapper function to enter and exit a context object similar to python's with syntax.
Definition with_context.h:59
Managed reference to IntSetNode.
Definition int_set.h:68
Checked zero-state view over an ordinary VarNode with BufferType.
Definition buffer.h:179
Container of all statements.
Definition stmt.h:67
Integer set.
Base expr nodes in TVM.
TIR expressions.
IntSet DeduceBound(PrimExpr v, PrimExpr cond, const ffi::Map< Var, IntSet > &hint_map, const ffi::Map< Var, IntSet > &relax_map)
Deduce the bound of the target variable in a expression, give the domain of each variables....
Region DomainTouched(const Stmt &body, const tirx::BufferVar &buffer, bool consider_loads, bool consider_stores)
Infer a regular domain that covers all the calls or provides within the given statement.
tvm::Var Var
Definition var.h:38
tvm::VarNode VarNode
Definition var.h:37
ffi::Array< Range > Region
Definition var.h:71
An object that builds and maintains block scope and StmtSref mapping for Dependence analysis.
Definition analyzer.h:40
TIR statements.