Technical Blog Post
Abstract
Advanced compiler techniques and tools which can improve performance
Body
Alphabet Soup: LTO - IPA - FDO - PDF - FDPR !
When building / developing your application, there are advanced levels of application building optimizations available through a variety of techniques. Here we introduce some of the more common advanced approaches we leverage on Power Linux systems today.
- Link-time optimization (LTO) - used with GCC
- Inter-procedural analysis (IPA) - used with IBM XL and GCC
- Feedback-directed optimization (FDO) - used with GCC
- Profile-directed optimization (PDF) - used with IBM XL
- Feedback-directed program re-structuring (FDPR) - used with either GCC or IBM XL
The underlying techniques are available for both GCC and IBM XL compilers, with slightly different names describing the technologies being used.
LTO (Link-time optimization) is a technology that GCC implemented recently starting in GCC 4.5. This technology update is available in the Advance Toolchain 5.0 for IBM Power systems. Link-time
optimization is a version of inter-procedural analysis which
is enabled by IBM XL compilers starting in the "-O4"
optimization level. You can find more information about GCC's LTO in
the GCC documentation.
FDO (Feedback-directed optimization) in the GCC based compiler is technically equivalent to PDF (Profile-directed optimization) in the IBM XL compiler. The
-fprofile-generate and -fprofile-use are compiler options in GCC to enable the FDO technology. On the IBM XL compiler side, PDF is one of the many features which come which those compilers. See IBM XL compiler features for more details on what the IBM compilers can provide. FDPR (Feedback Directed Program Restructuring) is another feed-back based optimization technique. It is however being done after the compiler linking phase using a tool called IBM Post-Link Optimization for Linux on Power (also known as FDPRpro). As a result, it can do even more aggressive optimization. This tool is included in the IBM SDK for LoP. There is also a new IBM DeveloperWorks Community for more information on the tool.
For GCC based applications, it's important to recognize that LTO, FDO and FDPR are simply different forms of optimizations which can be performed independently of the others and that they each use distinct technologies. The same is true of course when using IBM XL compilers when using IPA, PDF and FDPR.
For GCC based applications, it's important to recognize that LTO, FDO and FDPR are simply different forms of optimizations which can be performed independently of the others and that they each use distinct technologies. The same is true of course when using IBM XL compilers when using IPA, PDF and FDPR.
.
[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"HW1W1","label":"Power ->PowerLinux"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":"","Line of Business":{"code":"","label":""}}]
UID
ibm16172179