Visible to Intel only — GUID: GUID-4F6CCA3F-42C1-4DF4-9847-67D43DD9652B
Visible to Intel only — GUID: GUID-4F6CCA3F-42C1-4DF4-9847-67D43DD9652B
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 |
macOS: |
None |
Windows: |
None |
Arguments
mem_model |
Is the memory model to use. Possible values are:
|
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 COMMON blocks and local data with a total size smaller than 2GB, -mcmodel=small is sufficient. COMMONs larger than 2GB require-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.
When you specify option -mcmodel=medium or -mcmodel=large, it sets option -shared-intel. This ensures that the correct dynamic versions of the Intel runtime libraries are used.
If you specify option -static-intel while -mcmodel=medium or -mcmodel=large is set, an error will be displayed.
IDE Equivalent
Alternate Options
None
Example
The following example shows how to compile using -mcmodel:
ifort -shared-intel -mcmodel=medium -o prog prog.f