12 #ifndef OPENVDB_AX_VOLUME_COMPUTE_GENERATOR_HAS_BEEN_INCLUDED
13 #define OPENVDB_AX_VOLUME_COMPUTE_GENERATOR_HAS_BEEN_INCLUDED
18 #include "../compiler/AttributeRegistry.h"
48 void(
const void*
const,
57 static const size_t N_ARGS = FunctionTraitsT::N_ARGS;
67 namespace codegen_internal {
87 using ComputeGenerator::traverse;
88 using ComputeGenerator::visit;
94 llvm::Value* accessorHandleFromToken(
const std::string&);
95 void getAccessorValue(
const std::string&, llvm::Value*);
The core visitor framework for code generation.
Contains frameworks for creating custom AX functions which can be registered within the FunctionRegis...
std::shared_ptr< AttributeRegistry > Ptr
Definition: AttributeRegistry.h:39
Logger for collecting errors and warnings that occur during AX compilation.
Definition: Logger.h:55
The function registry which is used for function code generation. Each time a function is visited wit...
Definition: FunctionRegistry.h:37
Definition: openvdb/Exceptions.h:13
Options that control how functions behave.
Definition: CompilerOptions.h:25
Attributes represent any access to a primitive value, typically associated with the '@' symbol syntax...
Definition: AST.h:1874
A Tree is the highest concrete (non-abstract) node in the entire AX AST hierarchy....
Definition: AST.h:562
Templated function traits which provides compile-time index access to the types of the function signa...
Definition: ax/openvdb_ax/codegen/Types.h:279
The function definition and signature which is built by the VolumeComputeGenerator.
Definition: VolumeComputeGenerator.h:45
static std::string getDefaultName()
static const std::array< std::string, N_ARGS > & argumentKeys()
void(const void *const, const int32_t(*)[3], const float(*)[3], void **, void **, int64_t, void *) Signature
Definition: VolumeComputeGenerator.h:54
Visitor object which will generate llvm IR for a syntax tree. This provides the majority of the code ...
Definition: ComputeGenerator.h:84
Visitor object which will generate llvm IR for a syntax tree which has been generated from AX that ta...
Definition: VolumeComputeGenerator.h:73
AttributeRegistry::Ptr generate(const ast::Tree &node)
VolumeComputeGenerator(llvm::Module &module, const FunctionOptions &options, FunctionRegistry &functionRegistry, Logger &logger)
Constructor.
~VolumeComputeGenerator() override=default
bool visit(const ast::Attribute *) override
Library and file format version numbers.
#define OPENVDB_VERSION_NAME
The version namespace name for this library version.
Definition: version.h:101
#define OPENVDB_USE_VERSION_NAMESPACE
Definition: version.h:153