| a | | Includes all reports in the listing (including source, cross references, lint, loopmarks,
common block, and options used during compilation). For more information about loopmarks, refer to Optimizing Applications on the Cray X1 System. |
| d | | Decompiles (translates) the intermediate representation of the compiler into listings
that resemble the format of the source code. This is performed twice, resulting in two output files, at
different points during the optimization process. You can use these files to examine the restructuring
and optimization changes made by the compiler, which can lead to insights about changes you can make to
your Fortran source to improve its performance. The compiler produces two decompilation listing files, with these extensions, per source file specified
on the command line: .opt and .cg. The compiler generates the .opt file after applying most high level loop nest transformations to the code. The code structure
of this listing most resembles your Fortran code and is readable by most users. In some cases, because
of optimizations, the structure of the loops and conditionals will be significantly different than the
structure in your source file. The .cg file contains a much lower level of decompilation. It is still displayed
in a Fortran-like format, but is quite close to what will be produced as assembly output. This version
displays the intermediate text after all multistreaming translation, vector translation, and other optimizations
have been performed. An intimate knowledge of the hardware architecture of the system is helpful to understanding
this listing. Note: The column of numbers in the left-hand side of the .opt and .cg files refer to the line number in the Fortran source file.
The .opt and .cg files are intended as a tool for performance
analysis, and are not valid Fortran functions. The format and contents of the files can be expected to
change from release to release. The following examples show the listings generated when the -rd is applied to this
example: !Source code, in file example.f:
subroutine example( a, b, c )
real a(64), b(64), c(64)
do i = 1,64
if ( a(i) > 0.0 ) then
b(i) = c(i)
endif
enddo
end |
This is the listing of the example.opt file after loop optimizations are performed: 1. subroutine example( a, b, c )
3. @Induc01_N0 = 0
3. !dir$ ivdep
3. do
4. if ( A(1 + @Induc01_N0) > 0.0 ) then
5. B(1 + @Induc01_N0) = C(1 + @Induc01_N0)
5. endif
7. @Induc01_N0 = 1 + @Induc01_N0
6. if ( @Induc01_N0 < 64 ) cycle
6. enddo
8. return
8. end |
This is the listing of the example.opt file after other optimizations are performed: 1. subroutine example( a, b, c )
3. vinfo( Begin_Short_Loop )
4. $VMT_2 = _vm_gt( 0[loc( A ):64:1], 0.0 )
5. 0[loc( B ):64:1#$VMT_2] = 0[loc( C ):64:1#$VMT_2]
3. vinfo( End_Short_Loop )
8. return
8. end |
|
| m | | Produces a source listing with loopmark information. To provide a more complete report,
this option automatically enables the -O negmsg option to show why loops were not optimized.
If you do not require this information, use the -O nonegmsg option on the same command
line. Loopmark information will not be displayed if the -d B option has been specified. |
| w | | Produces 132-column output, which, when specified in conjunction with -r s or -r x, overrides the 80-column output that those options produce
by default. You can specify -r w in conjunction with either the -r s option
or the -r x option. Specifying -r w in conjunction with
any other -r listing option generates a warning message. |