Halide 22.0.0 Halide compiler and libraries

Namespace List
Here is a list of all namespaces with brief descriptions:
[detail level 1 2 3 4 5 6]

▼N cmdline |
►N detail |
C is_same |
C is_same< T, T > |
C lexical_cast_t |
C lexical_cast_t< std::string, Source, false > |
C lexical_cast_t< Target, Source, true > |
C lexical_cast_t< Target, std::string, false > |
C default_reader |
C oneof_reader |
C parser |
C range_reader |
▼N Halide | This file defines the class FunctionDAG, which is our representation of a Halide pipeline, and contains methods to using Halide's bounds tools to query properties of it
►N BoundaryConditions | Namespace to hold functions for imposing boundary conditions on Halide Funcs
N Internal |
N ConciseCasts |
►N Internal |
►N Autoscheduler |
C Adams2019Params |
C Anderson2021Params |
►C BoundContents |
C Layout |
C Cache |
C CachingOptions |
C ExprBranching |
C Filter |
►C FunctionDAG |
►C Edge |
C BoundInfo |
►C Node |
C Loop |
C RegionComputedInfo |
C Stage |
C SymbolicInterval |
C GlobalAccessAccumulator |
C GPULoopInfo |
C LoadJacobian |
C LocalAccessAccumulator |
►C LoopNest |
C FeatureIntermediates |
C Sites |
►C StageScheduleState |
C FuncVar |
C LoopNestParser |
C MemInfo |
C MemTraits |
C MemTraits< GlobalMem > |
C MemTraits< LocalMem > |
C MemTraits< SharedMem > |
C NoOpMutator |
C OptionalRational |
C ParamParser |
C ScopedStatistic |
C ScopedTimer |
►C SearchSpace |
C ParallelTileOption |
C SearchSpaceOptions |
C SharedAccessAccumulator |
C Span |
►C State |
C FeatureLoopNestMutator |
C StateQueue |
C Statistics |
C Strides |
C ThreadInfo |
C ThreadTileOption |
C Timer |
►N Elf |
C iterator_range |
C Linker | Base class for a target architecture to implement the target specific aspects of linking
C Object | Holds all of the relevant sections and symbols for an object
C Relocation | Describes a relocation to be applied to an offset of a section in an Object
C Section | Describes a section of an object file
C Symbol | Describes a symbol
N GeneratorMinMax |
N IntegerDivision |
►N IRMatcher | An alternative template-metaprogramming approach to expression matching
C bindings |
►C BinOp |
C pattern_tag |
►C BroadcastOp |
C pattern_tag |
►C CanProve |
C pattern_tag |
►C CastOp |
C pattern_tag |
►C CmpOp |
C pattern_tag |
►C enable_if_pattern |
C type |
►C Fold |
C pattern_tag |
►C IntLiteral |
C pattern_tag |
►C Intrin |
C pattern_tag |
►C IsConst |
C pattern_tag |
►C IsFloat |
C pattern_tag |
►C IsInt |
C pattern_tag |
►C IsMaxValue |
C pattern_tag |
►C IsMinValue |
C pattern_tag |
►C IsScalar |
C pattern_tag |
►C IsUInt |
C pattern_tag |
►C LanesOf |
C pattern_tag |
C MatcherState | To save stack space, the matcher objects are largely stateless and immutable
►C NegateOp |
C pattern_tag |
►C NotOp |
C pattern_tag |
C OptionalIntrinType |
C OptionalIntrinType< Call::saturating_cast > |
►C Overflow |
C pattern_tag |
►C Overflows |
C pattern_tag |
►C RampOp |
C pattern_tag |
C Rewriter |
►C SelectOp |
C pattern_tag |
►C SimplifiedNegateOp |
C pattern_tag |
►C SliceOp |
C pattern_tag |
►C SpecificExpr |
C pattern_tag |
►C VectorReduceOp |
C pattern_tag |
►C WidenOp |
C pattern_tag |
►C Wild |
C pattern_tag |
►C WildConst |
C pattern_tag |
►C WildConstFloat |
C pattern_tag |
►C WildConstInt |
C pattern_tag |
►C WildConstUInt |
C pattern_tag |
►N Test |
C Sharder |
►C AbstractGenerator | AbstractGenerator is an ABC that defines the API a Generator must provide to work with the existing Generator infrastructure (GenGen, RunGen, execute_generator(), Generator Stubs)
C ArgInfo | ArgInfo is a struct to contain name-and-type information for the inputs and outputs to the Pipeline that build_pipeline() will return
C Acquire |
C Add | The sum of two expressions
C all_are_convertible |
C all_are_printable_args |
C all_ints_and_optional_name |
C all_ints_and_optional_name< First, Rest... > |
C all_ints_and_optional_name< T > |
C all_ints_and_optional_name<> |
C Allocate | Allocate a scratch area called with the given name, type, and size
C And | Logical and - are both expressions true
C Ansi |
C ApplySplitResult |
C aslog |
C AssertStmt | If the 'condition' is false, then evaluate and return the message, which should be a call to an error function
►C AssociativeOp | Represent the equivalent associative op of an update definition
C Replacement |
C AssociativePattern | Represent an associative op with its identity
C Atomic | Lock all the Store nodes in the body statement
C BaseExprNode | A base class for expression nodes
C BaseStmtNode | IR nodes are split into expressions and statements
C Block | A sequence of statements to be executed in-order
C Bound | A bound on a loop, typically from Func::bound
C Box | Represents the bounds of a region of arbitrary dimension
C Broadcast | A vector with 'lanes' elements, in which every element is 'value'
C BufferBuilder | A builder to help create Exprs representing halide_buffer_t structs (e.g
C BufferContents |
C BufferInfo | Find all calls to image buffers and parameters in the function
C Call | A function call
C Cast | The actual IR nodes begin here
►C Closure | A helper class to manage closures
C Buffer | Information about a buffer reference from a closure
►C CodeGen_C | This class emits C++ code equivalent to a halide Stmt
C Allocation |
C CodeGen_GPU_C | A base class for GPU backends that require C-like shader output
C CodeGen_GPU_Dev | A code generator that emits GPU code from a given Halide stmt
►C CodeGen_LLVM | A code generator abstract base class
C AllEnabledMask | Type indicating mask to use is all true – all lanes enabled
C Intrinsic | Description of an intrinsic function overload
C NoMask | Type indicating an intrinsic does not take a mask
C ScopedFastMath | If any_strict_float is true, sets fast math flags for the lifetime of this object, then sets them to strict on destruction
C VPArg | Support for generating LLVM vector predication intrinsics ("@llvm.vp.*" and "@llvm.experimental.vp.*")
C VPResultType |
►C CodeGen_Posix | A code generator that emits posix code from a given Halide stmt
C Allocation | A struct describing heap or stack allocations
C CodeGen_PyTorch | This class emits C++ code to wrap a Halide pipeline so that it can be used as a C++ extension operator in PyTorch
C CompilerLogger |
C cond |
C ConstantInterval | A class to represent ranges of integers
C Convert |
C Cost |
C Definition | A Function definition which can either represent a init or an update definition
C DeviceArgument | A DeviceArgument looks similar to an Halide::Argument, but has behavioral differences that make it specific to the GPU pipeline; the fact that neither is-a nor has-a Halide::Argument is deliberate
C Dim | The Dim struct represents one loop in the schedule's representation of a loop nest
C Dimension |
C Div | The ratio of two expressions
C EQ | Is the first expression equal to the second
C ErrorReport |
C Evaluate | Evaluate and discard an expression, presumably because it has some side-effect
C ExecuteGeneratorArgs | ExecuteGeneratorArgs is the set of arguments to execute_generator()
C ExprNode | We use the "curiously recurring template pattern" to avoid duplicated code in the IR Nodes
C ExprUsesVars |
C FeatureIntermediates |
C FileStat |
C FindAllCalls | Visitor for keeping track of functions that are directly called and the arguments with which they are called
C FloatImm | Floating point constants
C For | A for loop
C Fork | A pair of statements executed concurrently
C Free | Free the resources associated with the given buffer
C FuncSchedule | A schedule for a Function of a Halide pipeline
►C Function | A reference-counted handle to Halide's internal representation of a function
C Compare | This lets you use a Function as a key in a map of the form map<Function, Foo, Function::Compare>
C FunctionPtr | A possibly-weak pointer to a Halide function
C FusedPair | This represents two stages with fused loop nests from outermost to a specific loop level
C GE | Is the first expression greater than or equal to the second
C GeneratorBase |
C GeneratorFactoryProvider | GeneratorFactoryProvider provides a way to customize the Generators that are visible to generate_filter_main (which otherwise would just look at the global registry of C++ Generators)
C GeneratorInput_Arithmetic |
C GeneratorInput_Buffer |
C GeneratorInput_DynamicScalar |
C GeneratorInput_Func |
C GeneratorInput_Scalar |
C GeneratorInputBase |
C GeneratorInputImpl |
C GeneratorOutput_Arithmetic |
C GeneratorOutput_Buffer |
C GeneratorOutput_Func |
C GeneratorOutputBase |
C GeneratorOutputImpl |
C GeneratorParam_Arithmetic |
C GeneratorParam_AutoSchedulerParams |
C GeneratorParam_Bool |
C GeneratorParam_Enum |
C GeneratorParam_LoopLevel |
C GeneratorParam_String |
C GeneratorParam_Synthetic |
C GeneratorParam_Target |
C GeneratorParam_Type |
C GeneratorParamBase |
C GeneratorParamImpl |
C GeneratorParamInfo |
C GeneratorRegistry |
C GIOBase | GIOBase is the base class for all GeneratorInput<> and GeneratorOutput<> instantiations; it is not part of the public API and should never be used directly by user code
C GPUCompilationCache |
C GpuObjectLifetimeTracker |
C GT | Is the first expression greater than the second
C HalideBufferStaticTypeAndDims |
C HalideBufferStaticTypeAndDims<::Halide::Buffer< T, Dims > > |
C HalideBufferStaticTypeAndDims<::Halide::Runtime::Buffer< T, Dims > > |
C has_static_halide_type_method |
C has_static_halide_type_method< T2, type_sink_t< decltype(T2::static_halide_type())> > |
C HexagonAlignmentAnalyzer |
C HoistedStorage | Represents a location where storage will be hoisted to for a Func / Realize node with a given name
C HostClosure | A Closure modified to inspect GPU-specific memory accesses, and produce a vector of DeviceArgument objects
C IfThenElse | An if-then-else block
C Indentation |
C InferredArgument | An inferred argument
C Interval | A class to represent ranges of Exprs
C IntImm | Integer constants
C IntrusivePtr | Intrusive shared pointers have a reference count (a RefCount object) stored in the class itself
C IRDeepCompare | A compare struct built around less_than, for use as the comparison object in a std::map or std::set
C IRGraphDeepCompare | A compare struct built around graph_less_than, for use as the comparison object in a std::map or std::set
C IRGraphMutator | A mutator that caches and reapplies previously done mutations so that it can handle graphs of IR that have not had CSE done to them
C IRGraphVisitor | A base class for algorithms that walk recursively over the IR without visiting the same node twice
C IRHandle | IR nodes are passed around opaque handles to them
C IRMutator | A base class for passes over the IR which modify it (e.g
C IRNode | The abstract base classes for a node in the Halide IR
C IRPrinter | An IRVisitor that emits IR to the given output stream in a human readable form
C IRVisitor | A base class for algorithms that need to recursively walk over the IR
C is_printable_arg |
C IsHalideBuffer |
C IsHalideBuffer< const halide_buffer_t * > |
C IsHalideBuffer< halide_buffer_t * > |
C IsHalideBuffer<::Halide::Buffer< T, Dims > > |
C IsHalideBuffer<::Halide::Runtime::Buffer< T, Dims > > |
C IsRoundtrippable |
C JITCache |
C JITErrorBuffer |
C JITFuncCallContext |
►C JITModule |
C Symbol |
C JITSharedRuntime |
C JSONCompilerLogger | JSONCompilerLogger is a basic implementation of the CompilerLogger interface that saves logged data, then logs it all in JSON format in emit_to_stream()
C LambdaMutator | A lambda-based IR mutator that accepts multiple lambdas for different node types
C LambdaMutatorGeneric | A lambda-based IR mutator that accepts multiple lambdas for overloading the base mutate() method
C LambdaOverloads |
C LambdaVisitor | A lambda-based IR visitor that accepts multiple lambdas for different node types
C LE | Is the first expression less than or equal to the second
C Let | A let expression, like you might find in a functional language
C LetStmt | The statement form of a let node
C Load | Load a value from a named symbol if predicate is true
C LoweredArgument | Definition of an argument to a LoweredFunc
C LoweredFunc | Definition of a lowered function
C LT | Is the first expression less than the second
C Max | The greater of two values
C meta_and |
C meta_and< T1, Args... > |
C meta_or |
C meta_or< T1, Args... > |
C Min | The lesser of two values
C Mod | The remainder of a / b
C ModulusRemainder | The result of modulus_remainder analysis
C Mul | The product of two expressions
C NE | Is the first expression not equal to the second
C NoRealizations |
C NoRealizations< T, Args... > |
C NoRealizations<> |
C Not | Logical not - true if the expression false
C ObjectInstanceRegistry |
C Or | Logical or - is at least one of the expression true
C OutputInfo |
C PipelineFeatures |
C Prefetch | Represent a multi-dimensional region of a Func or an ImageParam that needs to be prefetched
C PrefetchDirective |
C PrintSpan | Allow easily printing the contents of containers, or std::vector-like containers, in debug output
C PrintSpanLn | Allow easily printing the contents of spans, or std::vector-like spans, in debug output
C ProducerConsumer | This node is a helpful annotation to do with permissions
C Provide | This defines the value of a function at a multi-dimensional location
C PythonExtensionGen |
C Ramp | A linear ramp vector node
C Realize | Allocate a multi-dimensional buffer of the given type and size
►C ReductionDomain | A reference-counted handle on a reduction domain, which is just a vector of ReductionVariable
C Compare | This lets you use a ReductionDomain as a key in a map of the form map<ReductionDomain, Foo, ReductionDomain::Compare>
►C ReductionVariable | A single named dimension of a reduction domain
C Compare | This lets you use a ReductionVariable as a key in a map of the form map<ReductionVariable, Foo, ReductionVariable::Compare>
C ReductionVariableInfo | Return a list of reduction variables the expression or tuple depends on
C RefCount | A class representing a reference count to be used with IntrusivePtr
C RegionCosts | Auto scheduling component which is used to assign costs for computing a region of a function or one of its stages
C RegisterGenerator |
C Reinterpret | Reinterpret value as another type, without affecting any of the bits (on little-endian systems)
C ReportBase |
C reverse_adaptor |
C ScheduleFeatures |
►C Scope | A common pattern when traversing Halide IR is that you need to keep track of stuff when you find a Let or a LetStmt, and that it should hide previous values with the same name until you leave the Let or LetStmt nodes This class helps with that
C const_iterator | Iterate through the scope
C PushToken |
C ScopedBinding | Helper class for pushing/popping Scope<> values, to allow for early-exit in Visitor/Mutators that preserves correctness
C ScopedBinding< void > |
C ScopedValue | Helper class for saving/restoring variable values on the stack, to allow for early-exit that preserves correctness
C Select | A ternary operator
C select_type |
C select_type< First > |
C Shuffle | Construct a new vector by taking elements from another sequence of vectors
►C Simplify |
►C ExprInfo |
C BitsKnown |
C ScopedFact |
C VarInfo |
C SmallStack | A stack which can store one item very efficiently
C SmallStack< void > |
C SolverResult |
C Specialization |
C Split |
C StageSchedule | A schedule for a single stage of a Halide pipeline
C StaticCast |
►C Stmt | A reference-counted handle to a statement node
C Compare | This lets you use a Stmt as a key in a map of the form map<Stmt, Foo, Stmt::Compare>
C StmtNode |
C StorageDim | Properties of one axis of the storage of a Func
C Store | Store a 'value' to the buffer called 'name' at a given 'index' if 'predicate' is true
C StringImm | String constants
C StubInput |
C StubInputBuffer | StubInputBuffer is the placeholder that a Stub uses when it requires a Buffer for an input (rather than merely a Func or Expr)
C StubOutputBuffer | StubOutputBuffer is the placeholder that a Stub uses when it requires a Buffer for an output (rather than merely a Func)
C StubOutputBufferBase |
C Sub | The difference of two expressions
C TemporaryFile | A simple utility class that creates a temporary file in its ctor and deletes that file in its dtor; this is useful for temporary files that you want to ensure are deleted when exiting a certain scope
C UIntImm | Unsigned integer constants
C Variable | A named variable
C VariadicVisitor | A visitor/mutator capable of passing arbitrary arguments to the visit methods using CRTP and returning any types from them
C VectorReduce | Horizontally reduce a vector to a scalar or narrower vector using the given commutative and associative binary operator
C WarningReport |
C WasmModule | Handle to compiled wasm code which can be called later
C Weights |
N PythonBindings |
►N PyTorch |
C UserContext |
►N Runtime |
►N Internal |
N Constants |
►N Cuda |
C CUDA_MEMCPY3D_st |
N Metal |
N Qurt |
►N Synchronization |
C broadcast_parking_control |
C bucket_pair |
C fast_cond |
C fast_mutex |
C hash_bucket |
C hash_table |
C mutex_parking_control |
C parking_control |
C queue_data |
C signal_parking_control |
C spin_control |
C validate_action |
C wait_parking_control |
C word_lock |
C word_lock_queue_data |
►N Vulkan |
C VulkanCompilationCacheEntry |
C VulkanCompiledShaderModule |
C VulkanContext |
C VulkanDispatchData |
C VulkanMemoryAllocator | Vulkan Memory Allocator class interface for managing large memory requests stored as contiguous blocks of memory, which are then sub-allocated into smaller regions of memory to avoid the excessive cost of vkAllocate and the limited number of available allocation calls through the API
C VulkanMemoryConfig |
C VulkanShaderBinding |
C VulkanSharedMemoryAllocation |
C VulkanSpecializationConstant |
C VulkanWorkgroupSizeBinding |
►C BlockAllocator | Allocator class interface for managing large contiguous blocks of memory, which are then sub-allocated into smaller regions of memory
C Config |
C MemoryAllocators |
C BlockRegion |
C BlockResource |
►C BlockStorage |
C Config |
C CacheEntry |
C CpuFeatures |
C DefaultAllocatorFns |
C device_copy |
C halide_cond_with_spinning |
C HalideSystemAllocatorFns |
C HashMap |
►C LinkedList |
C EntryType |
►C MemoryArena |
C Config |
C MemoryBlock |
C MemoryBlockAllocatorFns |
C MemoryProperties |
C MemoryRange |
C MemoryRegion |
C MemoryRegionAllocatorFns |
C MemoryRequest |
C PointerTable |
►C PrinterBase |
C Float16Bits |
►C RegionAllocator | Allocator class interface for sub-allocating a contiguous memory block into smaller regions of memory
C MemoryAllocators |
C ScopedMutexLock |
C ScopedSpinLock |
C StringStorage |
C StringTable |
C StringUtils |
C SystemMemoryAllocatorFns |
C THashMap |
C work |
C work_queue_t |
C AllInts |
C AllInts< double, Args... > |
C AllInts< float, Args... > |
C AllInts< T, Args... > |
C AllInts<> |
C AllocationHeader | A struct acting as a header for allocations owned by the Buffer class itself
►C Buffer | A templated Buffer class that wraps halide_buffer_t and adds functionality
►C Dimension | Read-only access to the shape
C iterator | An iterator class, so that you can iterate over coordinates in a dimensions using a range-based for loop
C DeviceRefCount | A similar struct for managing device allocations
C Argument | A struct representing an argument to a halide-generated function
C ArgumentEstimates |
C AutoschedulerParams | Special the Autoscheduler to be used (if any), along with arbitrary additional arguments specific to the given Autoscheduler
C AutoSchedulerResults |
C bfloat16_t | Class that provides a type that implements half precision floating point using the bfloat16 format
C Buffer | A Halide::Buffer is a named shared reference to a Halide::Runtime::Buffer
C BufferConstraint |
C Callable |
C CompileError | An error that occurs while compiling a Halide pipeline that Halide attributes to a user error
C CompileTimeErrorReporter | CompileTimeErrorReporter is used at compile time (not runtime) when an error or warning is generated by Halide
C CostModel |
C CustomLoweringPass | A custom lowering pass
C DefaultCostModel |
C Derivative | Helper structure storing the adjoints Func
C Error | A base class for Halide errors
C EvictionKey | Helper class for identifying purpose of an Expr passed to memoize
C Expr | A fragment of Halide syntax
C ExprCompare | This lets you use an Expr as a key in a map of the form map<Expr, Foo, ExprCompare>
C ExternCFunction |
C ExternFuncArgument | An argument to an extern-defined Func
C ExternSignature |
C float16_t | Class that provides a type that implements half precision floating point (IEEE754 2008 binary16) in software
C Func | A halide function
C FuncRef | A fragment of front-end syntax of the form f(x, y, z), where x, y, z are Vars or Exprs
C FuncTupleElementRef | A fragment of front-end syntax of the form f(x, y, z)[index], where x, y, z are Vars or Exprs
C FuseLoopLevel |
C Generator |
C GeneratorContext | GeneratorContext is a class that is used when using Generators (or Stubs) directly; it is used to allow the outer context (typically, either a Generator or "top-level" code) to specify certain information to the inner context to ensure that inner and outer Generators are compiled in a compatible way
C GeneratorInput |
C GeneratorOutput |
C GeneratorParam | GeneratorParam is a templated class that can be used to modify the behavior of the Generator at code-generation time
C ImageParam | An Image parameter to a halide pipeline
C ImplicitVar |
C InternalError | An error that occurs while compiling a Halide pipeline that Halide attributes to an internal compiler bug, or to an invalid use of Halide's internals
C JITExtern |
C JITHandlers | A set of custom overrides of runtime functions
C JITUserContext | A context to be passed to Pipeline::realize
C LoopLevel | A reference to a site in a Halide statement at the top of the body of a particular for loop
C Module | A halide module
C NamesInterface |
C OutputImageParam | A handle on the output buffer of a pipeline
C Param | A scalar parameter to a halide pipeline
C Parameter | A reference-counted handle to a parameter to a halide pipeline
►C Pipeline | A class representing a Halide pipeline
C RealizationArg |
C Range | A single-dimensional span
C RDom | A multi-dimensional domain over which to iterate
C Realization | A Realization is a vector of references to existing Buffer objects
C RuntimeError | An error that occurs while running a JIT-compiled Halide pipeline
C RVar | A reduction variable represents a single dimension of a reduction domain (RDom)
C SimdOpCheckTest |
C Stage | A single definition of a Func
C Target | A struct representing a target machine and os to generate code for
C Task |
C TestResult |
C Tuple | Create a small array of Exprs for defining and calling functions with multiple outputs
C Type | Types in the halide type system
C Var | A Halide variable, to be used when defining functions
C VarOrRVar | A class that can represent Vars or RVars
N halide_register_generator |
▼N llvm |
C IRBuilder |
N Message |