# auto-ilp32, Qauto-ilp32

Instructs the compiler to analyze the program to determine if there are 64-bit pointers that can be safely shrunk into 32-bit pointers and if there are 64-bit longs (on Linux* systems) that can be safely shrunk into 32-bit longs.

## Architecture Restrictions

Only available on Intel® 64 architecture

## Syntax

Linux and macOS: | -auto-ilp32

Windows: | /Qauto-ilp32

## Arguments

None

## Default

OFF | The optimization is not attempted.

## Description

This option instructs the compiler to analyze the program to determine if there are 64-bit pointers that can be safely shrunk into 32-bit pointers and if there are 64-bit longs (on Linux* systems) that can be safely shrunk into 32-bit longs.

On macOS systems, you must also specify option -no-pie for the optimization to occur.

For this option to be effective, the compiler must be able to optimize using the [Q]ipo option and must be able to analyze all library calls or external calls the program makes. This option has no effect on Linux* systems unless you specify setting SSE3 or higher for option -x.

This option requires that the size of the program executable never exceeds 232 bytes and all data values can be represented within 32 bits. If the program can run correctly in a 32-bit system, these requirements are implicitly satisfied. If the program violates these size restrictions, unpredictable behavior may occur.

## IDE Equivalent

None

## Alternate Options

None

Parent topic: Data Options

## See Also

auto-p32 compiler option
pie compiler option
ipo, Qipo compiler option
parallel, Qparallel compiler option
x, Qx compiler option