vtk-m2/vtkm/cont
Allison Vacanti 4cd791932b Ensure that Pair and Vec are trivial classes.
For std::copy to optimize a copy to memcpy, the valuetype must be both
trivially constructable and trivially copyable.

The new copy benchmarks highlighted an issue that std::copy'ing pairs
and vecs were not optimized to memcpy. For a 256 MiB buffer on my
laptop w/ GCC, the serial copy speeds were:

UInt8:                 10.10 GiB/s
Vec<UInt8, 2>           3.12 GiB/s
Pair<UInt32, Float32>   6.92 GiB/s

After this patch, the optimization occurs and a bitwise copy occurs:

UInt8:                 10.12 GiB/s
Vec<UInt8, 2>           9.66 GiB/s
Pair<UInt32, Float32>   9.88 GiB/s

Check were also added to the Vec and Pair unit tests to ensure that
this classes continue to be trivial.

The ArrayHandleSwizzle test was refactored a bit to eliminate a new
'possibly uninitialized memory' warning introduced with the default
Vec ctors.
2017-10-18 14:58:35 -04:00
..
arg Update copyright for Sandia 2017-09-20 15:33:44 -06:00
cuda Check for overlap in CopySubRange. 2017-10-11 16:52:32 -04:00
internal Add equality operators that handle different handle types. 2017-10-11 17:25:13 -04:00
serial Overcome narrowing warning on MSVC. 2017-10-11 17:24:04 -04:00
tbb Overcome narrowing warning on MSVC. 2017-10-11 17:24:04 -04:00
testing Ensure that Pair and Vec are trivial classes. 2017-10-18 14:58:35 -04:00
ArrayCopy.h Add version of ArrayCopy that takes a device adapter 2017-09-25 16:54:24 -06:00
ArrayHandle.cxx Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ArrayHandle.h Add equality operators that handle different handle types. 2017-10-11 17:25:13 -04:00
ArrayHandle.hxx Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ArrayHandleCartesianProduct.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ArrayHandleCast.h Fix ambiguous make_ArrayHandleCast template 2017-09-27 10:56:22 -06:00
ArrayHandleCompositeVector.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ArrayHandleConcatenate.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ArrayHandleConstant.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ArrayHandleCounting.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ArrayHandleDiscard.h Fix warning on Cuda. 2017-10-10 10:28:51 -04:00
ArrayHandleExtractComponent.h Add missing typedef to portal. 2017-10-11 17:24:05 -04:00
ArrayHandleGroupVec.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ArrayHandleGroupVecVariable.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ArrayHandleImplicit.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ArrayHandleIndex.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ArrayHandlePermutation.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ArrayHandleReverse.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ArrayHandleStreaming.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ArrayHandleSwizzle.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ArrayHandleTransform.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ArrayHandleUniformPointCoordinates.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ArrayHandleZip.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ArrayPortal.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ArrayPortalToIterators.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ArrayRangeCompute.cxx Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ArrayRangeCompute.h Create ArrayCopy method 2017-09-25 16:28:44 -06:00
ArrayRangeCompute.hxx Update copyright for Sandia 2017-09-20 15:33:44 -06:00
CellLocatorTwoLevelUniformGrid.h Add a CellLocator 2017-10-10 14:01:41 -04:00
CellSet.cxx Update copyright for Sandia 2017-09-20 15:33:44 -06:00
CellSet.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
CellSetExplicit.cxx Update copyright for Sandia 2017-09-20 15:33:44 -06:00
CellSetExplicit.h Fix many warnings from doxygen 2017-09-22 10:29:08 -06:00
CellSetExplicit.hxx Workaround intel compiler bug 2017-10-12 13:32:39 -04:00
CellSetListTag.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
CellSetPermutation.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
CellSetSingleType.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
CellSetStructured.cxx Update copyright for Sandia 2017-09-20 15:33:44 -06:00
CellSetStructured.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
CellSetStructured.hxx Update copyright for Sandia 2017-09-20 15:33:44 -06:00
CMakeLists.txt Add a CellLocator 2017-10-10 14:01:41 -04:00
CoordinateSystem.cxx Update copyright for Sandia 2017-09-20 15:33:44 -06:00
CoordinateSystem.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
DataSet.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
DataSetBuilderExplicit.h Enable highest level of warnings(W4) under MSVC 2017-09-22 13:04:28 -04:00
DataSetBuilderRectilinear.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
DataSetBuilderUniform.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
DataSetFieldAdd.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
DeviceAdapter.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
DeviceAdapterAlgorithm.h Check for overlap in CopySubRange. 2017-10-11 16:52:32 -04:00
DeviceAdapterListTag.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
DynamicArrayHandle.cxx Update copyright for Sandia 2017-09-20 15:33:44 -06:00
DynamicArrayHandle.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
DynamicCellSet.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
Error.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ErrorBadAllocation.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ErrorBadType.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ErrorBadValue.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ErrorExecution.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ErrorInternal.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
Field.cxx Update copyright for Sandia 2017-09-20 15:33:44 -06:00
Field.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ImplicitFunction.cxx Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ImplicitFunction.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
ImplicitFunction.hxx Update copyright for Sandia 2017-09-20 15:33:44 -06:00
MultiBlock.cxx Update copyright for Sandia 2017-09-20 15:33:44 -06:00
MultiBlock.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
RuntimeDeviceInformation.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
RuntimeDeviceTracker.cxx Update copyright for Sandia 2017-09-20 15:33:44 -06:00
RuntimeDeviceTracker.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
Storage.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
StorageBasic.cxx Update copyright for Sandia 2017-09-20 15:33:44 -06:00
StorageBasic.h Merge topic 'doxygen-fixes' 2017-09-22 14:05:24 -04:00
StorageBasic.hxx Update copyright for Sandia 2017-09-20 15:33:44 -06:00
StorageImplicit.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
StorageListTag.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
Timer.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
TryExecute.h Update copyright for Sandia 2017-09-20 15:33:44 -06:00
VirtualObjectCache.h Fix many warnings from doxygen 2017-09-22 10:29:08 -06:00