skip to main content
10.1145/143095acmconferencesBook PagePublication PagespldiConference Proceedingsconference-collections
PLDI '92: Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
ACM1992 Proceeding
Publisher:
  • Association for Computing Machinery
  • New York
  • NY
  • United States
Conference:
PLDI92: SIGPLAN 92 Conference on Programming Language Design and Implmentation San Francisco California USA June 15 - 19, 1992
ISBN:
978-0-89791-475-8
Published:
01 July 1992
Sponsors:

Reflects downloads up to 10 Feb 2025Bibliometrics
Abstract

No abstract available.

Skip Table Of Content Section
Article
Free
A new approach to debugging optimized code

Debugging optimized code is a desirable capability not provided by most current debuggers. Users are forced to debug the unoptimized code when a bug occurs in the optimized version. Current research offers partial solutions for a small class of ...

Article
Free
Dynascope: a tool for program directing

This paper introduces program directing, a new way of program interaction. Directing enables one program, the director, to monitor and to control another program, the executor. One important application of program directing is human interaction with ...

Article
Free
A retargetable debugger

We are developing techniques for building retargetable debuggers. Our prototype, 1db, debugs C programs compiled for the MIPS R3000, Motorola 68020, SPARC, and VAX architectures. It can use a network to connect to faulty processes and can do cross-...

Article
Free
Debugging optimized code with dynamic deoptimization

SELF's debugging system provides complete source-level debugging (expected behavior) with globally optimized code. It shields the debugger from optimizations performed by the compiler by dynamically deoptimizing code on demand. Deoptimization only ...

Article
Free
The design and implementation of HoME

HoME is a version of Smalltalk which can be efficiently executed on a multiprocessor and can be executed in parallel by combining a Smalltalk process with a Mach thread and executing the process on the thread. HoME is nearly the same as ordinary ...

Article
Free
A customizable substrate for concurrent languages

We describe an approach to implementing a wide-range of concurrency paradigms in high-level (symbolic) programming languages. The focus of our discussion is STING, a dialect of Scheme, that supports lightweight threads of control and virtual processors ...

Article
Free
A concurrent compiler for Modula-2+

In this paper we describe a collection of techniques for the design and implementation of concurrent compilers. We begin by describing a technique for dividing a source program into many streams so that each stream can be compiled concurrently. We ...

Article
Free
Sharlit—a tool for building optimizers

A complex and time-consuming function of a modern compiler is global optimization. Unlike other functions of a compiler such as parsing and code generation which examine only one statement or one basic block at a time, optimizers are much larger in ...

Article
Free
Prototyping Fortran-90 compilers for massively parallel machines

Massively parallel architectures, and the languages used to program them, are among both the most difficult and the most rapidly-changing subjects for compilation. This has created a demand for new compiler prototyping technologies that allow novel ...

Article
Free
Compiling dataflow analysis of logic programs

Abstract interpretation is a technique extensively used for global dataflow analyses of logic programs. Existing implementations of abstract interpretation are slow due to interpretive or transforming overhead and the inefficiency in manipulation of ...

Article
Free
Escape analysis on lists

Higher order functional programs constantly allocate objects dynamically. These objects are typically cons cells, closures, and records and are generally allocated in the heap and reclaimed later by some garbage collection process. This paper describes ...

Article
Free
An abstract machine for CLP(R)

