Release 1.3, patchlevel 2 (5/26/2000)

Summary

This release of CodeSurfer introduces some more major performance improvements, and some new features. In some cases build times have been cut by as much as a factor of four, the size of the dependence graph has been halved, and slice times have been more than halved. The new features include the ability to compute control-flow graphs and variable def/use sets. See below for details.

Performance

Removal of invalid local variables from `globals' This version introduces an improvement in how global-formal and global-actual vertices are created. Previously a local variable could appear as one of these vertices even if it could not possibly be in scope. These are now removed, with the consequence that build times, slice times and graph sizes are greatly reduced.

A second performance enhancement resulted from an internal data structure improvement having to do with how variable names are managed.

This table summarizes the improvements for this version compared with 1.3p0.  Note that two new benchmarks are shown here.  The first is the ijpeg benchmark from the SPEC collection.  The second is ntpd - the network time protocol daemon.

New Features

There are two major new features in this release

  1. The Control-flow graph for a program can be computed at build time.  Generation is controlled by the Control-Flow edges build option.
  2. For each vertex in the system, the set of variables used, killed or conditionally killed can be computed at build time.  Generation of these sets is controlled by the Variable Use/Def Sets build option.

Minor changes and bug fixes

  • Bugs
    1. A problem with the interpretation of the results from the find command in the Windows version has been fixed.
    2. Tab characters in the C source files are now displayed correctly in file viewers.
    3. A bug that appeared when renaming projects with open call graphs has been fixed.
    4. Several minor leaks in the Scheme code have been plugged.
    5. A segmentation fault that sometimes occurred after invoking find on the Unix version has been fixed.
    6. A problem where the project was not always saved on exit has been fixed.
    7. The PageUp/PageDown keys now work correctly.  Previously they would scroll twice as much as requested.
  • Other changes
    1. The section on Hyperlinks has been broken up into sections, and a new section has been added describing control-flow links.
    2. The documentation on the Scheme API has been updated to describe new methods on PDG vertices for accessing the control-flow edges. Also, documentation on how to retrieve variable use/def sets from either PDGs or ABS_LOCs.

Free Trial | Products | Customers | Support | News | Jobs | About Us         © 2007-2008, GrammaTech, Inc. All rights reserved.