These pages describe the advanced compiler technology features of Codeplay s VectorC compiler engine. VectorC has been designed to be easily customised (adding built-in intrinsics, types, operators), making it very suitable for use in creating custom-built C and C++ compilers for new processor designs.
The VectorC engine supports C, C++, and is also one of the first commercial compilers to include support for the most useful C++0x features (such as auto and delegating constructors).
VectorC can compile source code with multiple proprietary source extensions. It has built-in support for:
VectorC also supports C++ to C compilation through a fully featured C backend. VectorC can easily be configured to support new language extensions, backends, and optimization pathways.
VectorC performs all the standard non-vector optimizations expected of a high-performance compiler. As the engine understands multiple memory spaces and distributed latencies, it can optimize data-movement through double-buffered streaming DMA when required, in addition to standard write combining and prefetching functions.
Vectorizing is the art of recognising implicit parallelisms in standard C and C++ code and automatically taking advantage of advanced CPU 'vector' units via SIMD instruction such as MMX, SSE/SSE2, 3D Now and even Altivec when output to C. VectorC, as it s name implies, was designed to exploit vectorization from the outset.
Codeplay has made it easy to adapt VectorC and gain the advantages of working with the familiar Microsoft Visual Studio environment through comprehensive support for the Microsoft ABI. All it takes is a mouse click to switch compilation units over to VectorC from within the Visual Studio IDE.
For GCC users, we support the GCC command line syntax.
When speed is of the essence, carefully considered code adjustment is required. VectorC s Interactive Optimizer removes the guesswork in that process and displays the quality of the output assembly of your code along with helpful optimization advice.
Another unique VectorC feature, Codeplay's custom calling conventions provide a mechanism to lower function calling overhead and speed up code. GNU inline assembly support is provided as standard within VectorC.
VectorC is available as a native implementation on Windows based architectures native support on Linux-based architectures will be made available when justified by customer demand.
Our C source backend allows us to output optimized C++ with or without multicore extensions in the case where rapid prototyping onto a custom accelerator processor is required, and a C compiler for the target already exists. This gives VectorC a distinct advantage over other solutions it can compile C++ code to any architecture which has an existing C compiler. Current implementations have been tested on Windows and Linux with x86, PowerPC Linux, and Cell Linux. The C source is fully compatible with existing C and C++ libraries compiled with Visual Studio or GCC.
VectorC has been developed from the ground up over a period of 10 years and has no third-party product dependencies.
Compatibility and Code Generation Features