An abstract machine is described for the CLP(ℜ) programming language. It is intended as a first step toward enabling CLP(ℜ) programs to be executed with efficiency approaching that of conventional languages. The core Constraint Logic Arithmetic Machine (...

Article
Free
Eliminating false data dependences using the Omega test

Array data dependence analysis methods currently in use generate false dependences that can prevent useful program transformations. These false dependences arise because the questions asked are conservative approximations to the questions we really ...

Article
Free
Delinearization: an efficient way to break multiloop dependence equations

Exact and efficient data dependence testing is a key to success of loop-parallelizing compiler for computationally intensive programs. A number of algorithms has been created to test array references contained in parameter loops for dependence but most ...

Article
Free
Beyond induction variables

Induction variable detection is usually closely tied to the strength reduction optimization. This paper studies induction variable analysis from a different perspective, that of finding induction variables for data dependence analysis. While classical ...

Article
Free
A general framework for iteration-reordering loop transformations

This paper describes a general framework for representing iteration-reordering transformations. These transformations can be both matrix-based and non-matrix-based. Transformations are defined by rules for mapping dependence vectors, rules for mapping ...

Article
Relaxing SIMD control flow constraints using loop transformations

Many loop nests in scientific codes contain a parallelizable outer loop but have an inner loop for which the number of iterations varies between different iterations of the outer loop. When running this kind of loop nest on a SIMD machine, the SIMD-...

Article
Free
A dynamic scheduling method for irregular parallel programs

This paper develops a methodology for compiling and executing irregular parallel programs. Such programs implement parallel operations whose size and work distribution depend on input data. We show a fundamental relationship between three quantities ...

Article
Free
Lazy code motion

We present a bit-vector algorithm for the optimal and economical placement of computations within flow graphs, which is as efficient as standard uni-directional analyses. The point of our algorithm is the decomposition of the bi-directional structure of ...

Article
Free
A safe approximate algorithm for interprocedural aliasing

During execution, when two or more names exist for the same location at some program point, we call them aliases. In a language which allows arbitrary pointers, the problem of determining aliases at a program point is ρ-space-hard [Lan92]. We present an ...

Article
Free
Abstractions for recursive pointer data structures: improving the analysis and transformation of imperative programs

Even though impressive progress has been made in the area of optimizing and parallelizing programs with arrays, the application of similar techniques to programs with pointer data structures has remained difficult. In this paper we introduce a new ...

Article
Free
Alphonse: incremental computation as a programming abstraction

Alphonse is a program transformation system that uses dynamic dependency analysis and incremental computation techniques to automatically generate efficient dynamic implementations from simple exhaustive imperative program specifications.

Article
Free
Compiler support for garbage collection in a statically typed language

We consider the problem of supporting compacting garbage collection in the presence of modern compiler optimizations. Since our collector may move any heap object, it must accurately locate, follow, and update all pointers and values derived from ...

Article
Free
Register allocation for software pipelined loops

Software pipelining is an important instruction scheduling technique for efficiently overlapping successive iterations of loops and executing them in parallel. This paper studies the task of register allocation for software pipelined loops, both with ...

Article
Free
Probabilistic register allocation

A new global register allocation technique, probabilistic register allocation, is described. Probabilistic register allocation quantifies the costs and benefits of allocating variables to registers over live ranges so that excellent allocation choices ...

Article
Free
Rematerialization

This paper examines a problem that arises during global register allocation – rematerialization. If a value cannot be kept in a register, the allocator should recognize when it is cheaper to recompute the value (rematerialize it) than to store and ...

Article
Free
Avoiding unconditional jumps by code replication

This study evaluates a global optimization technique that avoids unconditional jumps by replicating code. When implemented in the back-end of an optimizing compiler, this technique can be generalized to work on almost all instances of unconditional ...

Article
Free
Simple and efficient BURS table generation

A simple and efficient algorithm for generating bottom-up rewrite system (BURS) tables is described. A small prototype implementation produces tables 10 to 30 times more quickly than the best current techniques. The algorithm does not require novel data ...

Article
Free
Contributors
  • Google LLC
  • Nokia Bell Labs

Index Terms

  1. Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation

      Recommendations

      Acceptance Rates

      Overall Acceptance Rate 406 of 2,067 submissions, 20%
      YearSubmittedAcceptedRate
      PLDI '142875218%
      PLDI '132674617%
      PLDI '122554819%
      PLDI '031312821%
      PLDI '021692817%
      PLDI '011443021%
      PLDI '001733017%
      PLDI '991302620%
      PLDI '981363123%
      PLDI '971583120%
      PLDI '961122825%
      PLDI '951052827%
      Overall2,06740620%