Module.h File Reference
#include <functional>
#include <map>
#include <memory>
#include <set>
#include <string>
#include "Argument.h"
#include "Expr.h"
#include "ExternalCode.h"
#include "Function.h"
#include "ModulusRemainder.h"
#include "Target.h"

Go to the source code of this file.


class  Halide::Buffer< T >
 A Halide::Buffer is a named shared reference to a Halide::Runtime::Buffer. More...
struct  Halide::Internal::OutputInfo
struct  Halide::Internal::LoweredArgument
 Definition of an argument to a LoweredFunc. More...
struct  Halide::Internal::LoweredFunc
 Definition of a lowered function. More...
class  Halide::Module
 A halide module. More...


 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.


using Halide::ModuleFactory = std::function< Module(const std::string &fn_name, const Target &target)>
using Halide::CompilerLoggerFactory = std::function< std::unique_ptr< Internal::CompilerLogger >(const std::string &fn_name, const Target &target)>


enum  Halide::Output {
  Halide::Output::assembly, Halide::Output::bitcode, Halide::Output::c_header, Halide::Output::c_source,
  Halide::Output::compiler_log, Halide::Output::cpp_stub, Halide::Output::featurization, Halide::Output::llvm_assembly,
  Halide::Output::object, Halide::Output::python_extension, Halide::Output::pytorch_wrapper, Halide::Output::registration,
  Halide::Output::schedule, Halide::Output::static_library, Halide::Output::stmt, Halide::Output::stmt_html
 Enums specifying various kinds of outputs that can be produced from a Halide Pipeline. More...
enum  Halide::LinkageType { Halide::LinkageType::External, Halide::LinkageType::ExternalPlusMetadata, Halide::LinkageType::Internal }
 Type of linkage a function in a lowered Halide module can have. More...


std::map< Output, const OutputInfo > Halide::Internal::get_output_info (const Target &target)
Module Halide::link_modules (const std::string &name, const std::vector< Module > &modules)
 Link a set of modules together into one module. More...
void Halide::compile_standalone_runtime (const std::string &object_filename, Target t)
 Create an object file containing the Halide runtime for a given target. More...
std::map< Output, std::string > Halide::compile_standalone_runtime (const std::map< Output, std::string > &output_files, Target t)
 Create an object and/or static library file containing the Halide runtime for a given target. More...
void Halide::compile_multitarget (const std::string &fn_name, const std::map< Output, std::string > &output_files, const std::vector< Target > &targets, const std::vector< std::string > &suffixes, const ModuleFactory &module_factory, const CompilerLoggerFactory &compiler_logger_factory=nullptr)

Detailed Description

Defines Module, an IR container that fully describes a Halide program.

Definition in file Module.h.