ISPC: Support generation for multiple instruction sets

This commit is contained in:
Robert Maynard
2020-07-28 14:52:36 -04:00
parent 5a1750017e
commit a020787a9b
48 changed files with 595 additions and 8 deletions
+1
View File
@@ -259,6 +259,7 @@ Properties on Targets
/prop_tgt/INTERPROCEDURAL_OPTIMIZATION
/prop_tgt/IOS_INSTALL_COMBINED
/prop_tgt/ISPC_HEADER_DIRECTORY
/prop_tgt/ISPC_INSTRUCTION_SETS
/prop_tgt/JOB_POOL_COMPILE
/prop_tgt/JOB_POOL_LINK
/prop_tgt/JOB_POOL_PRECOMPILE_HEADER
+1
View File
@@ -512,6 +512,7 @@ Variables for Languages
/variable/CMAKE_Fortran_MODDIR_FLAG
/variable/CMAKE_Fortran_MODOUT_FLAG
/variable/CMAKE_ISPC_HEADER_DIRECTORY
/variable/CMAKE_ISPC_INSTRUCTION_SETS
/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_MACHINE
/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_PREFIX
/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_SUFFIX
+21
View File
@@ -0,0 +1,21 @@
ISPC_INSTRUCTION_SETS
---------------------
.. versionadded:: 3.19
List of instruction set architectures to generate code for.
This property is initialized by the value of the :variable:`CMAKE_ISPC_INSTRUCTION_SETS`
variable if it is set when a target is created.
The ``ISPC_INSTRUCTION_SETS`` target property must be used when generating for multiple
instruction sets so that CMake can track what object files will be generated.
Examples
^^^^^^^^
.. code-block:: cmake
set_property(TARGET tgt PROPERTY ISPC_INSTRUCTION_SETS avx2-i32x4 avx512skx-i32x835)
Generates code for avx2 and avx512skx target architectures.
@@ -0,0 +1,9 @@
CMAKE_ISPC_INSTRUCTION_SETS
---------------------------
.. versionadded:: 3.19
Default value for :prop_tgt:`ISPC_INSTRUCTION_SETS` property of targets.
This variable is used to initialize the :prop_tgt:`ISPC_INSTRUCTION_SETS` property
on all targets. See the target property for additional information.