Reduce the number of precompiled Keys instantiations
Previously, we precompiled just about any version of Keys that you could be expected to use. This caused the time to compile Keys to be unnecessarily long. This reduces the compilation to types that are actually likely to be used as keys. Also removed the less likely to be used build methods.
This commit is contained in:
parent
6ea55f838b
commit
fb0ad1a13d
@ -21,45 +21,22 @@
|
|||||||
#define vtk_m_worklet_Keys_cxx
|
#define vtk_m_worklet_Keys_cxx
|
||||||
#include <vtkm/worklet/Keys.h>
|
#include <vtkm/worklet/Keys.h>
|
||||||
|
|
||||||
#define VTK_M_RM_PAREN(T) vtkm::cont::detail::GetTypeInParentheses<void T>::type
|
#define VTK_M_KEYS_EXPORT(T) \
|
||||||
|
template class VTKM_WORKLET_EXPORT vtkm::worklet::Keys<T>; \
|
||||||
#define VTK_M_KEYS_EXPORT_TYPE(T) \
|
template VTKM_WORKLET_EXPORT VTKM_CONT void vtkm::worklet::Keys<T>::BuildArrays( \
|
||||||
template class VTKM_WORKLET_EXPORT vtkm::worklet::Keys<VTK_M_RM_PAREN(T)>; \
|
const vtkm::cont::ArrayHandle<T>& keys, \
|
||||||
template VTKM_WORKLET_EXPORT VTKM_CONT void vtkm::worklet::Keys<VTK_M_RM_PAREN(T)>::BuildArrays( \
|
|
||||||
const vtkm::cont::ArrayHandle<VTK_M_RM_PAREN(T)>& keys, \
|
|
||||||
vtkm::worklet::KeysSortType sort, \
|
vtkm::worklet::KeysSortType sort, \
|
||||||
vtkm::cont::DeviceAdapterId device); \
|
vtkm::cont::DeviceAdapterId device); \
|
||||||
template VTKM_WORKLET_EXPORT VTKM_CONT void vtkm::worklet::Keys<VTK_M_RM_PAREN(T)>::BuildArrays( \
|
template VTKM_WORKLET_EXPORT VTKM_CONT void vtkm::worklet::Keys<T>::BuildArrays( \
|
||||||
const vtkm::cont::ArrayHandleVirtual<VTK_M_RM_PAREN(T)>& keys, \
|
const vtkm::cont::ArrayHandleVirtual<T>& keys, \
|
||||||
vtkm::worklet::KeysSortType sort, \
|
|
||||||
vtkm::cont::DeviceAdapterId device); \
|
|
||||||
template VTKM_WORKLET_EXPORT VTKM_CONT void vtkm::worklet::Keys<VTK_M_RM_PAREN( \
|
|
||||||
T)>::BuildArraysInPlace(vtkm::cont::ArrayHandle<VTK_M_RM_PAREN(T)>& keys, \
|
|
||||||
vtkm::worklet::KeysSortType sort, \
|
|
||||||
vtkm::cont::DeviceAdapterId device); \
|
|
||||||
extern template VTKM_WORKLET_EXPORT VTKM_CONT void vtkm::worklet::Keys<VTK_M_RM_PAREN( \
|
|
||||||
T)>::BuildArraysInPlace(vtkm::cont::ArrayHandleVirtual<VTK_M_RM_PAREN(T)>& keys, \
|
|
||||||
vtkm::worklet::KeysSortType sort, \
|
vtkm::worklet::KeysSortType sort, \
|
||||||
vtkm::cont::DeviceAdapterId device)
|
vtkm::cont::DeviceAdapterId device)
|
||||||
|
|
||||||
#define VTK_M_KEYS_EXPORT(T) \
|
VTK_M_KEYS_EXPORT(vtkm::HashType);
|
||||||
VTK_M_KEYS_EXPORT_TYPE((T)); \
|
VTK_M_KEYS_EXPORT(vtkm::Id);
|
||||||
VTK_M_KEYS_EXPORT_TYPE((vtkm::Vec<T, 2>)); \
|
VTK_M_KEYS_EXPORT(vtkm::Id3);
|
||||||
VTK_M_KEYS_EXPORT_TYPE((vtkm::Vec<T, 3>)); \
|
#ifdef VTKM_USE_64BIT_IDS
|
||||||
VTK_M_KEYS_EXPORT_TYPE((vtkm::Vec<T, 4>))
|
VTK_M_KEYS_EXPORT(vtkm::IdComponent);
|
||||||
|
#endif
|
||||||
VTK_M_KEYS_EXPORT(char);
|
|
||||||
VTK_M_KEYS_EXPORT(vtkm::Int8);
|
|
||||||
VTK_M_KEYS_EXPORT(vtkm::UInt8);
|
|
||||||
VTK_M_KEYS_EXPORT(vtkm::Int16);
|
|
||||||
VTK_M_KEYS_EXPORT(vtkm::UInt16);
|
|
||||||
VTK_M_KEYS_EXPORT(vtkm::Int32);
|
|
||||||
VTK_M_KEYS_EXPORT(vtkm::UInt32);
|
|
||||||
VTK_M_KEYS_EXPORT(vtkm::Int64);
|
|
||||||
VTK_M_KEYS_EXPORT(vtkm::UInt64);
|
|
||||||
VTK_M_KEYS_EXPORT(vtkm::Float32);
|
|
||||||
VTK_M_KEYS_EXPORT(vtkm::Float64);
|
|
||||||
|
|
||||||
#undef VTK_M_KEYS_EXPORT
|
#undef VTK_M_KEYS_EXPORT
|
||||||
#undef VTK_M_KEYS_EXPORT_TYPE
|
|
||||||
#undef VTK_M_RM_PAREN
|
|
||||||
|
@ -30,6 +30,8 @@
|
|||||||
#include <vtkm/cont/ArrayHandleVirtual.h>
|
#include <vtkm/cont/ArrayHandleVirtual.h>
|
||||||
#include <vtkm/cont/Logging.h>
|
#include <vtkm/cont/Logging.h>
|
||||||
|
|
||||||
|
#include <vtkm/Hash.h>
|
||||||
|
|
||||||
#include <vtkm/exec/internal/ReduceByKeyLookup.h>
|
#include <vtkm/exec/internal/ReduceByKeyLookup.h>
|
||||||
|
|
||||||
#include <vtkm/cont/arg/TransportTagKeyedValuesIn.h>
|
#include <vtkm/cont/arg/TransportTagKeyedValuesIn.h>
|
||||||
@ -430,48 +432,25 @@ struct Transport<vtkm::cont::arg::TransportTagKeyedValuesOut, ArrayHandleType, D
|
|||||||
|
|
||||||
#ifndef vtk_m_worklet_Keys_cxx
|
#ifndef vtk_m_worklet_Keys_cxx
|
||||||
|
|
||||||
#define VTK_M_RM_PAREN(T) vtkm::cont::detail::GetTypeInParentheses<void T>::type
|
#define VTK_M_KEYS_EXPORT(T) \
|
||||||
|
extern template class VTKM_WORKLET_TEMPLATE_EXPORT vtkm::worklet::Keys<T>; \
|
||||||
#define VTK_M_KEYS_EXPORT_TYPE(T) \
|
extern template VTKM_WORKLET_TEMPLATE_EXPORT VTKM_CONT void vtkm::worklet::Keys<T>::BuildArrays( \
|
||||||
extern template class VTKM_WORKLET_TEMPLATE_EXPORT vtkm::worklet::Keys<VTK_M_RM_PAREN(T)>; \
|
const vtkm::cont::ArrayHandle<T>& keys, \
|
||||||
extern template VTKM_WORKLET_TEMPLATE_EXPORT VTKM_CONT void vtkm::worklet::Keys<VTK_M_RM_PAREN( \
|
|
||||||
T)>::BuildArrays(const vtkm::cont::ArrayHandle<VTK_M_RM_PAREN(T)>& keys, \
|
|
||||||
vtkm::worklet::KeysSortType sort, \
|
vtkm::worklet::KeysSortType sort, \
|
||||||
vtkm::cont::DeviceAdapterId device); \
|
vtkm::cont::DeviceAdapterId device); \
|
||||||
extern template VTKM_WORKLET_TEMPLATE_EXPORT VTKM_CONT void vtkm::worklet::Keys<VTK_M_RM_PAREN( \
|
extern template VTKM_WORKLET_TEMPLATE_EXPORT VTKM_CONT void vtkm::worklet::Keys<T>::BuildArrays( \
|
||||||
T)>::BuildArrays(const vtkm::cont::ArrayHandleVirtual<VTK_M_RM_PAREN(T)>& keys, \
|
const vtkm::cont::ArrayHandleVirtual<T>& keys, \
|
||||||
vtkm::worklet::KeysSortType sort, \
|
|
||||||
vtkm::cont::DeviceAdapterId device); \
|
|
||||||
extern template VTKM_WORKLET_TEMPLATE_EXPORT VTKM_CONT void vtkm::worklet::Keys<VTK_M_RM_PAREN( \
|
|
||||||
T)>::BuildArraysInPlace(vtkm::cont::ArrayHandle<VTK_M_RM_PAREN(T)>& keys, \
|
|
||||||
vtkm::worklet::KeysSortType sort, \
|
|
||||||
vtkm::cont::DeviceAdapterId device); \
|
|
||||||
extern template VTKM_WORKLET_TEMPLATE_EXPORT VTKM_CONT void vtkm::worklet::Keys<VTK_M_RM_PAREN( \
|
|
||||||
T)>::BuildArraysInPlace(vtkm::cont::ArrayHandleVirtual<VTK_M_RM_PAREN(T)>& keys, \
|
|
||||||
vtkm::worklet::KeysSortType sort, \
|
vtkm::worklet::KeysSortType sort, \
|
||||||
vtkm::cont::DeviceAdapterId device)
|
vtkm::cont::DeviceAdapterId device)
|
||||||
|
|
||||||
#define VTK_M_KEYS_EXPORT(T) \
|
VTK_M_KEYS_EXPORT(vtkm::HashType);
|
||||||
VTK_M_KEYS_EXPORT_TYPE((T)); \
|
VTK_M_KEYS_EXPORT(vtkm::Id);
|
||||||
VTK_M_KEYS_EXPORT_TYPE((vtkm::Vec<T, 2>)); \
|
VTK_M_KEYS_EXPORT(vtkm::Id3);
|
||||||
VTK_M_KEYS_EXPORT_TYPE((vtkm::Vec<T, 3>)); \
|
#ifdef VTKM_USE_64BIT_IDS
|
||||||
VTK_M_KEYS_EXPORT_TYPE((vtkm::Vec<T, 4>))
|
VTK_M_KEYS_EXPORT(vtkm::IdComponent);
|
||||||
|
#endif
|
||||||
VTK_M_KEYS_EXPORT(char);
|
|
||||||
VTK_M_KEYS_EXPORT(vtkm::Int8);
|
|
||||||
VTK_M_KEYS_EXPORT(vtkm::UInt8);
|
|
||||||
VTK_M_KEYS_EXPORT(vtkm::Int16);
|
|
||||||
VTK_M_KEYS_EXPORT(vtkm::UInt16);
|
|
||||||
VTK_M_KEYS_EXPORT(vtkm::Int32);
|
|
||||||
VTK_M_KEYS_EXPORT(vtkm::UInt32);
|
|
||||||
VTK_M_KEYS_EXPORT(vtkm::Int64);
|
|
||||||
VTK_M_KEYS_EXPORT(vtkm::UInt64);
|
|
||||||
VTK_M_KEYS_EXPORT(vtkm::Float32);
|
|
||||||
VTK_M_KEYS_EXPORT(vtkm::Float64);
|
|
||||||
|
|
||||||
#undef VTK_M_KEYS_EXPORT
|
#undef VTK_M_KEYS_EXPORT
|
||||||
#undef VTK_M_KEYS_EXPORT_TYPE
|
|
||||||
#undef VTK_M_RM_PAREN
|
|
||||||
|
|
||||||
#endif // !vtk_m_worklet_Keys_cxx
|
#endif // !vtk_m_worklet_Keys_cxx
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user