dtj v10-01 1998

Order Number: BC-P9706-18

This issue of the Digital Technical Journal, Volume 10 Number 1 from 1998, marks its final publication. Dedicated to "Programming Languages & Tools," it encapsulates the era's advancements in compiler software, which are metaphorically depicted as "alchemists" transforming common code into high-performance applications. The journal's 13-year history saw significant engineering accomplishments for DIGITAL, particularly in network, storage, VAX, and Alpha technologies.

The issue features several papers addressing critical challenges in optimizing software for high-performance systems:

  1. System Workload Characterization: "Tracing and Characterization of Windows NT-based System Workloads" introduces PatchWrx, a tool to capture operating system-rich traces on Alpha-based Windows NT machines. It demonstrates that OS execution can significantly impact desktop application performance, and traditional benchmarks often fail to represent this behavior accurately.
  2. C++ Template Management: "Automatic Template Instantiation in DIGITAL C++" details Compaq's compile-time automatic template instantiation scheme for DIGITAL C++ 6.0, which uses a repository for object files. This significantly improved build times and reduced repository file counts compared to previous versions.
  3. Compiler Performance Measurement: "Measurement and Analysis of C and C++ Performance" outlines Compaq's systematic approach to monitoring and improving C/C++ compiler performance. It describes metrics, test environments, and tools used to identify and resolve performance regressions (e.g., fixing issues in Iostream and Haney Kernels benchmarks).
  4. Alias Analysis: "Alias Analysis in the DEC C and DIGITAL C++ Compilers" explains how compilers use source-level type information to accurately detect "aliases" (multiple expressions referencing the same memory location). This improves code optimization by reducing redundant loads and stores but carries a risk for non-standard conforming code.
  5. Global Instruction Scheduling: "Compiler Optimization for Superscalar Systems: Global Instruction Scheduling without Copies" presents Dominator-Path Scheduling (DPS), a technique for reordering instructions across basic blocks to enhance parallelism on superscalar architectures like the Alpha 21164, without the overhead of compensation copies. DPS demonstrated significant execution time improvements, especially for floating-point programs.
  6. Multiprocessor Performance: "Maximizing Multiprocessor Performance with the SUIF Compiler" (an updated reprint) describes how the SUIF compiler uses robust interprocedural analysis and memory optimization techniques (like affine partitioning and page coloring) to achieve substantial speedups on NAS and SPECfp95 benchmarks for multiprocessor systems.
  7. Debugging Optimized Code: "Debugging Optimized Code: Concepts and Implementation on DIGITAL Alpha Systems" addresses the complexities of debugging optimized code. It details improvements in Compaq's GEM compiler and OpenVMS DEBUG, including support for split lifetime variables, semantic stepping, and transparent inlining, to provide a more accurate debugging experience.
  8. Software Testing: "Differential Testing for Software" introduces a form of random testing that compares the behavior of multiple comparable software systems. This cost-effective method has successfully uncovered bugs in C compilers by generating varied test cases and comparing their outputs, complementing traditional regression testing.

The issue collectively highlights the ongoing challenges and innovations in compiler technology, emphasizing their crucial role in extracting maximum performance from increasingly complex hardware architectures and ensuring the reliability and quality of software applications.

BC-P9706-18
December 1998
111 pages
Quality

Original
10MB

Site structure and layout ©2025 Majenko Technologies