Compiler Soft-Break Indicator for Loop Pipelining

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing compilers face inefficiencies in handling loops with early exits, as they often prevent software pipelining due to 'hard' breaks, limiting the overlap of loop iterations and thus reducing computing device performance.

Innovation Solution

Incorporating a 'soft-break' indicator that allows the compiler to complete in-flight iterations of a loop after an early exit, enabling software pipelining and improving resource utilization by removing loop-carried dependencies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the compiler prevents software pipelining due to hard breaks in loops, then loop correctness is maintained, but computing device performance deteriorates due to limited overlap of loop iterations

Engineering Contradiction:
Improveloop correctnessVSAvoidcomputing device performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the loop execution into distinct phases: in-flight iterations that are already in progress, and future iterations that have not yet started. The soft-break indicator allows the compiler to terminate future iterations while permitting in-flight iterations to complete, thereby segmenting the termination behavior to maintain both correctness and performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new parameter type - the soft-break indicator - that changes the termination behavior of loop iterations. This parameter allows differentiated handling between in-flight and future iterations, enabling software pipelining to continue for in-flight iterations while respecting the break condition for future iterations.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If the compiler allows soft-break with software pipelining, then computing device performance improves through concurrent execution, but loop control complexity increases

Engineering Contradiction:
Improvecomputing device performanceVSAvoidloop control complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent extracts the break condition handling from the general loop control mechanism by introducing a specific soft-break indicator. This extraction allows the compiler to apply specialized handling for soft-breaks that differs from hard-breaks, simplifying the overall control logic while enabling advanced optimizations like software pipelining.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The soft-break indicator acts as an intermediary between the high-level loop construct and the low-level software pipelining mechanism. It provides a clear signal to the compiler about the intended break behavior, enabling the compiler to generate optimized code that maintains correctness while achieving performance benefits.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If the compiler completes in-flight iterations after soft-break, then resource utilization improves, but execution time management becomes more complex

Engineering Contradiction:
Improveresource utilizationVSAvoidexecution time management
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by allowing the compiler to initiate and complete in-flight iterations before the soft-break takes effect. Iterations are started in advance with the understanding that they will complete even after the break condition is met, thereby utilizing available computing resources efficiently without requiring complex runtime management.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10628142B2Loop break
Publication Date: 2020.04.21 TEXAS INSTRUMENTS INC
  • US10628142B2 patent drawing
  • US10628142B2 patent drawing

AI summary

In the described examples, a non-transitory machine-readable medium includes a compiler that detects a soft-break indicator in a loop included in source code and the compiler applies software pipelining to generate compiled code for the loop. The compiled code includes assembly instructions and the soft-break indicator enables the compiler to arrange the assembly instructions to complete in-flight iterations of the loop after execution of the soft-break.