<?xml version="1.0"?>
<!DOCTYPE flagsdescription
   SYSTEM "http://www.spec.org/dtd/cpuflags1.dtd"
>
<flagsdescription>
<filename>ic91_fp.xml</filename>
<title>SPEC CPU2006 Flags Description for the Intel(R) Compiler v9.1</title>
<header><![CDATA[
<p>HITACHI Flags Description.</p>
]]></header>

<flag name="F-icc"
      class="compiler"
      regexp="(?:/\S+/)?icc\b">
<example>icc</example>
      <![CDATA[
      <p>Invoke the Intel C compiler for EM64T</p>
      ]]>
</flag>

<flag name="F-icpc"
      class="compiler"
      regexp="(?:/\S+/)?icpc\b">
<example>icpc</example>
      <![CDATA[
      <p>Invoke the Intel C++ compiler for EM64T</p>
      ]]>
</flag>

<flag name="F-ifort"
      class="compiler"
      regexp="(?:/\S+/)?ifort\b">
<example>ifort</example>
      <![CDATA[
      <p>Invoke the Intel Fortran compiler for EM64T</p>
      ]]>
</flag>

<flag name="F-fast"
      class="optimization">
<example>-fast</example>
      <![CDATA[
      <p>enable -xP -O3 -ipo -no-prec-div -static</p>
      ]]>
<include flag="F-xP" />
<include flag="F-O3" />
<include flag="F-ipo" />
<include flag="F-no-prec-div" />
<include flag="F-static" />
</flag>

<flag name="F-prof_gen"
      class="optimization">
<example>-prof_gen</example>
      <![CDATA[
      <p>Instrument program for profiling for the first phase of two-phase profile guided otimization. This instrumentation gathers information about a program's execution paths and data values but does not gather information from hardware performance counters. The profile instrumentation also gathers data for optimizations which are unique to profile-feedback optimization.
</p> 
      ]]>
</flag>

<flag name="F-prof_use"
      class="optimization">
<example>-prof_use</example>
      <![CDATA[
      <p>Instructs the compiler to produce a profile-optimized executable and merges available dynamic information (.dyn) files into a pgopti.dpi file. If you perform multiple executions of the instrumented program, -prof_use merges the dynamic information files again and overwrites the previous pgopti.dpi file.
Without any other options, the current directory is searched for .dyn files
</p>
      ]]>
</flag>

<flag name="F-parallel"
      class="optimization">
<example>-parallel</example>
      <![CDATA[
      <p>enable the auto-parallelizer to generate multi-threaded code for loops that can be safely executed in parallel</p>
      ]]>
</flag>

<flag name="F-O3"
      class="optimization">
<example>-O3</example>
      <![CDATA[
      <p>Enable -O2 plus more aggressive optimizations that may not improve performance for all programs. On Linux platforms, -O3 sets the -fp flag.</p>
      ]]>
      <include flag="F-O2" />
      <include flag="F-fp" />
</flag>

<flag name="F-O2"
      class="optimization">
<example>-O2</example>
      <![CDATA[
      <p>Enable optimizations of defaults level. -O2 includes -O1 optimizations and in addition enables inlining of intrinsics and more speed optimizations.</p>
      ]]>
      <include flag="F-O1" />
</flag>

<flag name="F-O1"
      class="optimization">
<example>-O1</example>
      <![CDATA[
      <p>Optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit. Includes inline expansion except for intrinsic functions, global optimizations, string pooling optimizations. On Linux platforms, -O1 sets the following:</p>
      <p>-unroll0 -fno-builtin -mno-ieee-fp -fomit-frame-pointer -ffunction-sections</p>
      ]]>
      <include flag="F-unroll_n" />
      <include flag="F-fno-builtin" />
      <include flag="F-mno-ieee-fp" />
      <include flag="F-fomit-frame-pointer" />
      <include flag="F-ffunction-sections" />
</flag>

<flag name="F-unroll_n"
      class="optimization">
<example>-unroll_n</example>
      <![CDATA[
      <p>Set maximum number of times to unroll loops. Use n=0 to disable loop unroller.</p>
      ]]>
</flag>

<flag name="F-fno-builtin"
      class="optimization">
<example>-fno-builtin</example>
      <![CDATA[
      <p>disable inline expansion of intrinsic functions</p>
      ]]>
</flag>

<flag name="F-mno-ieee-fp"
      class="optimization">
<example>-mno-ieee-fp</example>
      <![CDATA[
      <p>Enables improved floating-point consistency. Floating-point operations are not reordered and the result of each floating-point operation is stored in the target variable rather than being kept in the floating- point processor for use in a subsequent calculation. This is the same as specifying -fltconsistency or -mp.</p>
      <p>The default, -mno-ieee-fp, provides better accuracy and run-time per- formance at the expense of less consistent floating-point results.
</p>
      ]]>
</flag>

<flag name="F-fomit-frame-pointer"
      class="optimization">
<example>-fomit-frame-pointer</example>
      <![CDATA[
      <p>enable using EBP as general purpose register</p>
      ]]>
</flag>

<flag name="F-ffunction-sections"
      class="optimization">
<example>-ffunction-sections</example>
      <![CDATA[
      <p>separate functions for the linker (COMDAT)</p>
      ]]>
</flag>

<flag name="F-fp"
      class="optimization">
<example>-fp</example>
      <![CDATA[
      <p>disable using EBP as general purpose register</p>
      ]]>
</flag>

<flag name="F-xP"
      class="optimization">
<example>-xP</example>
      <![CDATA[
      <p>generate specialized code to run exclusively on processors indicated by Intel Core(TM) Duo processors, 
Intel Core(TM) Solo processors, 
Intel Pentium 4 and compatible Intel processors 
with Streaming SIMD Extensions 3 (SSE3) instruction support</p>
      ]]>
</flag>

<flag name="F-ipo"
      class="optimization">
<example>-ipo</example>
      <![CDATA[
      <p>enable multi-file Interprocedural Optimizations (between files) 
      </p>
      ]]>
</flag>

<flag name="F-no-prec-div"
      class="optimization">
<example>-no-prec-div</example>
      <![CDATA[
      <p>improve speed of floating-point divides and disable improved precision of floating-point divides</p>
      ]]>
</flag>

<flag name="F-static"
      class="optimization">
<example>-static</example>
      <![CDATA[
      <p>prevents linking with shared libraries</p>
      ]]>
</flag>

<flag name="F-nofor_main"
      class="portability">
<example>-nofor_main</example>
      <![CDATA[
      <p>do not link against Fortran main object Used when linking Fortran objects with C main program</p>
      ]]>
</flag>

</flagsdescription>

