OpenVDB 12.1.0
Loading...
Searching...
No Matches
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 <openvdb/util/Assert.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  RemoveAllPtrTypes< T >
struct  RemoveAllPtrTypes< T * >
struct  RemoveAllPtrTypes< T *const >
struct  RemoveAllPtrTypes< T *volatile >
struct  RemoveAllPtrTypes< T *const volatile >
struct  CountNPtrs< T >
struct  CountNPtrs< T * >
struct  CountNPtrs< T *const >
struct  CountNPtrs< T *volatile >
struct  CountNPtrs< T *const volatile >
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< openvdb::math::half >
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< openvdb::math::Vec2< T > >
 Supported aliasing for VDB math types, allowing use in external function signatures. More...
struct  LLVMType< openvdb::math::Vec3< T > >
struct  LLVMType< openvdb::math::Vec4< T > >
struct  LLVMType< openvdb::math::Mat3< T > >
struct  LLVMType< openvdb::math::Mat4< T > >
struct  FunctionTraits< R(&)(Args...)>
struct  FunctionTraits< R(*)(Args...)>
struct  FunctionTraits< ReturnT(Args...)>
struct  FunctionTraits< ReturnT(Args...)>::Arg< I >

Namespaces

namespace  openvdb
namespace  openvdb::v12_1
namespace  openvdb::v12_1::ax
namespace  openvdb::v12_1::ax::codegen

Functions

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

Detailed Description

Consolidated llvm types for most supported types.

Authors
Nick Avramoussis