Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/349299acmconferencesBook PagePublication PagespldiConference Proceedingsconference-collections
PLDI '00: Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
ACM2000 Proceeding
Publisher:
  • Association for Computing Machinery
  • New York
  • NY
  • United States
Conference:
PLDI00: ACM SIGPLAN 2000 Conference on Programming Language and Design and Implementation Vancouver British Columbia Canada June 18 - 21, 2000
ISBN:
978-1-58113-199-4
Published:
01 August 2000
Sponsors:

Reflects downloads up to 20 Dec 2024Bibliometrics
Abstract

No abstract available.

Skip Table Of Content Section
Article
Free
Dynamo: a transparent dynamic optimization system

We describe the design and implementation of Dynamo, a software dynamic optimization system that is capable of transparently improving the performance of a native instruction stream as it executes on the processor. The input native instruction stream to ...

Article
Free
Practicing JUDO: Java under dynamic optimizations

A high-performance implementation of a Java Virtual Machine (JVM) consists of efficient implementation of Just-In-Time (JIT) compilation, exception handling, synchronization mechanism, and garbage collection (GC). These components are tightly coupled ...

Article
Free
Split-stream dictionary program compression

This paper describes split-stream dictionary (SSD) compression, a new technique for transforming programs into a compact, interpretable form. We define a compressed program as interpretable when it can be decompressed at basic-block granularity with ...

Article
Free
Unification-based pointer analysis with directional assignments

This paper describes a new algorithm for flow and context insensitive pointer analysis of C programs. Our studies show that the most common use of pointers in C programs is in passing the addresses of composite objects or updateable values as arguments ...

Article
Free
Off-line variable substitution for scaling points-to analysis

Most compiler optimizations and software productivity tools rely on information about the effects of pointer dereferences in a program. The purpose of points-to analysis is to compute this information safely, and as accurately as is practical. ...

Article
Free
Modular interprocedural pointer analysis using access paths: design, implementation, and evaluation

In this paper we present a modular interprocedural pointer analysis algorithm based on access-paths for C programs. We argue that access paths can reduce the overhead of representing context-sensitive transfer functions and effectively distinguish non-...

Article
Free
Safety checking of machine code

We show how to determine statically whether it is safe for untrusted machine code to be loaded into a trusted host system.

Our safety-checking technique operates directly on the untrusted machine-code program, requiring only that the initial inputs to ...

Article
Free
Translation validation for an optimizing compiler

We describe a translation validation infrastructure for the GNU C compiler. During the compilation the infrastructure compares the intermediate form of the program before and after each compiler pass and verifies the preservation of semantics. We ...

Article
Free
A certifying compiler for Java

This paper presents the initial results of a project to determine if the techniques of proof-carrying code and certifying compilers can be applied to programming languages of realistic size and complexity. The experiment shows that: (1) it is possible ...

Article
Free
Bidwidth analysis with application to silicon compilation

This paper introduces Bitwise, a compiler that minimizes the bitwidth the number of bits used to represent each operand for both integers and pointers in a program. By propagating 70 static information both forward and backward in the program dataflow ...

Article
Free
Optimal instruction scheduling using integer programming

This paper presents a new approach to local instruction scheduling based on integer programming that produces optimal instruction schedules in a reasonable time, even for very large basic blocks. The new approach first uses a set of graph ...

Article
Free
Improved spill code generation for software pipelined loops

Software pipelining is a loop scheduling technique that extracts parallelism out of loops by overlapping the execution of several consecutive iterations. Due to the overlapping of iterations, schedules impose high register requirements during their ...

Article
Free
Exploiting superword level parallelism with multimedia instruction sets

Increasing focus on multimedia applications has prompted the addition of multimedia extensions to most existing general purpose microprocessors. This added functionality comes primarily with the addition of short SIMD instructions. Unfortunately, ...

Article
Free
Compiler analysis of irregular memory accesses

Irregular array accesses are array accesses whose array subscripts do not have closed-form expressions in terms of loop indices. Traditional array analysis and loop transformation techniques cannot handle irregular array accesses. In this paper, we ...

