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" 20 #include <openvdb/version.h> 48 void(
const void*
const,
58 static const size_t N_ARGS = FunctionTraitsT::N_ARGS;
60 static const std::array<std::string, N_ARGS>& argumentKeys();
61 static const char* getDefaultName();
84 void(
const void*
const,
95 static const size_t N_ARGS = FunctionTraitsT::N_ARGS;
97 static const std::array<std::string, N_ARGS>& argumentKeys();
98 static const char* getDefaultName();
120 void(
const void*
const,
121 const int32_t (*)[3],
128 static const size_t N_ARGS = FunctionTraitsT::N_ARGS;
130 static const std::array<std::string, N_ARGS>& argumentKeys();
131 static const char* getDefaultName();
137 namespace codegen_internal {
157 using ComputeGenerator::traverse;
158 using ComputeGenerator::visit;
164 llvm::Value* accessorHandleFromToken(
const std::string&);
165 void getAccessorValue(
const std::string&, llvm::Value*);
178 #endif // OPENVDB_AX_VOLUME_COMPUTE_GENERATOR_HAS_BEEN_INCLUDED Visitor object which will generate llvm IR for a syntax tree. This provides the majority of the code ...
Definition: ComputeGenerator.h:86
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. It represents an entire conversion of a valid AX string.
Definition: AST.h:562
The core visitor framework for code generation.
std::shared_ptr< AttributeRegistry > Ptr
Definition: AttributeRegistry.h:42
Contains frameworks for creating custom AX functions which can be registered within the FunctionRegis...
void(const void *const, const int32_t(*)[3], void *, uint64_t *, int64_t, uint64_t, void **, const void *const *, int64_t) Signature
Definition: VolumeComputeGenerator.h:92
void(const void *const, const int32_t(*)[3], void **, const void *const *, int64_t, void *) Signature
Definition: VolumeComputeGenerator.h:125
The second volume kernel, responsible for providing the core layer of SIMD optimisations by invoking ...
Definition: VolumeComputeGenerator.h:80
Visitor object which will generate llvm IR for a syntax tree which has been generated from AX that ta...
Definition: VolumeComputeGenerator.h:142
Definition: Exceptions.h:13
The primary volume kernel. This function holds the generated body of AX programs. ...
Definition: VolumeComputeGenerator.h:44
Options that control how functions behave.
Definition: CompilerOptions.h:24
Templated function traits which provides compile-time index access to the types of the function signa...
Definition: Types.h:280
void(const void *const, const int32_t(*)[3], void *, bool, int64_t, void **, const void *const *, int64_t) Signature
Definition: VolumeComputeGenerator.h:55
The function registry which is used for function code generation. Each time a function is visited wit...
Definition: FunctionRegistry.h:35
This class stores a list of access names, types and their dependency connections. ...
Definition: AttributeRegistry.h:39
Logger for collecting errors and warnings that occur during AX compilation.
Definition: Logger.h:57
#define OPENVDB_VERSION_NAME
The version namespace name for this library version.
Definition: version.h.in:121
The third volume kernel, providing an agnostic way to modify a single tile value without passing thro...
Definition: VolumeComputeGenerator.h:116
#define OPENVDB_USE_VERSION_NAMESPACE
Definition: version.h.in:218