Dynamic common sub-expression elimination during scheduling in high-level synthesis

We introduce a new approach, "Dynamic Common Sub-expression Elimination (CSE)", that dynamically eliminates common sub-expressions based on new opportunities created during scheduling of control-intensive designs. Classical CSE techniques fail to eliminate several common sub-expressions in control-intensive designs due to the presence of a complex mix of control and data-flow. Aggressive speculative code motions employed to schedule control-intensive designs often re-order, speculate and duplicate operations, hence changing the control flow between the operations with common sub-expressions. This leads to new opportunities for applying CSE dynamically. We have implemented dynamic CSE in a high-level synthesis framework called Spark and present results for experiments performed using various combinations of CSE and dynamic CSE. The benchmarks used consist of four functional blocks derived from two moderately complex industrial-strength applications, namely, MPEG-1 and the GIMP image processing tool. Our dynamic CSE techniques result in improvements of up to 22% in the controller size and up to 31% in performance; easily surpassing the improvements obtained by the traditional CSE approach. We also observe an unexpected (and significant) reduction in the number of registers using our approach.

[1]  Nikil D. Dutt,et al.  Speculation techniques for high level synthesis of control intensive designs , 2001, DAC '01.

[2]  Alexandru Nicolau,et al.  Trailblazing: A Hierarchical Approach to Percolation Scheduling , 1993, 1993 International Conference on Parallel Processing - ICPP'93.

[3]  Nikil D. Dutt,et al.  Conditional speculation and its effects on performance and area for high-level synthesis , 2001, International Symposium on System Synthesis (IEEE Cat. No.01EX526).

[4]  Hugo De Man,et al.  A specification invariant technique for operation cost minimisation in flow-graphs , 1994, Proceedings of 7th International Symposium on High-Level Synthesis.

[5]  Guang R. Gao,et al.  A new framework for exhaustive and incremental data flow analysis using DJ graphs , 1996, PLDI '96.

[6]  Jochen A. G. Jess,et al.  A reordering technique for efficient code motion , 1999, DAC '99.

[7]  Miodrag Potkonjak,et al.  Maximally fast and arbitrarily fast implementation of linear computations , 1992, ICCAD '92.

[8]  Donald A. Lobo,et al.  Redundant operator creation: a scheduling optimization technique , 1991, 28th ACM/IEEE Design Automation Conference.

[9]  Alexandru Nicolau,et al.  Mutation Scheduling: A Unified Approach to Compiling for Fine-Grain Parallelism , 1994, LCPC.

[10]  Patrick Schaumont,et al.  A new algorithm for elimination of common subexpressions , 1999, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[11]  Hugo De Man,et al.  High-level address optimization and synthesis techniques for data-transfer-intensive applications , 1998, IEEE Trans. Very Large Scale Integr. Syst..

[12]  Miodrag Potkonjak,et al.  Critical Path Minimization Using Retiming and Algebraic Speed-Up , 1993, 30th ACM/IEEE Design Automation Conference.

[13]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[14]  Raymond Lo,et al.  Partial redundancy elimination in SSA form , 1999, TOPL.

[15]  Steven S. Muchnick,et al.  Advanced Compiler Design and Implementation , 1997 .

[16]  Kemal Ebcioglu,et al.  A global resource-constrained parallelization technique , 1989 .

[17]  Guang R. Gao,et al.  Incremental Computation of Dominator Trees , 1995, Intermediate Representations Workshop.

[18]  Francky Catthoor,et al.  Analysis of high-level address code transformations for programmable processors , 2000, DATE '00.

[19]  Miodrag Potkonjak,et al.  Multiple constant multiplications: efficient and versatile framework and algorithms for exploring common subexpression elimination , 1996, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..