/[no]pipeline (ia64 only)

Syntax:

/pipeline or /nopipeline

On ia64 systems, the /pipeline (or /optimize:5) option activates the software pipelining optimization. This optimization applies instruction scheduling to certain innermost loops, allowing instructions within a loop to "wrap around" and execute in a different iteration of the loop. This can reduce the impact of long-latency operations, resulting in faster loop execution.

In the visual development environment, specify the Apply Software Pipelining Optimizations in the Optimizations Compiler Option Category.

For this version of Visual Fortran, loops chosen for software pipelining are always innermost loops and do not contain branches, procedure calls, or COMPLEX floating-point data.

Software pipelining also enables the prefetching of data to reduce the impact of cache misses.

Software pipelining is a subset of the optimizations activated by /optimize:5. Instead of specifying both /pipeline and /transform_loops, you can specify /optimize:5.

To specify software pipelining without loop transformation optimizations, do one of the following:

To determine whether using /pipeline benefits your particular program, you should time program execution for the same program (or subprogram) compiled with and without software pipelining (such as with /pipeline and /nopipeline).

For certain programs that contain loops that exhaust available registers, longer execution times may result with /optimize:5, requiring use of /unroll:count to limit loop unrolling. The /pipeline option applies only to ia64 systems.

For more information, see Software Pipelining.