|
| | AbstractGenerator.h |
| | AddAtomicMutex.h |
| | Defines the lowering pass that insert mutex allocation code & locks for the atomic nodes that require mutex locks.
|
| | AddImageChecks.h |
| | Defines the lowering pass that adds the assertions that validate input and output buffers.
|
| | AddParameterChecks.h |
| | Defines the lowering pass that adds the assertions that validate scalar parameters.
|
| | AddSplitFactorChecks.h |
| | Defines the lowering pass that adds the assertions that all split factors are strictly positive.
|
| | AlignLoads.h |
| | Defines a lowering pass that rewrites unaligned loads into sequences of aligned loads.
|
| | AllocationBoundsInference.h |
| | Defines the lowering pass that determines how large internal allocations should be.
|
| | ApplySplit.h |
| | Defines method that returns a list of let stmts, substitutions, and predicates to be added given a split schedule.
|
| | Argument.h |
| | Defines a type used for expressing the type signature of a generated halide pipeline.
|
| | AssociativeOpsTable.h |
| | Tables listing associative operators and their identities.
|
| | Associativity.h |
| | Methods for extracting an associative operator from a Func's update definition if there is any and computing the identity of the associative operator.
|
| | AsyncProducers.h |
| | Defines the lowering pass that injects task parallelism for producers that are scheduled as async.
|
| | AutoScheduleUtils.h |
| | Defines util functions that used by auto scheduler.
|
| | BoundaryConditions.h |
| | Support for imposing boundary conditions on Halide::Funcs.
|
| | BoundConstantExtentLoops.h |
| | Defines the lowering pass that enforces a constant extent on all vectorized or unrolled loops.
|
| | Bounds.h |
| | Methods for computing the upper and lower bounds of an expression, and the regions of a function read or written by a statement.
|
| | BoundsInference.h |
| | Defines the bounds_inference lowering pass.
|
| | BoundSmallAllocations.h |
| | Defines the lowering pass that attempts to rewrite small allocations to have constant size.
|
| | Buffer.h |
| | Callable.h |
| | Defines the front-end class representing a jitted, callable Halide pipeline.
|
| | CanonicalizeGPUVars.h |
| | Defines the lowering pass that canonicalize the GPU var names over.
|
| | ClampUnsafeAccesses.h |
| | Defines the clamp_unsafe_accesses lowering pass.
|
| | Closure.h |
| | Provides Closure class.
|
| | CodeGen_C.h |
| | Defines an IRPrinter that emits C++ code equivalent to a halide stmt.
|
| | CodeGen_D3D12Compute_Dev.h |
| | Defines the code-generator for producing D3D12-compatible HLSL kernel code.
|
| | CodeGen_GPU_Dev.h |
| | Defines the code-generator interface for producing GPU device code.
|
| | CodeGen_Internal.h |
| | Defines functionality that's useful to multiple target-specific CodeGen paths, but shouldn't live in CodeGen_LLVM.h (because that's the front-end-facing interface to CodeGen).
|
| | CodeGen_LLVM.h |
| | Defines the base-class for all architecture-specific code generators that use llvm.
|
| | CodeGen_Metal_Dev.h |
| | Defines the code-generator for producing Apple Metal shading language kernel code.
|
| | CodeGen_OpenCL_Dev.h |
| | Defines the code-generator for producing OpenCL C kernel code.
|
| | CodeGen_Posix.h |
| | Defines a base-class for code-generators on posixy cpu platforms.
|
| | CodeGen_PTX_Dev.h |
| | Defines the code-generator for producing CUDA host code.
|
| | CodeGen_PyTorch.h |
| | Defines an IRPrinter that emits C++ code that:
|
| | CodeGen_Targets.h |
| | Provides constructors for code generators for various targets.
|
| | CodeGen_Vulkan_Dev.h |
| | Defines the code-generator for producing SPIR-V binary modules for use with the Vulkan runtime.
|
| | CodeGen_WebGPU_Dev.h |
| | Defines the code-generator for producing WebGPU shader code (WGSL)
|
| | CompilerLogger.h |
| | Defines an interface used to gather and log compile-time information, stats, etc for use in evaluating internal Halide compilation rules and efficiency.
|
| | ConciseCasts.h |
| | Defines concise cast and saturating cast operators to make it easier to read cast-heavy code.
|
| | ConstantBounds.h |
| | Methods for computing compile-time constant int64_t upper and lower bounds of an expression.
|
| | ConstantInterval.h |
| | Defines the ConstantInterval class, and operators on it.
|
| | CPlusPlusMangle.h |
| | A simple function to get a C++ mangled function name for a function.
|
| | CSE.h |
| | Defines a pass for introducing let expressions to wrap common sub-expressions.
|
| | Debug.h |
| | Defines functions for debug logging during code generation.
|
| | DebugArguments.h |
| | Defines a lowering pass that injects debug statements inside a LoweredFunc.
|
| | DebugToFile.h |
| | Defines the lowering pass that injects code at the end of every realization to dump functions to a file for debugging.
|
| | Definition.h |
| | Defines the internal representation of a halide function's definition and related classes.
|
| | Deinterleave.h |
| | Defines methods for splitting up a vector into the even lanes and the odd lanes.
|
| | Derivative.h |
| | Automatic differentiation.
|
| | DerivativeUtils.h |
| | Deserialization.h |
| | DeviceAPI.h |
| | Defines DeviceAPI.
|
| | DeviceArgument.h |
| | Defines helpers for passing arguments to separate devices, such as GPUs.
|
| | DeviceInterface.h |
| | Methods for managing device allocations when jitting.
|
| | Dimension.h |
| | Defines the Dimension utility class for Halide pipelines.
|
| | DistributeShifts.h |
| | A tool to distribute shifts as multiplies, useful for some backends.
|
| | EarlyFree.h |
| | Defines the lowering pass that injects markers just after the last use of each buffer so that they can potentially be freed earlier.
|
| | Elf.h |
| | EliminateBoolVectors.h |
| | Method to eliminate vectors of booleans from IR.
|
| | EmulateFloat16Math.h |
| | Methods for dealing with float16 arithmetic using float32 math, by casting back and forth with bit tricks.
|
| | Error.h |
| | Expr.h |
| | Base classes for Halide expressions (Halide::Expr) and statements (Halide::Internal::Stmt)
|
| | ExprUsesVar.h |
| | Defines a method to determine if an expression depends on some variables.
|
| | Extern.h |
| | Convenience macros that lift functions that take C types into functions that take and return exprs, and call the original function at runtime under the hood.
|
| | ExternFuncArgument.h |
| | Defines the internal representation of a halide ExternFuncArgument.
|
| | FastIntegerDivide.h |
| | FindCalls.h |
| | Defines analyses to extract the functions called a function.
|
| | FindIntrinsics.h |
| | Tools to replace common patterns with more readily recognizable intrinsics.
|
| | FlattenNestedRamps.h |
| | Defines the lowering pass that flattens nested ramps and broadcasts.
|
| | Float16.h |
| | Func.h |
| | Defines Func - the front-end handle on a halide function, and related classes.
|
| | Function.h |
| | Defines the internal representation of a halide function and related classes.
|
| | FunctionPtr.h |
| | FuseGPUThreadLoops.h |
| | Defines the lowering pass that fuses and normalizes loops over gpu threads to target CUDA, OpenCL, and Metal.
|
| | FuzzFloatStores.h |
| | Defines a lowering pass that messes with floating point stores.
|
| | Generator.h |
| | Generator is a class used to encapsulate the building of Funcs in user pipelines.
|
| | HexagonAlignment.h |
| | Class for analyzing Alignment of loads and stores for Hexagon.
|
| | HexagonOffload.h |
| | Defines a lowering pass to pull loops marked with the Hexagon device API to a separate module, and call them through the Hexagon host runtime module.
|
| | HexagonOptimize.h |
| | Tools for optimizing IR for Hexagon.
|
| | ImageParam.h |
| | Classes for declaring image parameters to halide pipelines.
|
| | InferArguments.h |
| | Interface for a visitor to infer arguments used in a body Stmt.
|
| | InjectHostDevBufferCopies.h |
| | Defines the lowering passes that deal with host and device buffer flow.
|
| | Inline.h |
| | Methods for replacing calls to functions with their definitions.
|
| | InlineReductions.h |
| | Defines some inline reductions: sum, product, minimum, maximum.
|
| | IntegerDivisionTable.h |
| | Tables telling us how to do integer division via fixed-point multiplication for various small constants.
|
| | Interval.h |
| | Defines the Interval class.
|
| | IntrusivePtr.h |
| | Support classes for reference-counting via intrusive shared pointers.
|
| | IR.h |
| | Subtypes for Halide expressions (Halide::Expr) and statements (Halide::Internal::Stmt)
|
| | IREquality.h |
| | Methods to test Exprs and Stmts for equality of value.
|
| | IRMatch.h |
| | Defines a method to match a fragment of IR against a pattern containing wildcards.
|
| | IRMutator.h |
| | Defines a base class for passes over the IR that modify it.
|
| | IROperator.h |
| | Defines various operator overloads and utility functions that make it more pleasant to work with Halide expressions.
|
| | IRPrinter.h |
| | This header file defines operators that let you dump a Halide expression, statement, or type directly into an output stream in a human readable form.
|
| | IRVisitor.h |
| | Defines the base class for things that recursively walk over the IR.
|
| | JITModule.h |
| | Defines the struct representing lifetime and dependencies of a JIT compiled halide pipeline.
|
| | Lambda.h |
| | Convenience functions for creating small anonymous Halide functions.
|
| | Lerp.h |
| | Defines methods for converting a lerp intrinsic into Halide IR.
|
| | LICM.h |
| | Methods for lifting loop invariants out of inner loops.
|
| | LLVM_Output.h |
| | LLVM_Runtime_Linker.h |
| | Support for linking LLVM modules that comprise the runtime.
|
| | LoopCarry.h |
| | LoopPartitioningDirective.h |
| | Defines the Partition enum.
|
| | Lower.h |
| | Defines the function that generates a statement that computes a Halide function using its schedule.
|
| | LowerParallelTasks.h |
| | Support for platform independent lowering of Halide parallel and async mechanisms.
|
| | LowerWarpShuffles.h |
| | Defines the lowering pass that injects CUDA warp shuffle instructions to access storage outside of a GPULane loop.
|
| | MainPage.h |
| | This file only exists to contain the front-page of the documentation.
|
| | Memoization.h |
| | Defines the interface to the pass that injects support for compute_cached roots.
|
| | Module.h |
| | Defines Module, an IR container that fully describes a Halide program.
|
| | ModulusRemainder.h |
| | Routines for statically determining what expressions are divisible by.
|
| | Monotonic.h |
| | Methods for computing whether expressions are monotonic.
|
| | ObjectInstanceRegistry.h |
| | Provides a single global registry of Generators, GeneratorParams, and Params indexed by this pointer.
|
| | OffloadGPULoops.h |
| | Defines a lowering pass to pull loops marked with GPU device APIs to a separate module, and call them through the appropriate host runtime module.
|
| | OptimizeShuffles.h |
| | Defines a lowering pass that replace indirect loads with dynamic_shuffle intrinsics where possible.
|
| | OutputImageParam.h |
| | Classes for declaring output image parameters to halide pipelines.
|
| | ParallelRVar.h |
| | Method for checking if it's safe to parallelize an update definition across a reduction variable.
|
| | Param.h |
| | Classes for declaring scalar parameters to halide pipelines.
|
| | Parameter.h |
| | Defines the internal representation of parameters to halide piplines.
|
| | PartitionLoops.h |
| | Defines a lowering pass that partitions loop bodies into three to handle boundary conditions: A prologue, a simplified steady-stage, and an epilogue.
|
| | Pipeline.h |
| | Defines the front-end class representing an entire Halide imaging pipeline.
|
| | Prefetch.h |
| | Defines the lowering pass that injects prefetch calls when prefetching appears in the schedule.
|
| | PrefetchDirective.h |
| | Defines the PrefetchDirective struct.
|
| | PrintLoopNest.h |
| | Defines methods to print out the loop nest corresponding to a schedule.
|
| | Profiling.h |
| | Defines the lowering pass that injects print statements when profiling is turned on.
|
| | PurifyIndexMath.h |
| | Removes side-effects in integer math.
|
| | PythonExtensionGen.h |
| | Qualify.h |
| | Defines methods for prefixing names in an expression with a prefix string.
|
| | Random.h |
| | Defines deterministic random functions, and methods to redirect front-end calls to random_float and random_int to use them.
|
| | RDom.h |
| | Defines the front-end syntax for reduction domains and reduction variables.
|
| | Realization.h |
| | Defines Realization - a vector of Buffer for use in pipelines with multiple outputs.
|
| | RealizationOrder.h |
| | Defines the lowering pass that determines the order in which realizations are injected and groups functions with fused computation loops.
|
| | RebaseLoopsToZero.h |
| | Defines the lowering pass that rewrites loop mins to be 0.
|
| | Reduction.h |
| | Defines internal classes related to Reduction Domains.
|
| | RegionCosts.h |
| | Defines RegionCosts - used by the auto scheduler to query the cost of computing some function regions.
|
| | RemoveDeadAllocations.h |
| | Defines the lowering pass that removes allocate and free nodes that are not used.
|
| | RemoveExternLoops.h |
| | Defines a lowering pass that removes placeholder loops for extern stages.
|
| | RemoveUndef.h |
| | Defines a lowering pass that elides stores that depend on unitialized values.
|
| | Schedule.h |
| | Defines the internal representation of the schedule for a function.
|
| | ScheduleFunctions.h |
| | Defines the function that does initial lowering of Halide Functions into a loop nest using its schedule.
|
| | Scope.h |
| | Defines the Scope class, which is used for keeping track of names in a scope while traversing IR.
|
| | SelectGPUAPI.h |
| | Defines a lowering pass that selects which GPU api to use for each gpu for loop.
|
| | Serialization.h |
| | Simplify.h |
| | Methods for simplifying halide statements and expressions.
|
| | Simplify_Internal.h |
| | The simplifier is separated into multiple compilation units with this single shared header to speed up the build.
|
| | SimplifyCorrelatedDifferences.h |
| | Defines a simplification pass for handling differences of correlated expressions.
|
| | SimplifySpecializations.h |
| | Defines pass that try to simplify the RHS/LHS of a function's definition based on its specializations.
|
| | SkipStages.h |
| | Defines a pass that dynamically avoids realizing unnecessary stages.
|
| | SlidingWindow.h |
| | Defines the sliding_window lowering optimization pass, which avoids computing provably-already-computed values.
|
| | Solve.h |
| | SpirvIR.h |
| | Defines methods for constructing and encoding instructions into the Khronos format specification known as the Standard Portable Intermediate Representation for Vulkan (SPIR-V).
|
| | SplitTuples.h |
| | Defines the lowering pass that breaks up Tuple-valued realization and productions into several scalar-valued ones.
|
| | StageStridedLoads.h |
| | Defines the compiler pass that converts strided loads into dense loads followed by shuffles.
|
| | StmtToHTML.h |
| | Defines a function to dump an HTML-formatted visualization to a file.
|
| | StorageFlattening.h |
| | Defines the lowering pass that flattens multi-dimensional storage into single-dimensional array access.
|
| | StorageFolding.h |
| | Defines the lowering optimization pass that reduces large buffers down to smaller circular buffers when possible.
|
| | StrictifyFloat.h |
| | Defines a lowering pass to make all floating-point strict for all top-level Exprs.
|
| | StripAsserts.h |
| | Defines the lowering pass that strips asserts when NoAsserts is set.
|
| | Substitute.h |
| | Defines methods for substituting out variables in expressions and statements.
|
| | Target.h |
| | Defines the structure that describes a Halide target.
|
| | TargetQueryOps.h |
| | Defines a lowering pass to lower all target_is() and target_has() helpers.
|
| | Tracing.h |
| | Defines the lowering pass that injects print statements when tracing is turned on.
|
| | TrimNoOps.h |
| | Defines a lowering pass that truncates loops to the region over which they actually do something.
|
| | Tuple.h |
| | Defines Tuple - the front-end handle on small arrays of expressions.
|
| | Type.h |
| | Defines halide types.
|
| | UnifyDuplicateLets.h |
| | Defines the lowering pass that coalesces redundant let statements.
|
| | UniquifyVariableNames.h |
| | Defines the lowering pass that renames all variables to have unique names.
|
| | UnpackBuffers.h |
| | Defines the lowering pass that unpacks buffer arguments onto the symbol table.
|
| | UnrollLoops.h |
| | Defines the lowering pass that unrolls loops marked as such.
|
| | UnsafePromises.h |
| | Defines the lowering pass that removes unsafe promises.
|
| | Util.h |
| | Various utility functions used internally Halide.
|
| | Var.h |
| | Defines the Var - the front-end variable.
|
| | VectorizeLoops.h |
| | Defines the lowering pass that vectorizes loops marked as such.
|
| | WasmExecutor.h |
| | Support for running Halide-compiled Wasm code in-process.
|
| | WrapCalls.h |
| | Defines pass to replace calls to wrapped Functions with their wrappers.
|