Intel® C++ Compiler 16.0 User and Reference Guide
There are two Intel® C++ Compilers for OS X* platforms – ICC and ICL. The ICC compiler has the EDG front-end and does not support Clang options. The ICL compiler has a Clang front-end and it supports Clang options.
This section describes a basic approach for porting applications built for Clang compilers to the ICL Intel® C++ Compiler. These compilers correspond to each other in the following ways:
Language | ICL Intel® C++ Compiler | LLVM's Clang Compiler |
---|---|---|
C | icl | clang |
C++ | icl++ | clang++ |
Unless otherwise indicated, the term "Clang" refers to both Clang and Clang++ compilers from the LLVM-native Compiler Collection.
Further on in this topic, Intel® C++ Compiler refers to the ICL Intel® C++ Compiler.
In many cases, porting applications from Clang to the Intel® C++ Compiler can be as easy as modifying your makefile to invoke the Intel® Compiler (icl ) instead of Clang. Using the Intel® C++ Compiler typically improves the performance of your application, especially for those that run on Intel® processors. In many cases, your application's performance may also show improvement when running on non-Intel processors. When you compile your application with the Intel® C++ Compiler, you have access to:
compiler options that optimize your code for the latest Intel processors
advanced profiling tools (PGO)
high-level optimizations (HLO)
inter-procedural optimization (IPO)
Intel intrinsic functions that the compiler uses to inline instructions, including Intel® SSE, Intel® SSE2, Intel® SSE3, SSSE3, and Intel® SSE4
highly-optimized Intel Math Library for improved accuracy
Since the Intel® C++ Compiler is compatible and interoperable with Clang, porting your Clang application to the Intel® C++ Compiler includes the benefits of binary compatibility. As a result, you should not have to re-build libraries from your Clang applications. The Intel® C++ Compiler also supports many of the same compiler options, macros, and environment variables you already use in your Clang work.
Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice. Notice revision #20110804 |