Compiler Interprocedural Optimization for Library Object Files

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional interprocedural optimization techniques fail to effectively optimize procedures in library object files, leading to reduced efficiency of machine code and execution speed of executable programs, as they are not designed to handle object files in libraries and differ from the steps taken to create object files for optimization.

Innovation Solution

A system and method for compiler interprocedural optimization that involves extracting object files from libraries, identifying interprocedural optimizations using interprocedural summary information and compiler internal representations, recompiling the object files to implement these optimizations, and generating executable files, thereby supporting optimization of procedures within library object files.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional interprocedural optimization techniques are used, then optimization can be performed on object files created during compilation, but optimization cannot be applied to object files in libraries

Engineering Contradiction:
Improveoptimization applicabilityVSAvoidmachine code efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The system segments the optimization process into distinct phases: extraction of object files from libraries, separate interprocedural optimization analysis, and reintegration into the compilation workflow. This allows library object files to be optimized independently using the same techniques as regularly compiled object files, resolving the contradiction between optimization applicability and machine code efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary optimization module that acts as a bridge between the library system and the interprocedural optimization process. This intermediary extracts object files from libraries, applies optimization analysis using interprocedural summary information, and reintegrates the optimized code, enabling optimization of library objects without disrupting the existing library architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If object files are extracted from libraries for optimization, then interprocedural optimization can be applied, but additional processing steps are required

Engineering Contradiction:
Improveoptimization capabilityVSAvoidcompilation process complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system performs preliminary actions by extracting and analyzing interprocedural summary information from object files before the main optimization process. This preliminary analysis prepares the necessary data structures and optimization opportunities, allowing the subsequent optimization phase to proceed efficiently without requiring complex real-time processing during the main compilation workflow.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The optimization module uses self-service by automatically extracting interprocedural summary information from object files and generating the necessary optimization analyses without requiring external intervention or complex coordination with other compilation tools. The system serves itself by maintaining internal data structures that enable autonomous optimization decision-making.

Inventive Principle:
Principle #25Self-service

3Speed

If library object files are optimized using conventional techniques, then execution speed may improve, but the techniques cannot actually optimize procedures in library object files

Engineering Contradiction:
Improveexecution speedVSAvoidoptimization effectiveness
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent applies parameter changes by modifying the optimization parameters specifically for library object files. Instead of using standard compilation parameters, the system adjusts interprocedural analysis parameters to account for the unique characteristics of library objects, including their separation from the main compilation process and their reliance on summary information. This enables reliable optimization of library procedures while maintaining execution speed improvements.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7774767B2System and method for compiler interprocedural optimization having support for object files in libraries
Publication Date: 2010.08.10 STMICROELECTRONICS INT NV
  • US7774767B2 patent drawing
  • US7774767B2 patent drawing
  • US7774767B2 patent drawing

AI summary

A method includes extracting at least one object file from a library of object files. The method also includes identifying an interprocedural optimization associated with a plurality of object files. The plurality of object files includes the at least one extracted object file. The method further includes invoking recompilation of at least one of the plurality of object files to implement the identified interprocedural optimization. In addition, the method includes generating at least one executable file using the at least one recompiled object file. The plurality of object files could include interprocedural summary information generated by a compiler during a compilation of at least one source file and a compiler internal representation associated with the compiler during the compilation. The interprocedural optimization could be identified using the interprocedural summary information, and the at least one recompiled object file could be generated using the compiler internal representation.