skip to main content
10.1145/207110acmconferencesBook PagePublication PagespldiConference Proceedingsconference-collections
PLDI '95: Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
ACM1995 Proceeding
Publisher:
  • Association for Computing Machinery
  • New York
  • NY
  • United States
Conference:
PLDI95: ACM SIGPLAN Conference on Programming Language Design and Implementation La Jolla California USA June 18 - 21, 1995
ISBN:
978-0-89791-697-4
Published:
18 June 1995
Sponsors:
Next Conference
Bibliometrics
Abstract

No abstract available.

Skip Table Of Content Section
Article
Free
Efficient context-sensitive pointer analysis for C programs

This paper proposes an efficient technique for context-sensitive pointer analysis that is applicable to real C programs. For efficiency, we summarize the effects of procedures using partial transfer functions. A partial transfer function (PTF) describes ...

Article
Free
Context-insensitive alias analysis reconsidered

Recent work on alias analysis in the presence of pointers has concentrated on context-sensitive interprocedural analyses, which treat multiple calls to a single procedure independently rather than constructing a single approximation to a procedure's ...

Article
Free
Flow-sensitive interprocedural constant propagation

We present a flow-sensitive interprocedural constant propagation algorithm, which supports recursion while only performing one flow-sensitive analysis of each procedure. We present experimental results which show that this method finds substantially ...

Article
Free
APT: a data structure for optimal control dependence computation

The control dependence relation is used extensively in restructuring compilers. This relation is usually represented using the control dependence graph; unfortunately, the size of this data structure can be quadratic in the size of the program, even for ...

Article
Free
Efficient building and placing of gating functions

In this paper, we present an almost-linear time algorithm for constructing Gated Single Assignment (GSA), which is SSA augmented with gating functions at ø-nodes. The gating functions specify the control dependences for each reaching definition at a ø-...

Article
Free
Article
Free
Accurate static branch prediction by value range propagation

The ability to predict at compile time the likelihood of a particular branch being taken provides valuable information for several optimizations, including global instruction scheduling, code layout, function inlining, interprocedural register ...

Article
Free
Corpus-based static branch prediction

Correctly predicting the direction that branches will take is increasingly important in today's wide-issue computer architectures. The name program-based branch prediction is given to static branch prediction techniques that base their prediction on a ...

Article
Free
Selective specialization for object-oriented languages

Dynamic dispatching is a major source of run-time overhead in object-oriented languages, due both to the direct cost of method lookup and to the indirect effect of preventing other optimizations. To reduce this overhead, optimizing compilers for object-...

Article
Free
Simple and effective link-time optimization of Modula-3 programs

Modula-3 supports development of modular programs by separating an object's interface from its implementation. This separation induces a runtime overhead in the implementation of objects, because it prevents the compiler from having complete information ...

Article
Free
A type-based compiler for standard ML

Compile-time type information should be valuable in efficient compilation of statically typed functional languages such as Standard ML. But how should type-directed compilation work in real compilers, and how much performance gain will type-based ...

Article
Free
Register allocation using lazy saves, eager restores, and greedy shuffling

This paper presents a fast and effective linear intraprocedural register allocation strategy that optimizes register usage across procedure calls. It capitalizes on our observation that while procedures that do not contain calls (syntactic leaf routines)...

Article
Free
Scheduling and mapping: software pipelining in the presence of structural hazards

Recently, software pipelining methods based on an ILP (Integer Linear Programming) framework have been successfully applied to derive rate-optimal schedules for architectures involving clean pipelines - pipelines without structural hazards. The problem ...

Article
Free
Improving balanced scheduling with compiler optimizations that increase instruction-level parallelism

Traditional list schedulers order instructions based on an optimistic estimate of the load latency imposed by the hardware and therefore cannot respond to variations in memory latency caused by cache hits and misses on non-blocking architectures. In ...

Article
Free
Implementation of the data-flow synchronous language SIGNAL

This paper presents the techniques used for the compilation of the data-flow, synchronous language SIGNAL. The key feature of the compiler is that it performs formal calculus on systems of boolean equations. The originality of the implementation of the ...

Article
Free
Better static memory management: improving region-based analysis of higher-order languages

Static memory management replaces runtime garbage collection with compile-time annotations that make all memory allocation and deallocation explicit in a program. We improve upon the Tofte/Talpin region-based scheme for compile-time memory management[...

Article
Free
Storage assignment to decrease code size

DSP architectures typically provide indirect addressing modes with auto-increment and decrement. In addition, indexing mode is not available, and there are usually few, if any, general-purpose registers. Hence, it is necessary to use address registers ...

Article
Free
Optimizing parallel programs with explicit synchronization

We present compiler analyses and optimizations for explicitly parallel programs that communicate through a shared address space. Any type of code motion on explicitly parallel programs requires a new kind of analysis to ensure that operations reordered ...

Article
Free
Unifying data and control transformations for distributed shared-memory machines

We present a unified approach to locality optimization that employs both data and control transformations. Data transformations include changing the array layout in memory. Control transformations involve changing the execution order of programs. We ...

Article
Free
The LRPD test: speculative run-time parallelization of loops with privatization and reduction parallelization

Current parallelizing compilers cannot identify a significant fraction of parallelizable loops because they have complex or statically insufficiently defined access patterns. As parallelizable loops arise frequently in practice, we advocate a novel ...

Article
Free
The power of assignment motion

Assignment motion (AM) and expression motion (EM) are the basis of powerful and at the first sight incomparable techniques for removing partially redundant code from a program. Whereas AM aims at the elimination of complete assignments, a transformation ...

Article
Free
Global code motion/global value numbering
Article
Free
Interprocedural partial redundancy elimination and its application to distributed memory compilation

Partial Redundancy Elimination (PRE) is a general scheme for suppressing partial redundancies which encompasses traditional optimizations like loop invariant code motion and redundant code elimination. In this paper we address the problem of performing ...

Article
Free
Elimination of redundant array subscript range checks

This paper presents a compiler optimization algorithm to reduce the run time overhead of array subscript range checks in programs without compromising safety. The algorithm is based on partial redundancy elimination and it incorporates previously ...

Article
Free
Tile size selection using cache organization and data layout

When dense matrix computations are too large to fit in cache, previous research proposes tiling to reduce or eliminate capacity misses. This paper presents a new algorithm for choosing problem-size dependent tile sizes based on the cache size and cache ...

Article
Free
EEL: machine-independent executable editing

EEL (Executable Editing Library) is a library for building tools to analyze and modify an executable (compiled) program. The systems and languages communities have built many tools for error detection, fault isolation, architecture translation, ...

Article
Free
Garbage collection using a dynamic threatening boundary

Generational techniques have been very successful in reducing the impact of garbage collection algorithms upon the performance of programs. However, all generational algorithms occasionally promote objects that later become garbage, resulting in an ...

Article
Free
Stack caching for interpreters

An interpreter can spend a significant part of its execution time on accessing arguments of virtual machine instructions. This paper explores two methods to reduce this overhead for virtual stack machines by caching top-of-stack values in (real machine) ...

Contributors

Recommendations

Acceptance Rates

PLDI '95 Paper Acceptance Rate28of105submissions,27%Overall Acceptance Rate406of2,067submissions,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%