Learn More
In recent work, we described a data prefetch mechanism for pointer-intensive and numeric computations, and presented some aggregate measurements on a suite of benchmarks to quantify its performance potential MH95]. The basis for this device is a simple classiication of memory access patterns in programs that we introduced earlier HM94]. In this paper we(More)
Modern network processors employs parallel processing engines (PEs) to keep up with explosive internet packet processing demands. Most network processors further allow processing engines to be organized in a pipelined fashion to enable higher processing throughput and flexibility. In this paper, we present a novel program transformation technique to exploit(More)
Parcel (Project for the Automatic Restructuring and Concurrent Evaluation of Lisp) is an investigation of the problem of compiling Lisp for evaluation on a shared memory multiprocessor. In this paper, we present an overview of the process of compilation in Parcel. This process consists, broadly, of an interprocedural analysis, followed by a function-level(More)
Effective compilation of packet processing applications onto the Intel IXP network processors requires, among other things, the automatic use of multiple threads on one or more processing elements, and the automatic introduction of synchronization as required to correctly enforce dependences between such threads. We describe the program transformation that(More)
This paper uses a simple recurrence-based classiication of memory access patterns, introduced by us in earlier work HM94], to develop a data prefetch mechanism (the Indirect Reference Buuer, or, IRB) for primary data caches in future CPU implementations. The IRB is described in detail, followed by an examination of its performance potential. We analyze the(More)
A large body of literature has developed concerning the automatic parallelization of numerical programs, and a quite separate literature has developed concerning the parallelization of symbolic programs. Because many symbolic programs make heavy use of array data and iterative constructs, in addition to more \symbolic" language features like pointers and(More)
We have developed a software tool called Z1 by which one can quickly achieve an accurate yet aaordable program analysis. The user writes an analysis speciication and sets a parameter for a desired cost-accuracy tradeoo. The tool then creates an executable analyzer that has the speciied performance balance. Z1 has been used for developing both conventional(More)
This report presents how to use system Z1 which is a prototyping tool for interprocedural program analyses. The input to system Z1 is a high-level speciication of a program analysis. The output is a C code for the speciied interprocedural program analyzer. The system provides a high-level command set (called projection expressions) in which the user can(More)
  • 1