setting the speed for the future of games programming
vectorc

contentsclose
 

USING VECTORC FROM THE COMMAND LINE

To use VectorC, you can use VectorCL for Microsoft Visual C compatibility, or use vectorc.exe itself.  This page describes using vectorc.exe.


Command line flags

/vc Microsoft Visual C compatibility. The rest of the command line options are as described by the Visual C documentation.
/mslibs Use Microsoft runtime libraries - default
/wlibs Use Watcom runtime libraries
/coff Output to COFF object file - suitable for Microsoft tools - default
/omf Output to OMF object file
/gnu GNU compatibility - adds some GNU source code extensions
/uchars chars are unsigned
/schars chars are signed - default
/alignment n Set structure alignment
/outfile filename Set output filename
/include directory Add directory to search for include files
/nodefaultincludes Don't search the default include directories (stored in the INCLUDE environment variable)
/nowarn No warnings
/warnerror Make warnings errors
/asm Output an assembly listing to a file with the same name and directory as the object file, but with an ".asm" extension
/interopt Call the Interactive Optimizer before compiling
/advice Give optimization advice. The Interactive Optimizer uses this option.
/noprogress Do not print progress information



Optimization flags

/target target-name

Set the processor to compile for.  The optimizer will optimize for this processor and the compiler will only emit instructions allowed by this processor. The different processors are described here.
The possible target names are:
PENTIUM - Intel Pentium - default
PENTIUMMMX - Intel Pentium with MMX
PPRO - Intel Pentium Pro
PII - Intel Pentium II
PIII - Intel Pentium III with Streaming SIMD Extensions
P4 - Intel Pentium 4 (Willamette) - new Intel processor with SSE 2 - preliminary support - not available in Special Edition
K6 - AMD K6 with MMX
K6-2 - AMD K6-2 with MMX and 3DNow!
ATHLON - AMD Athlon with MMX and 3DNow! - not available in Special Edition

/fastcall Use Visual C fastcall calling conventions by default
/cdecl Standard C calling conventions - default
/wcalls Use Watcom register calling conventions by default
/single Assume floating-point constants and intrinsics are single-precision when the arguments are single-precision and the results are used in single-precision expressions. By default, floating-point constants and intrinsics like sqrt are double precision. This can cause problems in 3DNow! and SSE code.
/novectors No vectorization
/noaliasarguments No pointers in function arguments point to the same data. Described here.
/noaliasatomicarithmetic No pointers to which arithmetic is applied can point to values with atomic type (integer, float, pointer). Described here.
/noalias Assume all pointers have "restrict" applied to them. This will often not produce correct code, but can help with single functions to increase vectorization.
/nomemorder Allow re-ordering of all memory accesses. This is likely to produce incorrect code, but can help with single functions to increase vectorization.
/optimize n Set level of optimization from 0 (produces very slow code) to 10 (produces the fastest code, but takes a long time to comile). Optimization settings in between will be bumped up for individual functions that are small and have small loops.
/nostackcheck Turn off stack check calls. Stack checking is on by default
/uncached n Set a size in K to use for automatically setting the prefetch flag. All variables larger than this size will have the prefetch flag set, so the compiler will attempt to prefetch data whenever possible when reading from these variables
/prec12 Only do floating-point arithmetic to 12-bit precision
/precision Force consistent floating-point precision
/setfpuprec If a function does a lot of single-precision arithmetic, then the FPU will be put into single-precision mode at the start of the function and at the end of the function restored to whatever state it was in at the start. This can speed up single-precision divides and intrinsic functions (like sqrt, sin and cos) when not using 3DNow! or Streaming SIMD Extensions. It may be better to switch the FPU to single-precision at the start of your code.
/fastftoi Don't call runtime function to truncate floats when converting to ints. If you want truncation, set the FPU mode to round towards zero.
/ignorealign Force the optimizer to vectorize even if it can't determine that alignment of pointers is correct. This may cause vectorization to occur in unsuitable situations and slow down your code. However, it may also vectorize more code and so speed up your program.
/small Generate small, not fast, code.



Debugging Options

/oldcv Use old Microsoft CodeView debugging format - for compatibility with older debuggers
/cv Use Microsoft CodeView debugging format - default
/nodebug Don't output any debugging information
/debug Generate fully debuggable, but slow, code


top

contentsclose