Halide  12.0.1
Halide compiler and libraries
src Directory Reference

Directories

directory  autoschedulers
 
directory  runtime
 

Files

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