tvm
Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs | Enumerations | Functions | Variables
expr.h File Reference

Base expr nodes in TVM. More...

#include <tvm/ffi/big_int.h>
#include <tvm/ffi/dtype.h>
#include <tvm/ffi/error.h>
#include <tvm/ffi/extra/dataclass.h>
#include <tvm/ffi/reflection/registry.h>
#include <tvm/ffi/string.h>
#include <tvm/ir/attrs.h>
#include <tvm/ir/base_expr.h>
#include <tvm/ir/cow.h>
#include <tvm/ir/location.h>
#include <algorithm>
#include <cstdint>
#include <functional>
#include <limits>
#include <optional>
#include <ostream>
#include <string>
#include <utility>
Include dependency graph for expr.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  tvm::ConstantNode
 Base node for literal constants. More...
 
class  tvm::Constant
 Managed reference to a literal constant. More...
 
class  tvm::GenericConstNode
 A constant whose payload is separate from its expression type. More...
 
class  tvm::GenericConst
 Managed reference to a generic constant. More...
 
class  tvm::StringImmNode
 A string literal with shared semantic StringType. More...
 
class  tvm::StringImm
 Managed reference to a string literal. More...
 
class  tvm::DataTypeImmNode
 A data type literal with AnyType as its expression type. More...
 
class  tvm::DataTypeImm
 Managed reference to a data type literal. More...
 
class  tvm::IntImmNode
 Constant integer literals in the program. More...
 
class  tvm::IntImm
 Managed reference class to IntImmNode. More...
 
class  tvm::FloatImmNode
 Constant floating point literals in the program. More...
 
class  tvm::FloatImm
 Managed reference class to FloatImmNode. More...
 
struct  tvm::ffi::TypeTraits< IntImm >
 
struct  tvm::ffi::TypeTraits< FloatImm >
 
struct  tvm::ffi::TypeTraits< tvm::StringImm >
 
struct  tvm::ffi::TypeTraits< PrimExpr >
 
struct  tvm::ffi::TypeTraits< IntExpr >
 
struct  tvm::ffi::TypeTraits< Expr >
 
class  tvm::TupleNode
 Tuple container. More...
 
class  tvm::Tuple
 Managed reference to TupleNode. More...
 
class  tvm::TupleGetItemNode
 Get the index-th field out of a tuple. More...
 
class  tvm::TupleGetItem
 Managed reference to TupleGetItemNode. More...
 
class  tvm::TensorLoadNode
 Load a value from an indexed expression source. More...
 
class  tvm::TensorLoad
 Managed reference to TensorLoadNode. More...
 
class  tvm::VarNode
 A local variable in the IR. More...
 
class  tvm::Var
 Managed reference to VarNode. More...
 
class  tvm::PrimVar
 Checked scalar view over a VarNode. More...
 
class  tvm::LambdaExprNode
 A typed staging expression representing a lambda computation. More...
 
class  tvm::LambdaExpr
 Managed reference to a typed staging lambda. More...
 
class  tvm::GlobalVarNode
 Global variable that lives in the top-level module. More...
 
class  tvm::GlobalVar
 Managed reference to GlobalVarNode. More...
 
class  tvm::CallNode
 Call corresponds to callable invocation. More...
 
class  tvm::Call
 Managed reference to CallNode. More...
 
class  tvm::RangeNode
 range over one dimension More...
 
class  tvm::Range
 Range container
More...
 
class  tvm::TensorRegionNode
 A region of an indexed expression source. More...
 
class  tvm::TensorRegion
 Managed reference to TensorRegionNode. More...
 
struct  tvm::ffi::TypeTraits< TensorRegion >
 
struct  tvm::ffi::TypeTraits< PrimVar >
 

Namespaces

namespace  tvm
 An object that builds and maintains block scope and StmtSref mapping for Dependence analysis.
 
namespace  tvm::ffi
 
namespace  tvm::op_attr
 
namespace  tvm::type_attr
 

Typedefs

using tvm::TCallEffectKind = int64_t
 Use integer to record the kind.
 

Enumerations

enum class  tvm::CallEffectKind : int {
  tvm::kExprAnnotation = 0 , tvm::kPure = 1 , tvm::kReadState = 2 , tvm::kUpdateState = 3 ,
  tvm::kOpaque = kUpdateState , tvm::kSpecialCallArg = 4 , tvm::kEmbedInfo = 5 , tvm::kControlJump = 6
}
 The effect type of the call. More...
 

