Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
- ArticleMay 1997
Code compression
PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementationPages 358–365https://doi.org/10.1145/258915.258947Current research in compiler optimization counts mainly CPU time and perhaps the first cache level or two. This view has been important but is becoming myopic, at least from a system-wide viewpoint, as the ratio of network and disk speeds to CPU speeds ...
Also Published in:
ACM SIGPLAN Notices: Volume 32 Issue 5 - ArticleMay 1997
Data-centric multi-level blocking
PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementationPages 346–357https://doi.org/10.1145/258915.258946We present a simple and novel framework for generating blocked codes for high-performance machines with a memory hierarchy. Unlike traditional compiler techniques like tiling, which are based on reasoning about the control flow of programs, our ...
Also Published in:
ACM SIGPLAN Notices: Volume 32 Issue 5 - ArticleMay 1997
Data distribution support on distributed shared memory multiprocessors
PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementationPages 334–345https://doi.org/10.1145/258915.258945Cache-coherent multiprocessors with distributed shared memory are becoming increasingly popular for parallel computing. However, obtaining high performance on these machines mquires that an application execute with good data locality. In addition to ...
Also Published in:
ACM SIGPLAN Notices: Volume 32 Issue 5 - ArticleMay 1997
Fine-grain multithreading with minimal compiler support—a cost effective approach to implementing efficient multithreading languages
PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementationPages 320–333https://doi.org/10.1145/258915.258944It is difficult to map the execution model of multithreading languages (languages which support fine-grain dynamic thread creation) onto the single stack execution model of C. Consequently, previous work on efficient multithreading uses elaborate frame ...
Also Published in:
ACM SIGPLAN Notices: Volume 32 Issue 5 - ArticleMay 1997
Register promotion in C programs
PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementationPages 308–319https://doi.org/10.1145/258915.258943The combination of pointers and pointer arithmetic in C makes the task of improving C programs somewhat more difficult than improving programs written in simpler languages like Fortran. While much work has been published that focuses on the analysis of ...
Also Published in:
ACM SIGPLAN Notices: Volume 32 Issue 5 -
- ArticleMay 1997
Call-cost directed register allocation
PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementationPages 296–307https://doi.org/10.1145/258915.258942Choosing the right kind of register for a live range plays a major role in eliminating the register-allocation overhead when the compiled function is frequently executed or function tails are on the most frequently executed paths. Picking the wrong kind ...
Also Published in:
ACM SIGPLAN Notices: Volume 32 Issue 5 - ArticleMay 1997
Spill code minimization via interference region spilling
PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementationPages 287–295https://doi.org/10.1145/258915.258941Many optimizing compilers perform global register allocation using a Chaitin-style graph coloring algorithm. Live ranges that cannot be allocated to registers are spilled to memory. The amount of code required to spill the live range depends on the ...
Also Published in:
ACM SIGPLAN Notices: Volume 32 Issue 5 - ArticleMay 1997
A new algorithm for partial redundancy elimination based on SSA form
PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementationPages 273–286https://doi.org/10.1145/258915.258940A new algorithm, SSAPRE, for performing partial redundancy elimination based entirely on SSA form is presented. It achieves optimal code motion similar to lazy code motion [KRS94a, DS93], but is formulated independently and does not involve iterative ...
Also Published in:
ACM SIGPLAN Notices: Volume 32 Issue 5 - ArticleMay 1997
Linear-time subtransitive control flow analysis
PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementationPages 261–272https://doi.org/10.1145/258915.258939We present a linear-time algorithm for bounded-type programs that builds a directed graph whose transitive closure gives exactly the results of the standard (cubic-time) Control-Flow Analysis (CFA) algorithm. Our algorithm can be used to list all ...
Also Published in:
ACM SIGPLAN Notices: Volume 32 Issue 5 - ArticleMay 1997
Program analysis using binary relations
PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementationPages 249–260https://doi.org/10.1145/258915.258938This paper presents a method called relational constraint for finding binary relations among the variables and constants of a program. The method constructs a table of binary relations and treats the program as a collection of constraints on tuples of ...
Also Published in:
ACM SIGPLAN Notices: Volume 32 Issue 5 - ArticleMay 1997
Componential set-based analysis
PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementationPages 235–248https://doi.org/10.1145/258915.258937Set based analysis is a constraint-based whole program analysis that is applicable to functional and object-oriented programming language. Unfortunately, the analysis is useless for large programs, since it generates descriptions of data flow ...
Also Published in:
ACM SIGPLAN Notices: Volume 32 Issue 5 - ArticleMay 1997
Automatic verification of pointer programs using monadic second-order logic
PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementationPages 226–234https://doi.org/10.1145/258915.258936We present a technique for automatic verification of pointer programs based on a decision procedure for the monadic second-order logic on finite strings.We are concerned with a while-fragment of Pascal, which includes recursively-defined pointer ...
Also Published in:
ACM SIGPLAN Notices: Volume 32 Issue 5 - ArticleMay 1997
Two for the price of one: composing partial evaluation and compilation
PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementationPages 215–225https://doi.org/10.1145/258915.258935One of the flagship applications of partial evaluation is compilation and compiler generation. However, partial evaluation is usually expressed as a source-to-source transformation for high-level languages, whereas realistic compilers produce object ...
Also Published in:
ACM SIGPLAN Notices: Volume 32 Issue 5 - ArticleMay 1997
Module-sensitive program specialisation
PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementationPages 206–214https://doi.org/10.1145/258915.258934We present an approach for specialising large programs, such as programs consisting of several modules, or libraries. This approach is based on the idea of using a compiler generator (cogen) for creating generating extensions. Generating extensions are ...
Also Published in:
ACM SIGPLAN Notices: Volume 32 Issue 5 - ArticleMay 1997
Near-optimal intraprocedural branch alignment
PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementationPages 183–193https://doi.org/10.1145/258915.258932Branch alignment reorders the basic blocks of a program to minimize pipeline penalties due to control-transfer instructions. Prior work in branch alignment has produced useful heuristic methods. We present a branch alignment algorithm that usually ...
Also Published in:
ACM SIGPLAN Notices: Volume 32 Issue 5 - ArticleMay 1997
Partial dead code elimination using slicing transformations
PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementationPages 159–170https://doi.org/10.1145/258915.258930We present an approach for optimizing programs that uncovers additional opportunities for optimization of a statement by predicating the statement. In this paper predication algorithms for achieving partial dead code elimination (PDE) are presented. The ...
Also Published in:
ACM SIGPLAN Notices: Volume 32 Issue 5 - ArticleMay 1997
Interprocedural conditional branch elimination
PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementationPages 146–158https://doi.org/10.1145/258915.258929The existence of statically detectable correlation among conditional branches enables their elimination, an optimization that has a number of benefits. This paper presents techniques to determine whether an interprocedural execution path leading to a ...
Also Published in:
ACM SIGPLAN Notices: Volume 32 Issue 5 - ArticleMay 1997
Aggressive inlining
PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementationPages 134–145https://doi.org/10.1145/258915.258928Existing research understates the benefits that can be obtained from inlining and cloning, especially when guided by profile information. Our implementation of inlining and cloning yields excellent results on average and very rarely lowers performance. ...
Also Published in:
ACM SIGPLAN Notices: Volume 32 Issue 5 - ArticleMay 1997
Interprocedural dataflow analysis in an executable optimizer
PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementationPages 122–133https://doi.org/10.1145/258915.258927Interprocedural dataflow information enables link-time and post-link-time optimizers to perform analyses and code transformations that are not possible in a traditional compiler. This paper describes the interprocedural dataflow analysis techniques used ...
Also Published in:
ACM SIGPLAN Notices: Volume 32 Issue 5 - ArticleMay 1997
tcc: a system for fast, flexible, and high-level dynamic code generation
PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementationPages 109–121https://doi.org/10.1145/258915.258926tcc is a compiler that provides efficient and high-level access to dynamic code generation. It implements the 'C ("Tick-C") programming language, an extension of ANSI C that supports dynamic code generation [15]. 'C gives power and flexibility in ...
Also Published in:
ACM SIGPLAN Notices: Volume 32 Issue 5