vtk-m/vtkm
Kenneth Moreland 6afff75501 Modify Variant CastAndCall to have fewer cases in its switch
The previous implementation of `Variant`'s `CastAndCall` generated a
switch statement with 20 cases (plus a default) regardless of how many
types were handled by the `Variant` (with the excess doing nothing
useful). This reduced the amount of code, but caused the compiler to
have to build many more instructions (and optimize for them). This in
turn lead to large compile times and unnecessary large libraries/
executables.

This change makes a different function to use for `CastAndCall` so that
the number of cases in the switch matches exactly the number of types in
the `Variant`'s union.

Because the size of VariantImplDetail.h was getting large, I also
reduced the maximum expansions for the code. This does not seem to
negatively affect compile time, and I doubt it will have an noticible
difference in running time (when in release mode).

I also modified some other parts of this code to match the expansion
without making unnecessary defaults.
2022-03-28 14:14:06 -06:00
..
cont Update use of field association enumerations 2022-03-17 11:02:37 -06:00
exec Fixing dashboard warnings 2022-02-02 16:15:12 +05:30
filter Declare methods for instances out of line 2022-03-23 06:33:45 -06:00
internal Modify Variant CastAndCall to have fewer cases in its switch 2022-03-28 14:14:06 -06:00
interop renamve vector_calculus -> vector_analysis 2022-01-31 08:58:38 -07:00
io Update use of field association enumerations 2022-03-17 11:02:37 -06:00
random remove ALL_BACKENDS 2022-02-09 16:15:08 -07:00
rendering Merge topic 'scoped-enum-rendering' 2022-03-21 08:36:35 -04:00
source Update use of field association enumerations 2022-03-17 11:02:37 -06:00
testing Enable predicate parameter to ListAll and ListAny 2022-03-08 09:26:35 -07:00
thirdparty Merge branch 'upstream-loguru' into encapsulate-loguru-namespace 2022-02-17 16:03:23 -05:00
worklet Merge topic 'scoped-enum-cell-classification' 2022-03-21 12:40:05 -04:00
.gitattributes
Algorithms.h Deprecate vtkm/BinarySearch.h, it is unused and similar to LowerBound 2021-04-07 19:10:28 +00:00
Assert.h Disable VTKM_ASSERT when using HIP 2020-09-25 11:06:57 -04:00
Atomic.h CI: updates kokkos version 2021-09-20 18:23:16 -04:00
BinaryOperators.h Make BinaryOperators/Predicates more flexible. 2019-12-18 15:51:59 -05:00
BinaryPredicates.h Make BinaryOperators/Predicates more flexible. 2019-12-18 15:51:59 -05:00
Bitset.h Add unittest for particlearraycopy 2020-06-18 15:45:36 -04:00
Bounds.h Add implementation of VecTraits for Range and Bounds 2022-01-25 10:55:35 -07:00
CellClassification.h Fix scoping of vtkm::CellClassification 2022-03-17 15:33:57 -06:00
CellShape.h clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
CellTraits.h clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
CMakeLists.txt Deprecate brigand.hpp 2022-03-08 07:25:08 -07:00
Deprecated.h Disable deprecation for MSVC 2017 2021-04-26 12:47:44 -06:00
ErrorCode.h clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
Flags.h
Geometry.h
Geometry.hxx Update vtkm/Geometry.hxx to follow clangs rules on function markup 2020-09-25 09:37:46 -04:00
Hash.h
ImplicitFunction.h Completely deprecate virtual methods 2021-04-28 07:28:32 -06:00
List.h Enable predicate parameter to ListAll and ListAny 2022-03-08 09:26:35 -07:00
ListTag.h Remove brigand.hpp 2022-03-08 07:25:08 -07:00
LowerBound.h split vtkm/Algorithms.h into UpperBound.h, LowerBound.h, and BinarySearch.h 2021-04-07 18:53:09 +00:00
Math.h Remove recursion from FloatDistance 2021-08-02 09:50:41 -06:00
Math.h.in Remove recursion from FloatDistance 2021-08-02 09:50:41 -06:00
Matrix.h Break LUP factorization when invalid matrix found 2021-07-12 10:29:46 -06:00
NewtonsMethod.h
Pair.h
Particle.h Removing host/device being called from device warning 2021-09-01 17:54:41 -07:00
Range.h Add implementation of VecTraits for Range and Bounds 2022-01-25 10:55:35 -07:00
RangeId2.h ExtractStructured now compiles quicker and with less compiler memory 2019-12-11 08:59:42 -05:00
RangeId3.h ExtractStructured now compiles quicker and with less compiler memory 2019-12-11 08:59:42 -05:00
RangeId.h ExtractStructured now compiles quicker and with less compiler memory 2019-12-11 08:59:42 -05:00
StaticAssert.h clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
Swap.h revert thust::swap 2022-02-08 12:18:26 -07:00
TopologyElementTag.h clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
Transform3D.h conslidate the license statement 2019-04-17 10:57:13 -06:00
Tuple.h Update vtk-m doxygen to generate less warnings 2020-06-01 16:58:32 -04:00
Tuple.h.in Update doxygen comments in Tuple.h.in 2020-06-03 09:22:48 -06:00
TypeList.h Enable reinterpreting UnknownArrayHandle to compatible C types 2021-01-13 09:19:27 -07:00
TypeListTag.h Deprecate brigand.hpp 2022-03-08 07:25:08 -07:00
Types.h Allow for different types in basic type operators 2021-03-03 09:39:45 -07:00
TypeTraits.h Add implementation of ArrayRangeCompute for UnknownArrayHandle 2021-02-17 09:18:31 -07:00
UnaryPredicates.h
UpperBound.h split vtkm/Algorithms.h into UpperBound.h, LowerBound.h, and BinarySearch.h 2021-04-07 18:53:09 +00:00
VecAxisAlignedPointCoordinates.h Add VecFlat class 2020-12-16 17:22:44 -07:00
VecFlat.h Fix warning in VecFlat 2020-12-17 13:39:02 -07:00
VecFromPortal.h Add recursive component queries to VecTraits 2019-09-09 08:19:15 -06:00
VecFromPortalPermute.h Add recursive component queries to VecTraits 2019-09-09 08:19:15 -06:00
VecFromVirtPortal.h
VectorAnalysis.h Avoid floating point exception in Orthonormalize 2021-07-12 10:29:46 -06:00
VecTraits.h Add ability to convert fields to known types 2021-08-19 07:10:20 -06:00
VecVariable.h Generalize fields for particle advection 2020-07-20 21:15:46 -04:00
Version.h.in
VirtualObjectBase.h Completely deprecate virtual methods 2021-04-28 07:28:32 -06:00