Release 5.4.0.18 of FDPR-Pro:
Release 5.4.0.18 provides more stable support for GCC4.3, the new XL compilers, XLC9.0 and XLF 11.1, and the new versions of the GNU linker, 2.17 and 2.18. These versions will appvear with SLES11 and RHEL6 and later.
Main changes:
- Faster processing time. Various internal algorithms have been optimized. Faster performance is evident in large applications.
- Support new .gun.attributes section, introduced in GCC 4.3.
- Conservative data reordering of ELF64 programs. Some pointer optimizations in GCC4.3 limit the aggressiveness of the data reordering algorithm (see -asd below).
- Messages produced during profiling. Instead of sending these messages to stdout, where they can be lost or otherwise mistakenly ignored, they are logged in <profile file>.errors_<pid>_<tid>.
- More stable handling of embedded applications, in particular correct handling of relocations characteristic to embedded code.
New options:
- --mullX-optimization (-omullX). The optimization replaces integer multiply instructions by faster instructions if special operands, like zero or one, occur in high proportion. This is particularly important for Power6 targets. To enable the optimization, add corresponding -imullX option during the instrumentation phase. To tune the optimization specifically for Power6, specify also -m power6.
- --shortcut-plt-calls (-spc). By convention the Linux linker connects calls to targets through a PLT stub when linking shared libraries even if the target is in the shared library. The optimization, in this case, connects the call directly to its target.
- --instrumentation-stack-offset (-iso). This instrumentation option was invisible till now and is now exposed to the user. It sets the offset from the runtime stack where instrumentation's registers are saved. This is useful in some multi-threading applications that have limited stack/thread. Use with care.
- --instrumentation-safe-stack-usage (-issu). Ensures additional stack space is properly allocated for the instrumented run. Use this option if your application uses stack extensively (e.g., when the program uses alloca()). Note that this option adds extra overhead in instrumentation code.
- --analyze-static-data (-asd). Enables the fully aggressive data reordering optimization. By default static data (.data and .bss) is not reordered to ensure validity of compiler-generated pointers associated with the static data.
Bug fixes:
- Fix handling of PLTREL24 relocations with special addend (which in fact help to fix PIC relocations).
- Fix .eh_frame_hdr processing, properly locating references to code via function descriptors.
- Better handling of programs with no .data section (happens in Fortran code compiled with xlf).
- Handle programs with empty Order Units.
- Fix handling relative branches through PLT.
- Support PIC code that uses _GLOBAL_OFFSET_TABLE_ as well as .plt as base.
- Correct handling of programs that use alloca() (see -iuss option above).
- Correct and more flexible handling of recently-introduced optimized PLT call. stub, as well as allow for static relocations created by the linker (when --emit-relocs is specified).
- Safer code for LD R11 removal optimization (the -pr option).
- Properly identify XLC-generated weak functions which starts with a zero word.
- Allowing trampolines to be placed at the very beginning of the executable code.
- Proper handling of REL14 relocations.
- Stack optimization (-so) is disabled for ELF32.
Additional information
For additional information consult the man page.
fdprpro man page is placed under "/opt/man". Make sure MANPATH
includes this path.