Inter-file Optimization Program Generator for Link Time Compilation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional link time optimization methods result in extended processing times due to unnecessary first-path compilation when link time optimization is performed, as they fail to consider the optimization of source files effectively during the compilation process.

Innovation Solution

An information processor is configured to identify and store first-path compilation information, perform inter-file optimization on specific source files, and generate intermediate files, allowing for the omission of first-path compilation for certain source files, thereby reducing processing time by generating object files through compilation of these intermediates.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If link time optimization is performed using conventional methods, then optimization among source files is achieved, but processing time is extended due to unnecessary first-path compilation

Engineering Contradiction:
Improveoptimization qualityVSAvoidprocessing time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The patent performs inter-file optimization in advance during the compilation phase, generating optimized intermediate files before linking. This preliminary optimization action eliminates the need for subsequent first-path compilation during link time optimization, thereby reducing total processing time while maintaining optimization quality. The system identifies source files requiring optimization, performs inter-file optimization on them, and stores the optimized results for later use.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If first-path compilation is performed for all source files, then object files are generated for both LTO and non-LTO cases, but compilation time is wasted on source files that will not be linked when LTO is performed

Engineering Contradiction:
ImprovecompatibilityVSAvoidcompilation efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent applies different compilation strategies to different source files based on their specific needs. It identifies which source files require inter-file optimization and which do not, then performs compilation only on the necessary files. This localized approach ensures that each source file receives the appropriate treatment (inter-file optimization or standard compilation) while avoiding wasteful compilation of files that won't be linked, thus improving overall compilation efficiency while maintaining compatibility.

Inventive Principle:
Principle #3Local quality

3Manufacturing precision

If inter-file optimization is performed on all source files, then optimization coverage is maximized, but processing time increases due to optimizing files that don't require it

Engineering Contradiction:
Improveoptimization coverageVSAvoidoptimization processing time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The patent performs inter-file optimization only on the subset of source files that actually require it, rather than applying optimization to all source files. The system identifies which source files have dependencies or characteristics that necessitate inter-file optimization, and applies the optimization process only to those specific files. This partial action approach maintains sufficient optimization coverage for files that need it while avoiding the time waste of optimizing files that don't require such treatment.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10481883B2Inter-file optimization program generation method, and program generator
Publication Date: 2019.11.19 FUJITSU LTD
  • US10481883B2 patent drawing
  • US10481883B2 patent drawing
  • US10481883B2 patent drawing

AI summary

An information processor including a memory; and a processor coupled to the memory and method thereof. The processor is configured to store first identification information of a first source file corresponding to an object file that is not linked, judge whether second identification information of a second source file specified as a target of compilation is stored in the memory, and generate an object file through compilation on a third source file where the second identification information of the second source file is stored in the memory. The processor is also configured to perform inter-file optimization on the second source file and the third source file to generate a plurality of intermediate files and generate a plurality of object files through compilation on the plurality of generated intermediate files.