Halide 22.0.0 Halide compiler and libraries

Public Member Functions | List of all members
Halide::Module Class Reference

A halide module. More...

`#include <Module.h>`

## Public Member Functions
| Module (const std::string &name, const Target &target, const MetadataNameMap &metadata_name_map={})
const Target & | target () const
| Get the target this module has been lowered for. More...
const std::string & | name () const
| The name of this module. More...
const AutoSchedulerResults * | get_auto_scheduler_results () const
| If this Module had an auto-generated schedule, return a read-only pointer to the AutoSchedulerResults. More...
bool | any_strict_float () const
| Return whether this module uses strict floating-point anywhere. More...
const std::vector< Buffer< void > > & | buffers () const
| The declarations contained in this module. More...
const std::vector< Internal::LoweredFunc > & | functions () const
std::vector< Internal::LoweredFunc > & | functions ()
const std::vector< Module > & | submodules () const
Buffer | get_cuda_ptx_assembly_buffer () const
| Tries to locate the offloaded CUDA PTX assembly contained in this Module. More...
Buffer | get_device_code_buffer () const
| Tries to locate the offloaded (GPU) Device assembly contained in this Module. More...
Internal::LoweredFunc | get_function_by_name (const std::string &name) const
| Return the function with the given name. More...
void | append (const Buffer< void > &buffer)
| Add a declaration to this module. More...
void | append (const Internal::LoweredFunc &function)
void | append (const Module &module)
void | compile (const std::map< OutputFileType, std::string > &output_files) const
| Compile a halide Module to variety of outputs, depending on the fields set in output_files. More...
Buffer< uint8_t > | compile_to_buffer () const
| Compile a halide Module to in-memory object code. More...
Module | resolve_submodules () const
| Return a new module with all submodules compiled to buffers on on the result Module. More...
void | remap_metadata_name (const std::string &from, const std::string &to) const
| When generating metadata from this module, remap any occurrences of 'from' into 'to'. More...
MetadataNameMap | get_metadata_name_map () const
| Retrieve the metadata name map. More...
void | set_auto_scheduler_results (const AutoSchedulerResults &results)
| Set the AutoSchedulerResults for the Module. More...
void | set_any_strict_float (bool any_strict_float)
| Set whether this module uses strict floating-point directives anywhere. More...
void | set_conceptual_code_stmt (const Internal::Stmt &stmt)
| Remember the Stmt during lowing before device-specific offloading. More...
const Internal::Stmt & | get_conceptual_stmt () const
| Get the remembered conceptual Stmt, remembered before device-specific offloading. More...

## Detailed Description

A halide module.

This represents IR containing lowered function definitions and buffers.

Definition at line 142 of file Module.h.

## Constructor & Destructor Documentation

## ◆ Module()

Halide::Module::Module | ( | const std::string & | name,
|  | const Target & | target,
|  | const MetadataNameMap & | metadata_name_map = `{}`
| ) |  |

## Member Function Documentation

## ◆ target()

const Target & Halide::Module::target | ( |  | ) | const

Get the target this module has been lowered for.

## ◆ name()

const std::string & Halide::Module::name | ( |  | ) | const

The name of this module.

This is used as the default filename for output operations.

## ◆ get_auto_scheduler_results()

const AutoSchedulerResults * Halide::Module::get_auto_scheduler_results | ( |  | ) | const

If this Module had an auto-generated schedule, return a read-only pointer to the AutoSchedulerResults.

If not, return nullptr.

## ◆ any_strict_float()

bool Halide::Module::any_strict_float | ( |  | ) | const

Return whether this module uses strict floating-point anywhere.

## ◆ buffers()

const std::vector< Buffer< void > > & Halide::Module::buffers | ( |  | ) | const

The declarations contained in this module.

## ◆ functions() [1/2]

const std::vector< Internal::LoweredFunc > & Halide::Module::functions | ( |  | ) | const

## ◆ functions() [2/2]

std::vector< Internal::LoweredFunc > & Halide::Module::functions | ( |  | ) |

## ◆ submodules()

const std::vector< Module > & Halide::Module::submodules | ( |  | ) | const

## ◆ get_cuda_ptx_assembly_buffer()

Buffer Halide::Module::get_cuda_ptx_assembly_buffer | ( |  | ) | const

Tries to locate the offloaded CUDA PTX assembly contained in this Module.

Might return a nullptr in case such buffer is not present in this Module.

## ◆ get_device_code_buffer()

Buffer Halide::Module::get_device_code_buffer | ( |  | ) | const

Tries to locate the offloaded (GPU) Device assembly contained in this Module.

This can be any of the GPU kernel sources, etc...

## ◆ get_function_by_name()

Internal::LoweredFunc Halide::Module::get_function_by_name | ( | const std::string & | name | ) | const

Return the function with the given name.

If no such function exists in this module, assert.

## ◆ append() [1/3]

void Halide::Module::append | ( | const Buffer< void > & | buffer | ) |

Add a declaration to this module.

## ◆ append() [2/3]

void Halide::Module::append | ( | const Internal::LoweredFunc & | function | ) |

## ◆ append() [3/3]

void Halide::Module::append | ( | const Module & | module | ) |

## ◆ compile()

void Halide::Module::compile | ( | const std::map< OutputFileType, std::string > & | output_files | ) | const

Compile a halide Module to variety of outputs, depending on the fields set in output_files.

## ◆ compile_to_buffer()

Buffer< uint8_t > Halide::Module::compile_to_buffer | ( |  | ) | const

Compile a halide Module to in-memory object code.

Currently only supports LLVM based compilation, but should be extended to handle source code backends.

## ◆ resolve_submodules()

Module Halide::Module::resolve_submodules | ( |  | ) | const

Return a new module with all submodules compiled to buffers on on the result Module.

## ◆ remap_metadata_name()

void Halide::Module::remap_metadata_name | ( | const std::string & | from,
|  | const std::string & | to
| ) |  | const

When generating metadata from this module, remap any occurrences of 'from' into 'to'.

## ◆ get_metadata_name_map()

MetadataNameMap Halide::Module::get_metadata_name_map | ( |  | ) | const

Retrieve the metadata name map.

## ◆ set_auto_scheduler_results()

void Halide::Module::set_auto_scheduler_results | ( | const AutoSchedulerResults & | results | ) |

Set the AutoSchedulerResults for the Module.

It is an error to call this multiple times for a given Module.

## ◆ set_any_strict_float()

void Halide::Module::set_any_strict_float | ( | bool | any_strict_float | ) |

Set whether this module uses strict floating-point directives anywhere.

## ◆ set_conceptual_code_stmt()

void Halide::Module::set_conceptual_code_stmt | ( | const Internal::Stmt & | stmt | ) |

Remember the Stmt during lowing before device-specific offloading.

## ◆ get_conceptual_stmt()

const Internal::Stmt & Halide::Module::get_conceptual_stmt | ( |  | ) | const

Get the remembered conceptual Stmt, remembered before device-specific offloading.

The documentation for this class was generated from the following file:

- src/Module.h