Functions

TVM_TIRX_DLL PrimExpr tvm::operator+ (PrimExpr a, PrimExpr b)
 add operator
 
TVM_TIRX_DLL PrimExpr tvm::operator- (PrimExpr a, PrimExpr b)
 subtraction operator
 
TVM_TIRX_DLL PrimExpr tvm::operator- (PrimExpr a)
 negation.
 
TVM_TIRX_DLL PrimExpr tvm::operator* (PrimExpr a, PrimExpr b)
 multiplication operator
 
TVM_TIRX_DLL PrimExpr tvm::operator/ (PrimExpr a, PrimExpr b)
 division operator
 
TVM_TIRX_DLL PrimExpr tvm::operator<< (PrimExpr a, PrimExpr b)
 left shift operator
 
TVM_TIRX_DLL PrimExpr tvm::operator>> (PrimExpr a, PrimExpr b)
 right shift operator
 
TVM_TIRX_DLL PrimExpr tvm::operator> (PrimExpr a, PrimExpr b)
 greater
 
TVM_TIRX_DLL PrimExpr tvm::operator>= (PrimExpr a, PrimExpr b)
 greater_equal
 
TVM_TIRX_DLL PrimExpr tvm::operator< (PrimExpr a, PrimExpr b)
 less
 
TVM_TIRX_DLL PrimExpr tvm::operator<= (PrimExpr a, PrimExpr b)
 less_equal
 
TVM_TIRX_DLL PrimExpr tvm::operator== (PrimExpr a, PrimExpr b)
 equal
 
TVM_TIRX_DLL PrimExpr tvm::operator!= (PrimExpr a, PrimExpr b)
 not_equal
 
TVM_TIRX_DLL PrimExpr tvm::operator&& (PrimExpr a, PrimExpr b)
 and
 
TVM_TIRX_DLL PrimExpr tvm::operator|| (PrimExpr a, PrimExpr b)
 or
 
TVM_TIRX_DLL PrimExpr tvm::operator! (PrimExpr a)
 not
 
TVM_TIRX_DLL PrimExpr tvm::operator& (PrimExpr a, PrimExpr b)
 take bitwise and of two values
 
TVM_TIRX_DLL PrimExpr tvm::operator| (PrimExpr a, PrimExpr b)
 take bitwise or of two values
 
TVM_TIRX_DLL PrimExpr tvm::operator^ (PrimExpr a, PrimExpr b)
 take bitwise xor of two values
 
TVM_TIRX_DLL PrimExpr tvm::operator~ (PrimExpr a)
 take bitwise negation of two values
 
std::ostream & tvm::operator<< (std::ostream &os, CallEffectKind side_effect)
 
TVM_TIRX_DLL CallEffectKind tvm::SideEffect (const Expr &expr)
 Analyze the runtime effects of an expression.
 

Variables

template<>
constexpr bool tvm::ffi::use_default_type_traits_v< IntImm > = false
 
template<>
constexpr bool tvm::ffi::use_default_type_traits_v< FloatImm > = false
 
template<>
constexpr bool tvm::ffi::use_default_type_traits_v< PrimExpr > = false
 
template<>
constexpr bool tvm::ffi::use_default_type_traits_v< IntExpr > = false
 
template<>
constexpr bool tvm::ffi::use_default_type_traits_v< Expr > = false
 
template<>
constexpr bool tvm::ffi::use_default_type_traits_v< TensorRegion > = false
 
template<>
constexpr bool tvm::ffi::use_default_type_traits_v< PrimVar > = false
 
template<>
constexpr bool tvm::ffi::object_ref_contains_v< PrimExpr, IntImmNode > = true
 
template<>
constexpr bool tvm::ffi::object_ref_contains_v< PrimExpr, FloatImmNode > = true
 
template<>
constexpr bool tvm::ffi::object_ref_contains_v< PrimExpr, TensorLoadNode > = true
 
constexpr const char * tvm::op_attr::kCallEffectKind = "TCallEffectKind"
 
constexpr const char * tvm::type_attr::kSubscriptExprRealize = "__subscript_expr_realize__"
 

Detailed Description

Base expr nodes in TVM.