Compiler Register Promotion with Hardware Alias Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern computer compilers are unable to perform register promotion optimizations in regions of code where memory aliasing can occur, leading to suboptimal performance due to the risk of memory aliasing, which limits the execution time and efficiency of computer programs.

Innovation Solution

Incorporating processor hardware that detects and corrects memory aliasing, allowing compilers to use special store instructions and register promotion optimizations even in regions where memory aliasing is possible, ensuring proper operation and sequential memory consistency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the compiler performs register promotion optimizations in regions where memory aliasing may occur, then the execution time and performance are improved, but the risk of incorrect code operation increases due to undetected memory aliasing

Engineering Contradiction:
Improveexecution timeVSAvoidcode operation correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces special store instructions as an intermediary mechanism between the compiler optimization and hardware execution. These special instructions act as markers that trigger hardware-based memory aliasing detection, allowing the compiler to perform aggressive register promotion while the hardware ensures correctness by detecting and handling aliasing cases that escape static analysis.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements a feedback mechanism where the hardware detects memory aliasing conditions and provides information back to the execution pipeline. When aliasing is detected, the hardware flushes the instruction pipeline and re-executes affected instructions, ensuring correctness while allowing the compiler to maintain optimized register promotion strategies.

Inventive Principle:
Principle #23Feedback

2Reliability

If the compiler avoids register promotion in regions where memory aliasing may occur, then the risk of incorrect operation is reduced, but the execution time increases due to suboptimal code generation

Engineering Contradiction:
Improvecode operation correctnessVSAvoidexecution time
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The special store instructions serve as intermediaries that enable the compiler to perform register promotion while triggering hardware-based safety checks. This allows the compiler to generate optimized code without sacrificing correctness, as the hardware will detect and handle any aliasing cases that the compiler's static analysis missed.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent applies preliminary register promotion optimizations during compilation without conservatively avoiding regions with potential aliasing. The compiler performs aggressive optimizations upfront, and the hardware's runtime detection mechanism serves as a safety net, eliminating the need for the compiler to make conservative decisions that would reduce optimization opportunities.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If the compiler performs aggressive optimizations assuming no memory aliasing, then the code execution speed is improved, but the manufacturing complexity of the compiler increases due to the need for sophisticated aliasing analysis

Engineering Contradiction:
Improvecode execution speedVSAvoidcompiler complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent extracts the memory aliasing detection functionality from the compiler and places it in the hardware. This allows the compiler to perform simple, aggressive optimizations without investing complex analysis resources in aliasing detection, while the hardware handles the runtime detection and correction of aliasing cases.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The special store instructions act as intermediaries that carry aliasing detection information from the compiler to the hardware. The compiler only needs to insert these markers without performing complex aliasing analysis, while the hardware interprets and acts on these markers to ensure correctness.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10228921B2Compiler that performs register promotion optimizations in regions of code where memory aliasing may occur
Publication Date: 2019.03.12 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10228921B2 patent drawing
  • US10228921B2 patent drawing
  • US10228921B2 patent drawing

AI summary

Processor hardware detects when memory aliasing occurs, and assures proper operation of the code even in the presence of memory aliasing. Because the hardware can detect and correct for memory aliasing, this allows a compiler to make optimizations such as register promotion even in regions of the code where memory aliasing can occur. The result is code that is more optimized and therefore runs faster.