This document provides a summary of new and changed product features and includes notes about features and problems not described in the product documentation.
Change History
Changes since Intel® C++ Compiler 19.1.2 (New in Intel® C++ Compiler 19.1.3)
- Corrections to reported problems.
- Intel® Parallel Studio XE 2020 Composer Edition for C++ Linux* contains an update to the Intel® C++ Compiler next generation code generator. This is invoked using the -qnextgen option to the ICC and ICPC compilers. This update to the Intel® C++ Compiler next generation code generator includes our latest updates and features for our C++ next generation compiler invoked with the -qnextgen option. There are no new features, bug fixes, or security enhancements for the Intel® C++ Compiler without the -qnextgen option.
Changes since Intel® C++ Compiler 19.1.1 (New in Intel® C++ Compiler 19.1.2)
- Corrections to reported problems.
Changes since Intel® C++ Compiler 19.1 (New in Intel® C++ Compiler 19.1.1)
- Corrections to reported problems.
Changes since Intel® C++ Compiler 19.0 (New in Intel® C++ Compiler 19.1)
- Access to Intel® C++ Next Generation Technology compiler, aka ICC NextGen
- New C++20 features supported
- New features from OpenMP* 5.0
System Requirements
For an explanation of architecture names, see Intel® Architecture Platform Terminology for Development Tools
Host hardware requirements
- A PC based on an Intel® 64 architecture processor supporting the Intel® Streaming SIMD Extensions 2 (Intel® SSE2) instructions (Intel® 2nd Generation or newer Generation of Intel® Core™ i3, i5, or i7 processors and Intel® Xeon® E3 or E5 Processor family, or compatible non-Intel processor)
- Development of 64-bit applications or applications targeting Intel® Many Integrated Core Architecture (Intel® MIC Architecture) is supported on a 64-bit version of the OS only. Development of 32-bit applications is now supported on a 64-bit version of the OS only. The compiler cannot be installed on a 32-bit OS.
- Development for a 32-bit target on a 64-bit host may require optional library components (ia32-libs, lib32gcc1, lib32stdc++6, libc6-dev-i386, gcc-multilib, g++-multilib) to be installed from your Linux distribution.
- For the best experience, a multi-core or multi-processor system is recommended
- 2GB of RAM (4GB recommended)
- 7.5GB free disk space for all features
Host software requirements
One of the following Linux host distributions: (This is the list of distributions supported by Intel, other distributions may or may not work and are not recommended - please refer to Technical Support if you have questions):
- Fedora* 31
- Red Hat* Enterprise Linux* (RHEL) 7, 8
- SUSE* Linux* Enterprise Server 12, 15
- Ubuntu* 18.04 LTS
- CentOS* 7, 8
Additional Requirements to use the -qnextgen option
- Linux Requirements:
- Ubuntu* 18.04 or greater
- Red Hat* Enterprise Linux* (RHEL) 7, 8
- SUSE* Linux* Enterprise Server 15
- Fedora 31
- Distributions based on the above should work but are not formally tested
- gcc versions: requires gcc versions 7.3 or greater (no older gcc versions supported)
- binutils 2.29.1 or greater
- glibc 2.26 or greater
Additional requirements to use the integration into the Eclipse* development environment
- Eclipse Platform version 4.8 with:
- Eclipse C/C++ Development Tools (CDT) 9.2.x
- Java* Runtime Environment (JRE*) 8.0 (also called 1.8) or later
- Eclipse Platform version 4.9 with:
- Eclipse C/C++ Development Tools (CDT) 9.3.x
- Java* Runtime Environment (JRE*) 7.0 (also called 1.8) or later
Notes:
- The Intel compilers are tested with a number of different Linux distributions, with different versions of gcc. Some Linux distributions may contain header files different from those we have tested, which may cause problems. The version of glibc you use must be consistent with the version of gcc in use. For best results, use only the gcc versions as supplied with distributions listed above.
- The default for the Intel® compilers is to build IA-32 architecture applications that require a processor supporting the Intel® SSE2 instructions - for example, the Intel® Pentium® 4 processor. A compiler option is available to generate code that will run on any IA-32 architecture processor. However, if your application uses Intel® Integrated Performance Primitives or Intel® Threading Building Blocks, executing the application will require a processor supporting the Intel® SSE2 instructions.
- Compiling very large source files (several thousands of lines) using advanced optimizations such as -O3 or -ipo may require substantially larger amounts of RAM.
- The above lists of processor model names are not exhaustive - other processor models correctly supporting the same instruction set as those listed are expected to work. Please refer to Technical Support if you have questions regarding a specific processor model
- Some optimization options have restrictions regarding the processor type on which the application is run. Please see the documentation of these options for more information
- Only IA-32/Intel® 64 targets are supported (IA-64 - Itanium® architecture is no longer supported.)
Target hardware requirements
- Development platform based on the Intel Atom® processor Z5xx, N4xx, N5xx, D5xx, E6xx, N2xxx, D2xxx, E3xxx, Z2xxx, Z3xxx, C2xxx, or Intel Atom® processor CE4xxx, CE53xx and the Intel® Puma™ 6 Media Gateway
- Intel Atom® Processors X Series Cxxx, Exxx, Zxxx
- Development platform based on a 2nd, 3rd, 4th, 5th, 6th, 7th or 8th generation Intel® Core™ processor
- Intel® Xeon® processors based on 2nd, 3rd 4th, 5th , 6th or 7th generation
- Intel® Xeon® Scalable processors series
- Development targeting Intel® Quark™ processor X1xxx, D1xxx, D2xxx, Intel® Quark™ SE C1xxx
- Needed hard disk space
- 13MB (IA-32) / 15MB (Intel® 64)
Target software requirements
The target platform should be based on one of the following environments:
- SUSE* Linux* Enterprise Server 12, 15
- Red Hat* Enterprise Linux* (RHEL) 7, 8
- CentOS* 7, 8
- Ubuntu* 18.04 LTS
- Wind River* Linux* LTS 19
- Yocto Project* 2.x, 3.x based environment
Developing for embedded Linux* OS targets
- Linux Developer tools component installed, including gcc, g++ and related tools
- gcc versions 4.4 - 8.x supported
- minimum gcc versions 5.5 required if using -qnextgen
- binutils versions 2.20-2.29 supported
- Library libunwind.so is required in order to use the –traceback option. Some Linux distributions may require that it be obtained and installed separately.
- 32bit libc developer package or compatibility package installed. The package name is
- libc6-dev-i386 on Ubuntu*
- glibc-devel.i686 on Red Hat* Linux* and Fedora*
- glibc-devel-32bit on SLES*
How to Use the Intel® C++ Compiler
Intel System Studio 2020: Getting Started with the Intel® C++ Compiler 19.1 for Linux* at <install-dir>/documentation_2020/en/compiler_c/iss2020/get_started_lc.htm contains information on how to use the Intel® C++ Compiler from the command line and from Eclipse.
The Intel® C++ Compiler for Linux* does not provide "modulefiles" for usage with the Environmental Modules software utility, but is well suited for such usage. See Using Environment Modules with Intel Development Tools for further information.
Documentation
Product documentation is linked from <install-dir>/documentation_2020/en/. Full documentation for all tool components is available at the Intel System Studio Documentation page.
Offline Core Documentation Removed from the Installed Image
The core documentation for the components of Intel® System Studio is available at the Intel® Software Documentation Library for viewing online.
Intel-provided Debug Solutions
Intel®-provided debug solutions are based GNU* GDB. Please see Intel® Parallel Studio XE 2020 Composer Edition C++ - Debug Solutions Release Notes for further information.
Samples
Product samples are now available online at Intel® System Studio Code Samples and Tutorials
Technical Support
If you did not register your compiler during installation, please do so at the Intel® Software Development Products Registration Center. Registration entitles you to free technical support, product updates and upgrades for the duration of the support term.
For information about how to find Technical Support, Product Updates, User Forums, FAQs, tips and tricks, and other support information, please visit the support page
Note: If your distributor provides technical support for this product, please contact them for support rather than Intel.
New and Changed Features
The following features are new or significantly enhanced in this version. For more information on these features, please refer to the documentation.
Access to Intel® C++ Next Generation Technology compiler, aka ICC NextGen
-qnextgen compiler option invokes ICC NextGen compiler. These options are only available for Windows* or Linux* ICC/ICL/ICPC drivers. This option and functionality is not available for ICC on macOS*. Please see this page for more information.
The Intel® C++ Compiler 19.1 supports the following features under the /Qstd=c++20 (Windows*) or -std=c++20 (Linux*/macOS*) options:
The Intel® C++ Compiler 19.1 supports the following features under the /Qstd=c++20 (Windows*) or -std=c++20 (Linux*/macOS*) options:
- std::is_constant_evaluated and __builtin_is_constant_evaluated
- if clause on SIMD directive
- NONTEMPORAL clause on SIMD directive
Parallel STL for parallel and vector execution of the C++ STL
Intel(R) C++ Compiler is installed with Parallel STL, an implementation of the C++ standard library algorithms with support for execution policies.
Features/API changes
- More algorithms support parallel and vector execution policies: find_first_of, is_heap, is_heap_until, replace, replace_if.
- More algorithms support vector execution policies: remove, remove_if.
- More algorithms support parallel execution policies: partial_sort.
To learn more, please refer to article Get Started with Parallel STL
Support Deprecated
- The following compiler options related to Loop Profiler are deprecated and will be removed in future compilers
- profile-loops=keyword
- profile-loops-report=value
- profile-functions
- guide-profile
Support Removed
- Intel® C++ Compiler support for Android* NDK r19 is removed
- Support for Android* target is removed
- FreeBSD* support is removed
- Intel® Cilk™ Plus support is removed in 19.1
Known Limitations
Parallel STL
- unseq and par_unseq policies only have effect with compilers that support '#pragma omp simd' or '#pragma simd. Parallel and vector execution is only supported for a subset of algorithms if random access iterators are provided, while for the rest execution will remain serial. Depending on a compiler, zip_iterator may not work with unseq and par_unseq policies.
Pointer Checker requires a dynamic runtime library
- When using the -check-pointers option, the runtime library libchkp.so must be linked in. When using options like -static or -static-intel with -check-pointers, be aware that this dynamic library will be linked in regardless of your settings. See the article at Pointer Checker in ICC for more information.
Building with Eclipse requires 32-bit development libraries
When building on Linux 64-bit host, Linux 32-bit target and 32bit development libraries are missing, the build seems to be successful in Eclipse but no binary is being created. Workaround: Install 32-bit development libraries