[comp.sys.sgi] Feedback Optimizer

mccalpin@MASIG1.OCEAN.FSU.EDU ("John D. McCalpin") (03/16/89)

I have been experimenting with the various optimization parameters 
of the MIPS f77 compiler on a Personal IRIS.  In several places, the
documentation refers to the ability of the system to create and use
a feedback file, which allows the optimizer to make use of profiling
information in a previous run in a new compilation.

The prof(1) manual entry explains how to create the feedback file,
but does not tell how to use it.  Neither do the man pages for f77(1)
or pixie(1). The compiler optimization guide in the C manual does not
refer to this feature either, except that such a feedback file appears
in two figures.

The prof(1) entry tells me to read the entries for umerge(1) and uopt(1)
for further information.  These man pages are not distributed with the
system, either on-line or hard-copy.

I called the hotline and spent some time explaining to the compiler person
there how the system was supposed to work. Now I remember why I quit using
the hotline!  I shouldn't pick on SGI, though, since I got about the same
result by calling MIPS....

So, does anyone know what to do with the feedback file created by
'prof -pixie -feedback feedback_file' to make the compiler/optimizer
use it?
--
----------------------  John D. McCalpin -------------------------
Mesoscale Air-Sea Interaction Group  &  Department of Oceanography
 & Supercomputer Computations Research Institute - Fl State Univ.
mccalpin@masig1.ocean.fsu.edu		mccalpin@nu.cs.fsu.edu
mccalpin@fsu	(BITNET or MFENET)	SCRI::MCCALPIN	(SPAN)
------------------------------------------------------------------

archer@elysium.SGI.COM (Archer Sully) (03/16/89)

In article <8903151749.AA06746@masig1.ocean.fsu.edu>, mccalpin@MASIG1.OCEAN.FSU.EDU ("John D. McCalpin") writes:
> 
> So, does anyone know what to do with the feedback file created by
> 'prof -pixie -feedback feedback_file' to make the compiler/optimizer
> use it?


The usage message from umerge looks like this:

Usage is: umerge infile [-f feedbackfile -t symfile] -o outfile [options...]
options are:
        -g<0-3>
        -O<0-4>
        -debug
        -bbmax n
        -i file
        -inline_all
        -noinline
        -growth_limit x

You can get umerge to use the feedback file by using the followin incantation:

cc -O3 -Wm,-f,feedback <other options> <.u files> <libs>

the -Wm passes the list of arguments to umerge.  This documented near
the end of the cc man page.

I'm not sure if it actually works, as I just tried something that uses
a completely bogus feedback file, and umerge didn't complain at all.
But you never know.

Good luck,

Archer Sully
archer@sgi.com

"life is short, and full of stuff"

		-- Lux Interior

--

len@synthesis.Synthesis.COM (Len Lattanzi) (03/16/89)

In article <8903151749.AA06746@masig1.ocean.fsu.edu> mccalpin@MASIG1.OCEAN.FSU.EDU ("John D. McCalpin") writes:
:So, does anyone know what to do with the feedback file created by
:'prof -pixie -feedback feedback_file' to make the compiler/optimizer
:use it?
:--
My data is based on Mips Compilers version 1.31 (use f77 -V to verify your
version)
There are two supported uses for feedback files.
1) Cache reorganizer
	prof -pixie -feedback fb
	f77 -cord -feedback fb -o xxx ....
   You should have a new binary whose procedures are organized to cause
   minimal cache conflicts when run in the same configuration as the feedback
   run
2) Inliner
	f77 -O3 -feedback -o xxx ....
   This option gives umerge hints about inlining based on your feedback run.
   I say hints because it's not always advantageous to inline. (Or are you
   running Dhrystone :-)
I will let MIPS know about the missing uopt/umerge man pages. 


 Len Lattanzi (len@Synthesis.com) <{ames,pyramid,decwrl}!mips!synthesis!len>
 Synthesis Software Solutions, Inc.				1 408 991 0367
 292 Commercial Avenue, Sunnyvale, California 94086