Browse Prior Art Database

Method and apparatus for establishing source-level breakpoints in predicated long instruction word architectures

IP.com Disclosure Number: IPCOM000014254D
Original Publication Date: 2001-Jan-12
Included in the Prior Art Database: 2003-Jun-19
Document File: 2 page(s) / 53K

Publishing Venue

IBM

Abstract

Predicated instruction sets offer new challenges to debugging, such implementing source-level breakpoints. Whereas in traditional instruction sets, the locus of control in the source representation

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 70% of the total text.

Page 1 of 2

  Method and apparatus for establishing source-level breakpoints in predicated long instruction word architectures

Predicated instruction sets offer new challenges to debugging, such implementing source-level breakpoints. Whereas in traditional instruction sets, the locus of control in the source representation
(e.g., line number) corresponds to a locus of control in the target assembly program (a particular range of instruction addresses), this is not the case in predicated code.

Predicated code derives its benefits from removing such code flow decisions points, and representing a unified control flow for program structures such as "hammocks" or "diamonds" by conditionally executing only one path, but keeping a unified control flow. This eliminates branch penalties and leads to performance improvements for sufficiently small programming constructs.

Consider the example

1 if (cond) 2 add rt=rs1,rs2; 2 else 4 sub rt=rs1,rs2;

which well be translated to a single long instruction word without any branch penalty (an if-clause representing the predicate condition):

add rt=r1,rs2 if (cond) || sub rt=rs1,rs2 if (!cond)

As can be seen in the example, it is not possible to set a breakpoint in one of the paths because the control flow for these has been merged. This can be resolved by implementing a predicated breakpoint facility which can be used to set breakpoints along a logical source-level control flow in object code with folded control flow.

According to this approach,...