ispc(1) | General Commands Manual | ispc(1) |
NAME¶
ispc - Intel Implicit SPMD Program Compiler
SYNOPSIS¶
ispc [options] file
DESCRIPTION¶
ispc is a compiler for a variant of the C programming language, with extensions for single program, multiple data programming. Under the SPMD model, the programmer writes a program that generally appears to be a regular serial program, though the execution model is actually that a number of program instances execute in parallel on the hardware.
OPTIONS¶
- --addressing {32,64}
- Select 32- or 64-bit addressing. (Note that 32-bit addressing calculations are done by default, even on 64-bit target architectures.)
- --arch {x86, x86-64, arm, aarch64, wasm32}
- Select target architecture
- --colored-output
- Always use terminal colors in error/warning messages
- --cpu <type>
- An alias for --device <type> switch
- -D <foo>
- #define given value when running preprocessor
- --dev-stub <filename>
- Emit device-side offload stub functions to file
- --device <type>
- Select target device
<type> = { x86-64 , atom (synonyms: bonnell ), core2, penryn, corei7 (synonyms: nehalem ), btver2 (synonyms: ps4 ), corei7-avx (synonyms: sandybridge ), core-avx-i (synonyms: ivybridge ), core-avx2 (synonyms: haswell ), broadwell, skylake, knl, skx, icelake-client (synonyms: icl ), slm (synonyms: silvermont ), icelake-server (synonyms: icx ), tigerlake (synonyms: tgl ), alderlake (synonyms: adl ), sapphirerapids (synonyms: spr ), znver1, znver2 (synonyms: ps5 ), znver3, cortex-a9, cortex-a15, cortex-a35, cortex-a53, cortex-a57, apple-a7, apple-a10, apple-a11, apple-a12, apple-a13, apple-a14 }
- --dllexport
- Make non-static functions DLL exported. Windows target only
- --dwarf-version {2,3,4}
- Generate source-level debug information with given DWARF version (triggers -g ). Ignored for Windows target
- -E
- Run only the preprocessor
- --emit-asm
- Generate assembly language file as output
- --emit-llvm
- Emit LLVM bitcode file as output
- --emit-llvm-text
- Emit LLVM bitcode file as output in textual form
- --emit-obj
- Generate object file file as output (default)
- --enable-llvm-intrinsics
- Enable experimental feature to call LLVM intrinsics from ISPC source code
- --error-limit <value>
- Limit maximum number of errors emitting by ISPC to <value>
- --force-alignment <value>
- Force alignment in memory allocations routine to be <value>
- -g
- Generate source-level debug information
- --help
- Print help
- --help-dev
- Print help for developer options
- --host-stub <filename>
- Emit host-side offload stub functions to file
- -h <name> / --header-outfile <name>
- Output filename for header
- -I <path>
- Add <path> to #include file search path
- --ignore-preprocessor-errors
- Suppress errors from the preprocessor
- --instrument
- Emit instrumentation to gather performance data
- --math-lib <option>
- Select math library
- -MMM <filename>
- Write #include dependencies to given file.
- -M
- Output a rule suitable for make describing the dependencies of the main source file to stdout.
- -MF <filename>
- When used with -M, specifies a file to write the dependencies to.
- -MT <filename>
- When used with -M, changes the target of the rule emitted by dependency generation.
- --no-omit-frame-pointer
- Disable frame pointer omission. It may be useful for profiling
- --nostdlib
- Don't make the ispc standard library available
- --no-pragma-once
- Don't use #pragma once in created headers
- --nocpp
- Don't run the C preprocessor
- -o<name>/--outfile <name>
- Output filename (may be "-" for standard output)
- -O0/-O(1/2/3)
- Set optimization level. Default behavior is to optimize for speed.
- --opt <option>
- Set optimization option
- disable-assertions
- Remove assertion statements from final code.
- disable-fma
- Disable 'fused multiply-add' instructions (on targets that support them)
- disable-loop-unroll
- Disable loop unrolling.
- disable-zmm
- Disable using zmm registers for avx512 targets in favour of ymm. This also affects ABI.
- fast-masked-vload
- Faster masked vector loads on SSE (may go past end of array)
- fast-math
- Perform non-IEEE-compliant optimizations of numeric expressions
- force-aligned-memory
- Always issue "aligned" vector load and store instructions
- --pic
- Generate position-independent code. Ignored for Windows target
- --quiet
- Suppress all output
- --support-matrix
- Print full matrix of supported targets, architectures and OSes
- --target <t>
- Select target ISA and width. <t> ={ sse2-i32x4, sse2-i32x8, sse4-i8x16, sse4-i16x8, sse4-i32x4, sse4-i32x8, avx1-i32x4, avx1-i32x8, avx1-i32x16, avx1-i64x4, avx2-i8x32, avx2-i16x16, avx2-i32x4, avx2-i32x8, avx2-i32x16, avx2-i64x4, avx512knl-x16, avx512skx-x4, avx512skx-x8, avx512skx-x16, avx512skx-x32, avx512skx-x64, neon-i8x16, neon-i16x8, neon-i32x4, neon-i32x8, wasm-i32x4 }
- --target-os <os>
- Select target OS. <os> ={ linux, custom_linux, freebsd, android, web }
- --time-trace
- Turn on time profiler. Generates JSON file based on output filename.
- --time-trace-granularity <value>
- Minimum time granularity (in microseconds) traced by time profiler.
- --vectorcall/--no-vectorcall
- Enable/disable vectorcall calling convention on Windows (x64 only). Disabled by default
- --version
- Print ispc version
- --werror
- Treat warnings as errors
- --woff
- Disable warnings
- --wno-perf
- Don't issue warnings related to performance-related issues
- --x86-asm-syntax <option>
- Select style of code if generating assembly
SEE ALSO¶
AUTHOR¶
ispc is written by Intel Corporation.
This manual page was written by Yangfl for the Debian Project (and may be used by others).