Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Shin-Ming Liu is active.

Publication


Featured researches published by Shin-Ming Liu.


programming language design and implementation | 1997

A new algorithm for partial redundancy elimination based on SSA form

Fred C. Chow; Sun Chan; Robert Kennedy; Shin-Ming Liu; Raymond Lo; Peng Tu

A 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 data flow analysis and bit vectors in its solution. It not only exhibits the characteristics common to other sparse approaches, but also inherits the advantages shared by other SSA-based optimization techniques. SSAPRE also maintains its output in the same SSA form as its input. In describing the algorithm, we state theorems with proofs giving our claims about SSAPRE. We also give additional description about our practical implementation of SSAPRE, and analyze and compare its performance with a bit-vector-based implementation of PRE. We conclude with some discussion of the implications of this work.


compiler construction | 1996

Effective Representation of Aliases and Indirect Memory Operations in SSA Form

Fred C. Chow; Sun Chan; Shin-Ming Liu; Raymond Lo; Mark Streich

This paper addresses the problems of representing aliases and indirect memory operations in SSA form. We propose a method that prevents explosion in the number of SSA variable versions in the presence of aliases. We also present a technique that allows indirect memory operations to be globally commonized. The result is a precise and compact SSA representation based on global value numbering, called HSSA, that uniformly handles both scalar variables and indirect memory operations. We discuss the capabilities of the HSSA representation and present measurements that show the effects of implementing our techniques in a production global optimizer.


programming language design and implementation | 1998

Register promotion by sparse partial redundancy elimination of loads and stores

Raymond Lo; Fred C. Chow; Robert Kennedy; Shin-Ming Liu; Peng Tu

An algorithm for register promotion is presented based on the observation that the circumstances for promoting a memory locations value to register coincide with situations where the program exhibits partial redundancy between accesses to the memory location. The recent SSAPRE algorithm for eliminating partial redundancy using a sparse SSA representation forms the foundation for the present algorithm to eliminate redundancy among memory accesses, enabling us to achieve both computational and live range optimality in our register promotion results. We discuss how to effect speculative code motion in the SSAPRE framework. We present two different algorithms for performing speculative code motion: the conservative speculation algorithm used in the absence of profile data, and the the profile-driven speculation algorithm used when profile data are available. We define the static single use (SSU) form and develop the dual of the SSAPRE algorithm, called SSUPRE, to perform the partial redundancy elimination of stores. We provide measurement data on the SPECint95 benchmark suite to demonstrate the effectiveness of our register promotion approach in removing loads and stores. We also study the relative performance of the different speculative code motion strategies when applied to scalar loads and stores.


ACM Transactions on Programming Languages and Systems | 1999

Partial redundancy elimination in SSA form

Robert Kennedy; Sun Chan; Shin-Ming Liu; Raymond Lo; Peng Tu; Fred C. Chow

The SSAPRE algorithm for performing partial redundancy elimination based entirely on SSA form is presented. The algorithm is formulated based on a new conceptual framework, the factored redundancy graph, for analyzing redundancy, and representes the first sparse approach to the classical problem and on methods for its solution. With the algorithm description, theorems and their proofs are given showing that the algorithm produces the best possible code by the criteria of computational optimality and lifetime optimality of the introduced temporaries. In addition to the base algorithm, a practical implementation of SSAPRE that exhibits additional compile-time efficiencies is described. In closing, measurement statistics are provided that characterize the instances of the partial redundancy problem from a set of benchmark programs and compare optimization time spent by an implementation of SSAPRE aganist a classical partial redundancy elimination implementation. The data lend insight into the nature of partial redundancy elimination and demonstrate the expediency of this new approach.


compiler construction | 1998

Strength Reduction via SSAPRE

Robert Kennedy; Fred C. Chow; Peter Dahl; Shin-Ming Liu; Raymond Lo; Mark Streich

We present techniques that allow strength reduction to be performed concurrently with partial redundancy elimination in the SSAPRE framework. By sharing the characteristics inherent to SSAPRE, the resulting strength reduction algorithm exhibits many interesting attributes. We compare various aspects of the new strength reduction algorithm with previous strength reduction algorithms. We also outline and discuss our implementation of the closely related linear function test replacement optimization under the same framework.


international conference on parallel architectures and compilation techniques | 1996

Loop induction variable canonicalization in parallelizing compilers

Shin-Ming Liu; Raymond Lo; Fred C. Chow

Loop induction variable canonicalization transforms a loop to use a single primary induction variable that is incremented by one at the end of each iteration. In this process, other induction variables in the loop, called secondary induction variables, are removed from the loop, with their original references expressed in terms of the primary induction variable, and their loop exit values assigned to them after the loop exit. This paper presents a simple and powerful approach to loop induction variable canonicalization in which the problem is broken up into a sequence of steps. The whole canonicalization process is integrated into a global optimizer that builds an SSA representation of the program, performs global optimizations and hands the optimized code on to other components in the compiler that perform loop and instruction level parallelization. By taking advantage of optimizations that will be performed later each step in the canonicalization process can be made small and efficient. By letting generic parts of the optimizer share in the work, the approach infuses generality into the solution and provides automatic coverage of a wide variety of forms of induction variable occurrences. A number of examples are given to show the effectiveness of the approach. We also provide a set of measurements that shows that the additional compile-time cost incurred due to implementing our approach is small.


international symposium on microarchitecture | 1994

Improving resource utilization of the MIPS R8000 via post-scheduling global instruction distribution

Raymond Lo; Sun Chan; Fred C. Chow; Shin-Ming Liu

The paper presents a technique called Global Instruction Distribution that globally fine-tunes the code produced for a superscalar processor. The fine-tuning is effected by distributing instructions from one block to other blocks according to the control flow graph of the program. The method does not involve instruction scheduling, but models resource usage to find the best insertion points in the target basic block. We present our implementation of GID in a production compiler, and show how the GID framework allows incorporation of additional functions targeting different optimizations. Performance measurements on the MIPS R8000 are presented to demonstrate the practicality and efficacy of this approach.


Archive | 1996

System and method to efficiently represent aliases and indirect memory operations in static single assignment form during compilation

Frederick Chow; Sun Chan; Shin-Ming Liu; Raymond Lo; Mark Streich


Archive | 1998

Method, system, and computer program product for performing register promotion via load and store placement optimization within an optimizing compiler

Frederick Chow; Robert Kennedy; Shin-Ming Liu; Raymond Lo; Peng Tu; Sun C. Chan


Archive | 1995

System and method for optimizing a source code representation as a function of resource utilization

Sun C. Chan; Frederick Chow; Shin-Ming Liu; Raymond Lo

Collaboration


Dive into the Shin-Ming Liu's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge