Loading...
Searching...
No Matches
Halide::Internal::HostClosure Class Reference

A Closure modified to inspect GPU-specific memory accesses, and produce a vector of DeviceArgument objects. More...

`#include <DeviceArgument.h>`

Inheritance diagram for Halide::Internal::HostClosure:

## Public Member Functions

| HostClosure ()=default
std::vector< DeviceArgument > | arguments ()
| Get a description of the captured arguments.
Public Member Functions inherited from Halide::Internal::Closure
| Closure ()=default
| Closure (const Closure &)=delete
Closure & | operator= (const Closure &)=delete
| Closure (Closure &&)=default
Closure & | operator= (Closure &&)=default
void | include (const Stmt &s, const std::string &loop_variable="")
| Traverse a statement and find all references to external symbols.
Expr | pack_into_struct () const
| Pack a closure into a struct.
Stmt | unpack_from_struct (const Expr &, const Stmt &) const
| Unpack a closure around a Stmt, putting all the names in scope.
Public Member Functions inherited from Halide::Internal::IRVisitor
| IRVisitor ()=default
virtual | ~IRVisitor ()=default

## Protected Member Functions

void | visit (const For *loop) override
void | visit (const Call *op) override
void | visit (const Let *op) override
void | visit (const LetStmt *op) override
void | visit (const Load *op) override
void | visit (const Store *op) override
void | visit (const Allocate *op) override
void | visit (const Variable *op) override
void | visit (const Atomic *op) override
virtual void | visit (const IntImm *)
virtual void | visit (const UIntImm *)
virtual void | visit (const FloatImm *)
virtual void | visit (const StringImm *)
virtual void | visit (const Cast *)
virtual void | visit (const Reinterpret *)
virtual void | visit (const Add *)
virtual void | visit (const Sub *)
virtual void | visit (const Mul *)
virtual void | visit (const Div *)
virtual void | visit (const Mod *)
virtual void | visit (const Min *)
virtual void | visit (const Max *)
virtual void | visit (const EQ *)
virtual void | visit (const NE *)
virtual void | visit (const LT *)
virtual void | visit (const LE *)
virtual void | visit (const GT *)
virtual void | visit (const GE *)
virtual void | visit (const And *)
virtual void | visit (const Or *)
virtual void | visit (const Not *)
virtual void | visit (const Select *)
virtual void | visit (const Ramp *)
virtual void | visit (const Broadcast *)
virtual void | visit (const AssertStmt *)
virtual void | visit (const ProducerConsumer *)
virtual void | visit (const Provide *)
virtual void | visit (const Free *)
virtual void | visit (const Realize *)
virtual void | visit (const Block *)
virtual void | visit (const IfThenElse *)
virtual void | visit (const Evaluate *)
virtual void | visit (const Shuffle *)
virtual void | visit (const VectorReduce *)
virtual void | visit (const Prefetch *)
virtual void | visit (const Fork *)
virtual void | visit (const Acquire *)
virtual void | visit (const HoistedStorage *)
Protected Member Functions inherited from Halide::Internal::Closure
void | found_buffer_ref (const std::string &name, Type type, bool read, bool written, const Halide::Buffer<> &image)

## Additional Inherited Members

Public Attributes inherited from Halide::Internal::Closure
std::map< std::string, Type > | vars
| External variables referenced.
std::map< std::string, Buffer > | buffers
| External allocations referenced.
Protected Attributes inherited from Halide::Internal::Closure
Scope | ignore

## Detailed Description

A Closure modified to inspect GPU-specific memory accesses, and produce a vector of DeviceArgument objects.

Definition at line 95 of file DeviceArgument.h.

## Constructor & Destructor Documentation

## HostClosure()

Halide::Internal::HostClosure::HostClosure | ( |  | ) |

default

## Member Function Documentation

## arguments()

std::vector< DeviceArgument > Halide::Internal::HostClosure::arguments | ( |  | ) |

Get a description of the captured arguments.

References Halide::Internal::Closure::visit().

## visit() [1/48]

void Halide::Internal::HostClosure::visit | ( | const For * | loop | ) |

override protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [2/48]

void Halide::Internal::HostClosure::visit | ( | const Call * | op | ) |

override protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [3/48]

void Halide::Internal::Closure::visit | ( | const Let * | op | ) |

override protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [4/48]

void Halide::Internal::Closure::visit | ( | const LetStmt * | op | ) |

override protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [5/48]

void Halide::Internal::Closure::visit | ( | const Load * | op | ) |

override protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [6/48]

void Halide::Internal::Closure::visit | ( | const Store * | op | ) |

override protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [7/48]

void Halide::Internal::Closure::visit | ( | const Allocate * | op | ) |

override protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [8/48]

void Halide::Internal::Closure::visit | ( | const Variable * | op | ) |

override protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [9/48]

void Halide::Internal::Closure::visit | ( | const Atomic * | op | ) |

override protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [10/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const IntImm * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [11/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const UIntImm * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [12/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const FloatImm * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [13/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const StringImm * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [14/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const Cast * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [15/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const Reinterpret * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [16/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const Add * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [17/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const Sub * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [18/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const Mul * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [19/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const Div * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [20/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const Mod * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [21/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const Min * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [22/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const Max * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [23/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const EQ * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [24/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const NE * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [25/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const LT * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [26/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const LE * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [27/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const GT * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [28/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const GE * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [29/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const And * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [30/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const Or * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [31/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const Not * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [32/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const Select * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [33/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const Ramp * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [34/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const Broadcast * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [35/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const AssertStmt * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [36/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const ProducerConsumer * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [37/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const Provide * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [38/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const Free * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [39/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const Realize * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [40/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const Block * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [41/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const IfThenElse * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [42/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const Evaluate * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [43/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const Shuffle * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [44/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const VectorReduce * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [45/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const Prefetch * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [46/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const Fork * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [47/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const Acquire * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

## visit() [48/48]

virtual void Halide::Internal::IRVisitor::visit | ( | const HoistedStorage * |  | ) |

protected virtual

Reimplemented from Halide::Internal::Closure.

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

- src/DeviceArgument.h