Feedback Directed Program Restructuring (FDPR-Pro)
FDPR-Pro Code Base Optimizations and Infrastructure
FDPR-Pro allows various sets of powerful optimizations to be applied on a given binary file from any supported architecture. To support this polymorphism, an abstract representation is required.
HLR (High Level Representation)
The HLR infrastructure allows data flow optimizations to be written in a platform independent form. Classic compiler optimizations are also applied over this layer and can remain unaware of the machine specific details. HLR contains many aspects from classic compiler design but also contains features unique to the needs of postlink optimizers.
HLR includes the following powerful features:
Purely machine independent representation.
Virtual instructions, such as virtual def-use instructions, which specify calling ABIs
Future use can also include phi functions when in SSA-form
Aliasing for memory.
Register alias sets.
Polymorphic instructions
By replacing resources in an instruction, the instruction may change completely. For example, a store instruction may change to a move instruction.
Unbounded scope
The interface layer does not make assumptions regarding procedural structure. This allows optimizations written over this layer to be applied for scopes larger than a single procedure.
Team & Contacts
Roy Levin
Shimon Nodelman
Yaron Soffer
For more information, please contact: Roy Levin (royl@il.ibm.com)