Siemens Pyramid pyrC compiler flags (as of March 1997)
======================================================
The following is a list of short explanations of compiler/linker flags
used for SPEC CINT95 result submissions for Siemens Nixdorf / Pyramid
RM systems, using the pyrC5.0 compiler.
This flag description supersedes the earlier description Pyramid-961126.txt
for the same compiler (the new description covers more flags).
It is likely that future result submissions, if they use new compilers
or new compiler versions, will have different flags; then this flag
description will be superseded by a new one.
---------------------------------------------------------------------
1. Compiler Flags
-qfeedback
Produce code that collects call graph and flow graph
information suitable for feedback directed optimization.
-WM,-profdir
Specifies that profiling information should be written to
and read from the directory . Default is ./PROF.
-WM,-Omips4
Performs all safe and generally applicable optimizations
including interprocedural optimizations, register
allocation across function calls and feedback directed
optimizations (function inlining, procedure positioning,
branch elimination, procedure splitting, register
allocation and cross basic block scheduling). This flag
also directs the compiler to produce nonposition-
independent code, to generate code using the instruction
set of the MIPS4 ISA, to inline alloca, printf, memcpy,
memset, memcmp, and memmove and to use U-code system
libraries. These libraries represent the same system
services as their regular counterparts, but in a form
more suitable for interprocedural optimization.
-WM,-G
Specifies that data items smaller than bytes in
size should be placed in the global data area and accessed
using a faster addressing mode. Default is 0.
-Wb,-br_likely_cntl,,
Controls the branch likely optimization which sets the
likely bit in a conditional branch. If feedback indicates
that a conditional branch is probably taken and the
branch cannot be reversed, the branch's likely bit is set
if both of the following criteria are met:
1) the branch is taken at least percent of the time and
2) equals 0 or the branch is taken at
times more often than the time the branch's function is
called.
Both and are expressed as percentages, defaults
are 90 and 0, respectively.
-Wb,-prefetch,,
This will insert prefetch instructions in loops if a
loop appears to access memory in a serial fashion. Only
loops which have at least iterations are
considered. is the expected latency for
fetches from memory in units of machine instruction
cycle times.
Off by default; Omips4 sets it "on" and sets the values to
40 and 400, respectively.
-Wg,-inline_limit:
Sets a size threshold for inlining. A call will not be
inlined if the resulting function (after inlining) exceeds
basic blocks. Default is 500.
-Wg,-space_time:
Tells the "umerge" phase to consider only those functions for
inlining whose estimated ratio of code expansion to time
savings is less than n. Default is 3.0.
-Wg,-boc:
Tells the "umerge" phase to consider only those functions for
inlining whose estimated ratio of runtime cycle save to I-cache
cost of doing inlining is greater than or equal to n.
Default is 1.0.
-Wo,-loopunroll:
Tells the optimizer to unroll loops times.
Default is 4, Omips4 sets to 8.
-Wo,unrolllimit:
is the limit on the number of instructions within a
loop unrolled by the optimizer.
Default is 500, Omips4 sets to 2000.
2. Linker Flags
-dn This option is passed to ld. It specifies static linking
in the link editor.
3. Portability Flags:
-DI_TIME
-DI_SYS_TIME
Enables certain (SPEC-approved) source code parts via conditional
compilation.
Questions?
More details can be found in the compiler documentation. SPEC-specific
questions should be sent to Siemens Nixdorf's SPEC OSG representative
Reinhold Weicker, weicker.pad@sni.de