OpenVDB: Types.h File Reference

OpenVDB 8.1.0

Classes | Namespaces | Functions
ax/openvdb_ax/codegen/Types.h File Reference

Consolidated llvm types for most supported types. More...

`#include "openvdb_ax/ast/Tokens.h"`
`#include "openvdb_ax/Exceptions.h"`
`#include "String.h"`
`#include <openvdb/version.h>`
`#include <openvdb/Types.h>`
`#include <openvdb/math/Mat3.h>`
`#include <openvdb/math/Mat4.h>`
`#include <openvdb/math/Vec3.h>`
`#include <llvm/IR/Constants.h>`
`#include <llvm/IR/IRBuilder.h>`
`#include <llvm/IR/LLVMContext.h>`
`#include <type_traits>`

Go to the source code of this file.

## Classes
struct | int_t< 8 >
struct | int_t< 16 >
struct | int_t< 32 >
struct | int_t< 64 >
struct | LLVMType< T >
| LLVM type mapping from pod types. More...
struct | LLVMType< T[S]>
struct | LLVMType< T * >
struct | LLVMType< char >
struct | LLVMType< codegen::String >
struct | LLVMType< void >
struct | LLVMType< void * >
struct | LLVMType< const T >
struct | LLVMType< const T * >
struct | AliasTypeMap< T1, T2 >
| Alias mapping between two types, a frontend type T1 and a backend type T2. This class is the intended interface for binding objects which implement supported backend AX/IR types to this given backend type. More specifically, it's current and expected usage is limited to objects which hold a single member of a supported backend type and implements a StandardLayoutType as defined by the standard. Fundamentally, T1->T2 mapping should be supported by reinterpret_cast<> as defined by the type aliasing rules. More...
struct | LLVMType< math::Vec2< T > >
| Supported aliasing for VDB math types, allowing use in external function signatures. More...
struct | LLVMType< math::Vec3< T > >
struct | LLVMType< math::Vec4< T > >
struct | LLVMType< math::Mat3< T > >
struct | LLVMType< math::Mat4< T > >
struct | FunctionTraits< R(&)(Args...)>
struct | FunctionTraits< R(*)(Args...)>
struct | FunctionTraits< ReturnT(Args...)>
struct | FunctionTraits< ReturnT(Args...)>::Arg< I >

## Namespaces
| openvdb
| openvdb::v8_1
| openvdb::v8_1::ax
| openvdb::v8_1::ax::codegen

## Functions
template<typename T >
llvm::Constant * | llvmConstant (const T t, llvm::Type *type)
| Returns an llvm Constant holding a scalar value. More...
llvm::IntegerType * | llvmIntType (const uint32_t size, llvm::LLVMContext &C)
| Returns an llvm IntegerType given a requested size and context. More...
llvm::Type * | llvmFloatType (const uint32_t size, llvm::LLVMContext &C)
| Returns an llvm floating point Type given a requested size and context. More...
llvm::Type * | llvmTypeFromToken (const ast::tokens::CoreType &type, llvm::LLVMContext &C)
| Returns an llvm type representing a type defined by a string. More...
ast::tokens::CoreType | tokenFromLLVMType (const llvm::Type *type)
| Return a corresponding AX token which represents the given LLVM Type. More...

## Detailed Description

Consolidated llvm types for most supported types.

Authors
  Nick Avramoussis