Compiler Binary Optimization via Module Merging
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current compiler technologies require multiple compilations for different processor architectures, resulting in numerous binary files and inefficiencies, as they cannot optimize compiled binary code to run quickly and efficiently across various processor systems.
Innovation Solution
A method that divides source code into functional modules, compiles each module for multiple target processors, merges identical or similar object versions, and forms a composite object code file, optimizing the compilation process for multiple processor architectures.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If multiple compilations are performed for different processor architectures, then compatibility across various processors is improved, but the number of binary files increases and compilation efficiency deteriorates
Solution Approach 1:
The patent merges multiple target object versions of functional modules into a single composite object code file. The merging process deletes identical target object versions and retains only unique versions, thereby reducing the total number of binary files while maintaining compatibility across different processor architectures.
Solution Approach 2:
The composite object code file serves multiple processor architectures simultaneously. By creating a universal binary file that contains merged target object versions for different processors, the system achieves multi-functionality where a single file can be executed on various processor types without requiring separate compilations for each architecture.
2Adaptability or versatility
If multiple compilations are performed for different processor architectures, then compatibility across various processors is improved, but the number of binary files increases
Solution Approach 1:
The patent merges multiple target object versions of functional modules into a single composite object code file. The merging process deletes identical target object versions and retains only unique versions, thereby reducing the total number of binary files while maintaining compatibility across different processor architectures.
3Productivity
If source code is divided into functional modules and compiled separately, then compilation efficiency is improved, but the complexity of managing multiple object versions increases
Solution Approach 1:
The patent automatically merges multiple target object versions into a single composite object code file using a systematic process that identifies and deletes identical versions while retaining unique ones. This automated merging approach reduces management complexity despite the modular compilation process generating multiple versions.
Solution Approach 2:
The patent creates target object versions by copying and adapting functional module code for different processor architectures. The merging process then manages these copies systematically, reducing the burden of manual version control by automatically identifying duplicates and retaining only necessary unique versions.
Data Source
AI summary
The present invention provides a method to optimize object code files produced by a compiler for several different types of target processors. The compiler divides the source code to be compiled into several functional modules. Given a specified set of target processors, each functional module is compiled resulting in a target object version for each target processor. Then, for each functional module, a merging process is performed wherein identical target object versions or target object versions with similar contents are merged by deleting the identical or similar versions. After this merging process, a composite object code file is formed containing all of the non-deleted target object versions of the function modules.


