Intermediate Representation Node Segmentation for Code Translation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing program code translation methods struggle to efficiently translate code between different processor architectures, often resulting in suboptimal performance due to the inability to leverage specific features of target processors and loss of instruction semantics during translation.

Innovation Solution

A method and apparatus for translating subject code into target code using an intermediate representation that generates base, complex, polymorphic, and architecture-specific nodes, allowing for optimal performance and configuration across various processor architecture pairings by preserving instruction semantics and utilizing target-specific optimizations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a generic intermediate representation is used for code translation, then translation speed is improved, but target architecture-specific optimizations are lost

Engineering Contradiction:
Improvetranslation speedVSAvoidtarget architecture optimization
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The intermediate representation is segmented into multiple node types (base nodes for generic operations, complex nodes for architecture-specific operations, polymorphic nodes for configurable operations). This segmentation allows the translator to select appropriate node types based on the target architecture, achieving both fast translation through generic base nodes and optimized performance through architecture-specific complex nodes when needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The intermediate representation uses polymorphic nodes that can dynamically adapt their behavior based on the target architecture configuration. These nodes can be configured at translation time to represent different architectural features, allowing the same IR to serve multiple target architectures while maintaining optimization capabilities specific to each architecture.

Inventive Principle:
Principle #15Dynamics

2Manufacturing precision

If architecture-specific nodes are generated in intermediate representation, then target code efficiency is improved, but translator complexity increases

Engineering Contradiction:
Improvecode efficiencyVSAvoidtranslator complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The translator is designed with a universal intermediate representation framework that can handle multiple node types (base, complex, polymorphic) through a unified processing pipeline. The same core translation infrastructure can generate different node types based on configuration, avoiding the need for separate translators for each architecture and thus managing complexity while supporting architecture-specific optimizations.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Adaptability or versatility

If polymorphic nodes are used in intermediate representation, then adaptability to different architectures is improved, but translation overhead increases

Engineering Contradiction:
Improvearchitecture compatibilityVSAvoidtranslation overhead
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

Polymorphic nodes are used selectively rather than universally. The translator generates polymorphic nodes only for operations that require architecture-specific adaptation, while using simpler base nodes for operations that are architecture-agnostic. This localized use of polymorphic nodes reduces translation overhead while maintaining adaptability where needed.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS8104027B2Architecture for generating intermediate representations for program code conversion
Publication Date: 2012.01.24 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8104027B2 patent drawing
  • US8104027B2 patent drawing
  • US8104027B2 patent drawing

AI summary

An improved architecture for a program code conversion apparatus and method for generating intermediate representations for program code conversion. The program code conversion apparatus determines which types of IR nodes to generate in an intermediate representation (IR) of subject code (10) to be translated. Depending upon the particular subject and target computing environments involved in the conversion, the program code conversion apparatus utilizes either base nodes, complex nodes, polymorphic nodes, and architecture specific nodes, or some combination thereof, in generating the intermediate representation.