Network


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

Hotspot


Dive into the research topics where David A. Berson is active.

Publication


Featured researches published by David A. Berson.


international conference on computational logistics | 1998

Path profile guided partial redundancy elimination using speculation

Rajiv Gupta; David A. Berson; Jesse Fang

While programs contain a large number of paths, a very small fraction of these paths are typically exercised during program execution. Thus, optimization algorithms should be designed to trade off the performance of less frequently executed paths in favor of more frequently executed paths. However, traditional formulations to code optimizations are incapable of performing such a trade-off. The authors present a path profile guided partial redundancy elimination algorithm that uses speculation to enable the removal of redundancy along more frequently executed paths at the expense of introducing additional expression evaluations along less frequently executed paths. They describe cost-benefit data flow analysis that uses path profiling information to determine the profitability of using speculation. The cost of enabling speculation of an expression at a conditional is determined by identifying paths along which an additional evaluation of the expression is introduced. The benefit of enabling speculation is determined by identifying paths along which additional redundancy elimination is enabled by speculation. The results of this analysis are incorporated in a speculative expression hoisting framework for partial redundancy elimination.


international symposium on microarchitecture | 1997

Resource-sensitive profile-directed data flow analysis for code optimization

Rajiv Gupta; David A. Berson; Jesse Fang

Instruction schedulers employ code motion as a means of instruction reordering to enable scheduling of instructions at points where the resources required for their execution are available. In addition, driven by the profiling data, schedulers take advantage of predication and speculation for aggressive code motion across conditional branches. Optimization algorithms for partial dead code elimination (PDE) and partial redundancy elimination (PRE) employ code sinking and hoisting to enable optimization. However, unlike instruction scheduling, these optimization algorithms are unaware of resource availability and are incapable of exploiting profiling information, speculation, and predication. In this paper we develop data flow algorithms for performing the above optimizations with the following characteristics: (i) opportunities for PRE and PDE enabled by hoisting and sinking are exploited; (ii) hoisting and sinking of a code statement is driven by availability of functional unit resources; (iii) predication and speculation is incorporated to allow aggressive hoisting and sinking; and (iv) path profile information guides predication and speculation to enable optimization.


languages and compilers for parallel computing | 1998

Integrated Instruction Scheduling and Register Allocation Techniques

David A. Berson; Rajiv Gupta; Mary Lou Soffa

An algorithm for integrating instruction scheduling and register allocation must support mechanisms for detecting excessive register and functional unit demands and applying reductions for lessening these demands. The excessive demands for functional units can be detected by identifying the instructions that can execute in parallel, and can be reduced by scheduling some of these instructions sequentially. The excessive demands for registers can be detected on-the-fly while scheduling by maintaining register pressure values or may be detected prior to scheduling using an appropriate representation such as parallel interference graphs or register reuse dags. Reductions in excessive register demands can be achieved by live range spilling or live range splitting. However, existing integrated algorithms that are based upon mechanisms other than register reuse dags do not employ live range splitting. In this paper, we demonstrate that for integrated algorithms, register reuse dags are more effective than either on-the-fly computation of register pressure or interference graphs and that live range splitting is more effective than live range spilling. Moreover the choice of mechanisms greatly impacts on the performance of an integrated algorithm.


Sigplan Notices | 1995

GURRR: a global unified resource requirements representation

David A. Berson; Rajiv Gupta; Mary Lou Soffa

When compiling for instruction level parallelism (ILP), the integration of the optimization phases can lead to an improvement in the quality of code generated. However, since several different representations of a program are used in the various phases, only a partial integration has been achieved to date. We present a program representation that combines resource requirements and availability information with control and data dependence information. The representation enables the integration of several optimizing phases, including transformations, register allocation, and instruction scheduling. The basis of this integration is the simultaneous allocation of different types of resources. We define the representation and show how it is constructed. We then formulate several optimization phases to use the representation to achieve better integration.


languages and compilers for parallel computing | 1996

Integrating Program Optimizations and Transformations with the Scheduling of Instruction Level Parallelism

David A. Berson; Pohua P. Chang; Rajiv Gupta; Mary Lou Soffa

Code optimizations and restructuring transformations are typically applied before scheduling to improve the quality of generated code. However, in some cases, the optimizations and transformations do not lead to a better schedule or may even adversely affect the schedule. In particular, optimizations for redundancy elimination and restructuring transformations for increasing parallelism are often accompanied with an increase in register pressure. Therefore their application in situations where register pressure is already too high may result in the generation of additional spill code. In this paper we present an integrated approach to scheduling that enables the selective application of optimizations and restructuring transformations by the scheduler when it determines their application to be beneficial. The integration is necessary because information that is used to determine the effects of optimizations and transformations on the schedule is only available during instruction scheduling. Our integrated scheduling approach is applicable to various types of global scheduling techniques; in this paper we present an integrated algorithm for scheduling superblocks.


Archive | 1997

Optimizing code by exploiting speculation and predication with a cost-benefit data flow analysis based on path profiling information

Rajiv Gupta; David A. Berson; Jesse Fang


Archive | 2000

Hierarchical software path profiling

Youfeng Wu; Ali Reza Adl-Tabatabai; David A. Berson; Jesse Fang; Rajiv Gupta


Archive | 1997

Optimizing code based on resource sensitive hoisting and sinking

Rajiv Gupta; David A. Berson; Jesse Fang


PACT '93 Proceedings of the IFIP WG10.3. Working Conference on Architectures and Compilation Techniques for Fine and Medium Grain Parallelism | 1993

URSA: A Unified ReSource Allocator for Registers and Functional Units in VLIW Architectures

David A. Berson; Rajiv Gupta; Mary Lou Soffa


PACT '94 Proceedings of the IFIP WG10.3 Working Conference on Parallel Architectures and Compilation Techniques | 1994

Resource Spackling: A Framework for Integrating Register Allocation in Local and Global Schedulers

David A. Berson; Rajiv Gupta; Mary Lou Soffa

Collaboration


Dive into the David A. Berson's collaboration.

Researchain Logo
Decentralizing Knowledge