Loop Detection Apparatus Using Call Stack Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing loop detection techniques in tracing technology often incorrectly identify false loops, leading to inefficient optimization and increased runtime overhead, as they rely solely on address matching without considering call stack information.

Innovation Solution

A method that compares both address and call stack information to determine if a sequence of unit processes forms a loop, using a loop detection apparatus with address and call stack comparison units to output a determination result, thereby preventing false loop detection and ensuring true loops are not rejected.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If loop detection is performed using only address matching, then the detection process is simple and fast, but false loops are incorrectly identified leading to inefficient optimization

Engineering Contradiction:
Improveoptimization efficiencyVSAvoidloop detection accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent extends loop detection from a single-dimensional address comparison to a multi-dimensional verification system that incorporates call stack information. By adding the call stack dimension, the system can distinguish between true loops and false loops that merely share the same entry address, thereby improving detection accuracy without significantly complicating the overall process.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Solution Approach 2:

The call stack serves as an intermediary data structure that mediates between the address information and the loop determination. Instead of directly comparing addresses, the system uses call stack information as an intermediate verification layer to confirm whether a detected address match represents a genuine loop, thus resolving the accuracy issue.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If call stack information is added to loop detection, then false loop detection is eliminated, but the detection complexity and processing time increase

Engineering Contradiction:
Improveloop detection accuracyVSAvoiddetection process complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system performs preliminary actions by recording call stack information at the time of backward branch detection, before the loop verification process begins. This pre-collection of call stack data eliminates the need for complex real-time analysis during the verification phase, simplifying the overall detection process while maintaining high accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of maintaining a complex live call stack structure throughout execution, the patent creates a simplified copy or snapshot of the call stack information at specific verification points. This copying approach reduces the complexity of handling call stack data during loop detection while preserving the essential information needed for accurate verification.

Inventive Principle:
Principle #26Copying

3Reliability

If comprehensive loop verification is performed, then true loops are correctly identified, but runtime overhead increases due to frequent switching to interpreter

Engineering Contradiction:
Improveloop identification reliabilityVSAvoidruntime overhead
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system implements feedback mechanisms where the call stack information is continuously monitored and fed back into the loop detection process. This feedback allows the system to make more accurate loop determinations earlier in execution, reducing the need for frequent interpreter switches and thereby decreasing runtime overhead while maintaining high reliability.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8856762B2Loop detection apparatus, loop detection method, and loop detection program
Publication Date: 2014.10.07 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8856762B2 patent drawing
  • US8856762B2 patent drawing
  • US8856762B2 patent drawing

AI summary

A loop detection method, system, and article of manufacture for determining whether a sequence of unit processes continuously executed among unit processes in a program is a loop by means of computational processing performed by a computer. The method includes: reading address information on the sequence of unit processes; comparing an address of a unit process as a loop starting point candidate with an address of a last unit process in the sequence of unit processes; reading call stack information on the sequence of unit processes; comparing a call stack upon execution of the unit process as the loop starting point candidate with a call stack upon execution of the last unit process; outputting a determination result indicating that the sequence of unit processes forms a loop if the respective comparison results of the addresses and the call stacks match with each other.