Abstract
Partial redundancy elimination (PRE) techniques play an important role in optimizing compilers. Many optimizations, such as elimination of redundant expressions, communication optimizations, and load-reuse optimizations, employ PRE as an underlying technique for improving the efficiency of a program.
Classical approaches are conservative and fail to exploit many opportunities for optimization. Therefore, new PRE approaches have been developed that greatly increase the number of eliminated redundancies. However, they either cause the code to explode in size or they cannot handle statements with side-effects.
First, we describe a basic transformation for PRE that employs predication to achieve a complete removal of partial redundancies. The control flow is not restructured, however, predication might cause performance overhead. Second, a cost-analysis based on probabilistic data-flow analysis decides whether a PRE transformation is profitable and should be applied. In contrast to other approaches our transformation is strictly semantics preserving.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Bodík, R., Gupta, R., Soffa, M.L.: Complete removal of redundant expressions. In: Proceedings of the ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation (PLDI), Montreal, Canada, June 17–19, pp. 1–14 (1998)
Bodik, R., Gupta, R., Soffa, M.L.: Load-reuse analysis: Design and evaluation. ACM SIGPLAN Notices 34(5), 64–76 (1999)
Gupta, R., Berson, D.A., Fang, J.Z.: Path profile guided partial redundancy elimination using speculation. In: Proceedings of the 1998 International Conference on Computer Languages, pp. 230–239. IEEE Computer Society Press, Los Alamitos (1998)
Nigel Horspool, R., Ho, H.C.: Partial redundancy elimination driven by a cost-benefit analysis. In: Proceedings of 8th Israeli Conference on Computer Systems and Software Engineering (ICSSE 1997), Herzliya, Israel, June 1997, pp. 111–118. IEEE Computer Society, Los Alamitos (1997)
Kandemir, M., Banerjee, P., Choudhary, A., Ramanujam, J., Shenoy, N.: A global communication optimization technique based on data-flow analysis and linear algebra. ACM Transactions on Programming Languages and Systems 21(6), 1251–1297 (1999)
Knoop, J., Mehofer, E.: Distribution assignment placement: Effective optimization of redistribution costs. IEEE Transactions on Parallel and Distributed Systems 13(6), 628–647 (2002)
Knoop, J., Rüthing, O., Steffen, B.: Optimal code motion: Theory and practice. ACM Transactions on Programming Languages and Systems 16(4), 1117–1155 (1994)
Mehofer, E., Scholz, B.: Probabilistic data flow system with two-edge profiling. In: Workshop on Dynamic and Adaptive Compilation and Optimization (Dynamo 2000), ACM SIGPLAN Notices, vol. 35(7), pp. 65–72 (2000)
Mehofer, E., Scholz, B.: A novel probabilistic data flow framework. In: Wilhelm, R. (ed.) CC 2001. LNCS (LNAI), vol. 2027, pp. 37–51. Springer, Heidelberg (2001)
Ramalingam, G.: Data flow frequency analysis. In: Proc. of the ACM SIGPLAN 1996 Conference on Programming Language Design and Implementation (PLDI 1996), Philadephia, Pennsylvania, May 1996, pp. 267–277 (1996)
Scholz, B., Mehofer, E.: Dataflow frequency analysis based on whole program paths. In: Proceedings of the IEEE International Conference on Parallel Architectures and Compilation Techniques (PACT-2002) (Charlottesville, VA) (September 2002)
Steffen, B.: Property oriented expansion. In: Cousot, R., Schmidt, D.A. (eds.) SAS 1996. LNCS (LNAI), vol. 1145, pp. 22–41. Springer, Heidelberg (1996)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Scholz, B., Mehofer, E., Horspool, N. (2003). Partial Redundancy Elimination with Predication Techniques. In: Kosch, H., Böszörményi, L., Hellwagner, H. (eds) Euro-Par 2003 Parallel Processing. Euro-Par 2003. Lecture Notes in Computer Science, vol 2790. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45209-6_38
Download citation
DOI: https://doi.org/10.1007/978-3-540-45209-6_38
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40788-1
Online ISBN: 978-3-540-45209-6
eBook Packages: Springer Book Archive