Developer Guide and Reference

Contents

mcmodel

Tells the compiler to use a specific memory model to generate code and store data.
Architecture Restrictions
Only available on Intel® 64 architecture

Syntax

Linux:
-mcmodel
=
mem_model
Windows:
None
Arguments
mem_model
Is the memory model to use. Possible values are:
small
Tells the compiler to restrict code and data to the first 2GB of address space. All accesses of code and data can be done with Instruction Pointer (IP)-relative addressing.
medium
Tells the compiler to restrict code to the first 2GB; it places no memory restriction on data. Accesses of code can be done with IP-relative addressing, but accesses of data must be done with absolute addressing.
large
Places no memory restriction on code or data. All accesses of code and data must be done with absolute addressing.
Default
-mcmodel=small
On systems using Intel® 64 architecture, the compiler restricts code and data to the first 2GB of address space. Instruction Pointer (IP)-relative addressing can be used to access code and data.
Description
This option tells the compiler to use a specific memory model to generate code and store data. It can affect code size and performance. If your program has
global and static
data with a total size smaller than 2GB,
-mcmodel=small
is sufficient.
Global and static data
larger than 2GB
requires
-mcmodel=medium
or
-mcmodel=large
. Allocation of memory larger than 2GB can be done with any setting of
-mcmodel
.
IP-relative addressing requires only 32 bits, whereas absolute addressing requires 64-bits. IP-relative addressing is somewhat faster. So, the
small
memory model has the least impact on performance.
This content is specific to C++; it does not apply to
DPC++
.
When you specify option
-mcmodel=medium
or
-mcmodel=large
, it sets option
-shared-intel
. This ensures that the correct dynamic versions of the Intel run-time libraries are used.
If you specify option
-static-intel
while
-mcmodel=medium
or
-mcmodel=large
is set, an error will be displayed.
IDE Equivalent
None
Alternate Options
None
Example
The following example shows how to compile using
-mcmodel
:
This content is specific to C++; it does not apply to
DPC++
.
icx -shared-intel -mcmodel=medium -o prog prog.c

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.