Article
Free
Transforming loops to recursion for multi-level memory hierarchies

Recently, there have been several experimental and theoretical results showing significant performance benefits of recursive algorithms on both multi-level memory hierarchies and on shared-memory systems. In particular, such algorithms have the data ...

Article
Free
Symbolic bounds analysis of pointers, array indices, and accessed memory regions

This paper presents a novel framework for the symbolic bounds analysis of pointers, array indices, and accessed memory regions. Our framework formulates each analysis problem as a system of inequality constraints between symbolic bound polynomials. It ...

Article
Free
A framework for interprocedural optimization in the presence of dynamic class loading

Dynamic class loading during program execution in the Java Programming Language is an impediment for generating code that is as efficient as code generated using static whole-program analysis and optimization. Whole-program analysis and optimization is ...

Article
Free
Effective synchronization removal for Java

We present a new technique for removing unnecessary synchronization operations from statically compiled Java programs. Our approach improves upon current efforts based on escape analysis, as it can eliminate synchronization operations even on objects ...

Article
Free
Type-based race detection for Java

This paper presents a static race detection analysis for multithreaded Java programs. Our analysis is based on a formal type system that is capable of capturing many common synchronization patterns. These patterns include classes with internal ...

Article
Free
On loops, dominators, and dominance frontier
Article
Free
Functional reactive programming from first principles

Functional Reactive Programming, or FRP, is a general framework for programming hybrid systems in a high-level, declarative manner. The key ideas in FRP are its notions of behaviors and events. Behaviors are time-varying, reactive values, while events ...

Article
Free
Scalable context-sensitive flow analysis using instantiation constraints

This paper shows that a type graph (obtained via polymorphic type inference) harbors explicit directional flow paths between functions. These flow paths arise from the instantiations of polymorphic types and correspond to call-return sequences in first-...

Article
Free
Contaminated garbage collection

We describe a new method for determining when an object can be garbage collected. The method does not require marking live objects. Instead, each object X is dynamically associated with a stack frame M, such that Xis collectable when M pops. Because X ...

Article
Free
A generational on-the-fly garbage collector for Java

An on-the-fly garbage collector does not stop the program threads to perform the collection. Instead, the collector executes in a separate thread (or process) in parallel to the program. On-the-fly collectors are useful for multi-threaded applications ...

Article
Free
A single intermediate language that supports multiple implementations of exceptions

We present mechanisms that enable our compiler-target language, C--, to express four of the best known techniques for implementing exceptions, all within a single, uniform framework. We define the mechanisms precisely, using a formal operational ...

Article
Free
Efficient algorithms for bidirectional debugging

This paper discusses our research into algorithms for creating an efficient bidirectional debugger in which all traditional forward movement commands can be performed with equal ease in the reverse direction. We expect that adding these backwards ...

Article
Free
Caching function calls using precise dependencies

This paper describes the implementation of a purely functional programming language for building software systems. In this language, external tools like compilers and linkers are invoked by function calls. Because some function calls are extremely ...

Article
Free
ABCD: eliminating array bounds checks on demand

To guarantee typesafe execution, Java and other strongly typed languages require bounds checking of array accesses. Because array-bounds checks may raise exceptions, they block code motion of instructions with side effects, thus preventing many useful ...

Article
Free
Field analysis: getting useful and low-cost interprocedural information

We present a new limited form of interprocedural analysis called field analysis that can be used by a compiler to reduce the costs of modern language features such as object-oriented programming, automatic memory management, and run-time checks ...

Article
Free
An automatic object inlining optimization and its evaluation

Automatic object inlining [19, 20] transforms heap data structures by fusing parent and child objects together. It can improve runtime by reducing object allocation and pointer dereference costs. We report continuing work studying object inlining ...

Contributors

Recommendations

Acceptance Rates

PLDI '00 Paper Acceptance Rate 30 of 173 submissions, 17%;
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%