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