[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/178243acmconferencesBook PagePublication PagespldiConference Proceedingsconference-collections
PLDI '94: Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
ACM1994 Proceeding
Publisher:
  • Association for Computing Machinery
  • New York
  • NY
  • United States
Conference:
PLDI94: ACM SIGPLAN Conference on Programming Language Design and Implementation Orlando Florida USA June 20 - 24, 1994
ISBN:
978-0-89791-662-2
Published:
01 August 1994
Sponsors:

Reflects downloads up to 12 Dec 2024Bibliometrics
Abstract

No abstract available.

Skip Table Of Content Section
Article
Free
Is continuation-passing useful for data flow analysis?

The widespread use of the continuation-passing style (CPS) transformation in compilers, optimizers, abstract interpreters, and partial evaluators reflects a common belief that the transformation has a positive effect on the analysis of programs. ...

    Article
    Free
    Separate compilation for Standard ML

    Languages that support abstraction and modular structure, such as Standard ML, Modula, Ada, and (more or less) C++, may have deeply nested dependency hierarchies among source files. In ML the problem is particularly severe because ML's powerful ...

    Article
    Free
    Lazy functional state threads

    Some algorithms make critical internal use of updatable state, even though their external specification is purely functional. Based on earlier work on monads, we present a way of securely encapsulating stateful computations that manipulate multiple, ...

    Article
    Free
    VLIW compilation techniques in a superscalar environment

    We describe techniques for converting the intermediate code representation of a given program, as generated by a modern compiler, to another representation which produces the same run-time results, but can run faster on a superscalar machine. The ...

    Article
    Free
    Link-time optimization of address calculation on a 64-bit architecture

    Compilers for new machines with 64-bit addresses must generate code that works when the memory used by the program is large. Procedures and global variables are accessed indirectly via global address tables, and calling conventions include code to ...

    Article
    Free
    Division by invariant integers using multiplication

    Integer division remains expensive on today's processors as the cost of integer multiplication declines. We present code sequences for division by arbitrary nonzero integer constants and run-time invariants using integer multiplication. The algorithms ...

    Article
    Free
    Precise compile-time performance prediction for superscalar-based computers

    Optimizing compilers (particularly parallel compilers) are constrained by their ability to predict performance consequences of the transformations they apply. Many factors, such as unknowns in control structures, dynamic behavior of programs, and ...

    Article
    Free
    Accurate static estimators for program optimization

    Determining the relative execution frequency of program regions is essential for many important optimization techniques, including register allocation, function inlining, and instruction scheduling. Estimates derived from profiling with sample inputs ...

    Article
    Free
    Improving semi-static branch prediction by code replication

    Speculative execution on superscalar processors demands substantially better branch prediction than what has been previously available. In this paper we present code replication techniques that improve the accuracy of semi-static branch prediction to a ...

    Article
    Free
    GIVE-N-TAKE—a balanced code placement framework

    GIVE-N-TAKE is a code placement framework which uses a general producer-consumer concept. An advantage of GIVE-N-TAKE over existing partial redundancy elimination techniques is its concept of production regions, instead of single locations, which can be ...

    Article
    Free
    Counting solutions to Presburger formulas: how and why

    We describe methods that are able to count the number of integer solutions to selected free variables of a Presburger formula, or sum a polynomial over all integer solutions of selected free variables of a Presburger formula. This answer is given ...

    Article
    Free
    Parallelizing complex scans and reductions

    We present a method for automatically extracting parallel prefix programs from sequential loops, even in the presence of complicated conditional statements. Rather than searching for associative operators in the loop body directly, the method rests on ...

    Article
    Free
    Partial dead code elimination

    A new aggressive algorithm for the elimination of partially dead code is presented, i.e., of code which is only dead on some program paths. Besides being more powerful than the usual approaches to dead code elimination, this algorithm is optimal in the ...

    Article
    Free
    Effective partial redundancy elimination

    Partial redundancy elimination is a code optimization with a long history of literature and implementation. In practice, its effectiveness depends on issues of naming and code shape. This paper shows that a combination of global reassociation and global ...

    Article
    Free
    The program structure tree: computing control regions in linear time

    In this paper, we describe the program structure tree (PST), a hierarchical representation of program structure based on single entry single exit (SESE) regions of the control flow graph. We give a linear-time algorithm for finding SESE regions and for ...

    Article
    Free
    Memory access coalescing: a technique for eliminating redundant memory accesses

    As microprocessor speeds increase, memory bandwidth is increasingly the performance bottleneck for microprocessors. This has occurred because innovation and technological improvements in processor design have outpaced advances in memory design. Most ...

    Article
    Free
    ATOM: a system for building customized program analysis tools

    ATOM (Analysis Tools with OM) is a single framework for building a wide range of customized program analysis tools. It provides the common infrastructure present in all code-instrumenting tools; this is the difficult and time-consuming part. The user ...

    Article
    Free
    Cache performance of garbage-collected programs

    As processor speeds continue to improve relative to main-memory access times, cache performance is becoming an increasingly important component of program performance. Prior work on the cache performance of garbage-collected programs either argues or ...

    Article
    Free
    A general data dependence test for dynamic, pointer-based data structures

    Optimizing compilers require accurate dependence testing to enable numerous, performance-enhancing transformations. However, data dependence testing is a difficult problem, particularly in the presence of pointers. Though existing approaches work well ...

    Article
    Free
    Interprocedural may-alias analysis for pointers: beyond k-limiting

    Existing methods for alias analysis of recursive pointer data structures are based on two approximation techniques: k-limiting, and store-based (or equivalently location or region-based) approximations, which blur distinction between elements of ...

    Article
    Free
    Context-sensitive interprocedural points-to analysis in the presence of function pointers

    This paper reports on the design, implementation, and empirical results of a new method for dealing with the aliasing problem in C. The method is based on approximating the points-to relationships between accessible stack locations, and can be used to ...

    Article
    Free
    Zero-cost range splitting

    This paper presents a new optimization technique that uses empty delay slots to improve code scheduling. We are able to split live ranges for free, by inserting spill code into empty delay slots. Splitting a live range can reduce interferences with ...

    Article
    Free
    Register allocation over the program dependence graph

    This paper describes RAP, a Register Allocator that allocates registers over the Program Dependence Graph (PDG) representation of a program in a hierarchical manner. The PDG program representation has been used successfully for scalar optimizations, the ...

    Article
    Free
    Debugging of globally optimized programs using data flow analysis

    Advanced processor and machine architectures need optimizing compilers to be efficiently programmed in high level languages. Therefore the need for source level debuggers that can handle optimized programs is rising. One difficulty in debugging ...

    Article
    Free
    Efficient detection of all pointer and array access errors

    We present a pointer and array access checking technique that provides complete error coverage through a simple set of program transformations. Our technique, based on an extended safe pointer representation, has a number of novel aspects. Foremost, it ...

    Article
    Free
    On slicing programs with jump statements

    Program slices have potential uses in many software engineering applications. Traditional slicing algorithms, however, do not work correctly on programs that contain explicit jump statements. Two similar algorithms were proposed recently to alleviate ...

    Article
    Free
    Article
    Free
    Type analysis of Prolog using type graphs

    Type analysis of Prolog is of primary importance for high-performance compilers, since type information may lead to better indexing and to sophisticated specializations of unification and built-in predicates to name a few. However, these optimizations ...

    Article
    Free
    Backtracking without trailing in CLP (RLin)

    Constraint logic programming (CLP) is a generalization of logic programming where unification is replaced by constraint solving as the basic operation of the language. The combination of constraint solving and nondeterminism (approximated by ...

    Contributors
    • Georgia Institute of Technology
    • Virginia Polytechnic Institute and State University
    • University of Virginia
    Please enable JavaScript to view thecomments powered by Disqus.

    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%