Abstract
Optimizing compilers increase the resulting code performance by carrying out a number of code optimization techniques. Profile information assistance for code optimizations gives an opportunity to greatly increase the code performance in some cases. However, the impossibility to provide a representative training execution often leads to the decline in efficiency of profile-dependent code optimizations. This paper investigates the main causes of the performance loss for the one-stage optimization as compared to the profileguided optimization (PGO) and introduces some alternative compilation techniques to reduce this loss. The effectiveness of these techniques is evaluated for a VLIW-architecture Elbrus compiler.
Similar content being viewed by others
References
Chang, P.P., Mahlke, S.A., and Hwu, W.W., Using profile information to assist classic compiler code optimizations, Software Practice Experience, 1991, vol. 21, no. 12, pp. 1301–1321.
Maslennikov, D.M. and Volkonsky, V.V., Compiler method and apparatus for elimination of redundant speculative computations from innermost loops, Elbrus International, 2001.
Volkonskii, V.Yu., Breger, A.V., Buchnev, A.Yu., Grabezhnoi, A.V., Ermolitskii, A.V., Mukhanov, L.E., Neiman-zade, M.I., Stepanov, P.A., and Chetverina, O.A., Methods for code parallelization in an optimizing compiler, Vopr. Radioelektron., 2012, no. 3.
Lam, M., Software pipelining: An effective scheduling technique for VLIW machines, Proc. ACM SIGPLAN Conf. on Programming Language Design and Implementation (PLDI), 1988.
Vanderwiel, S.P. and Lilja, D.J., Data prefetch mechanisms, ACM Computing Surv., 2000, vol. 32, no. 2.
Aho, A.V., Lam, M., Sethi, R., and Ullman, J.D., Compilers: Principles, Techniques, and Tools, Addison-Wesley, 2007, 2nd ed.
Pouchet, L.-N., Bondhugula, U., Bastoul, C., Cohen, A., Ramanujam, J., Sadayappan, P., and Vasilache, N., Loop transformations: Convexity, pruning, and optimization, Proc. 38th ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages (POPL), 2011, pp. 549–562.
Rong, H., Tang, Z., Govindarajan, R., Douillet, A., and Gao, G.R., Single-dimension software pipelining for multidimensional loops, ACM Trans. Architecture Code Optimization, 2007, vol. 4, no. 1.
Zhuge, Q., Shao, Z., and Sha, E.H.-M., Optimization of nest-loop software pipelining. http://www.utdallas. edu/~edsha/papers/qfzhuge/MDjournal.pdf.
Fellahi, M. and Cohen, A., Software pipelining in nested loops with prolog-epilog merging, Lect. Notes Comput. Sci., 2009, vol. 5409, pp. 80–94.
Standard Performance Evaluation Corporation. http://www.spec.org.
Lee, J., Kim, H., and Vuduc, R.W., When prefetching works, when it doesn’t, and why, ACM Trans. Architecture Code Optimization, 2012, vol. 9, no. 1.
Author information
Authors and Affiliations
Corresponding author
Additional information
Original Russian Text © O.A. Chetverina, 2016, published in Programmirovanie, 2016, Vol. 42, No. 1.
Rights and permissions
About this article
Cite this article
Chetverina, O.A. Alternatives of profile-guided code optimizations for one-stage compilation. Program Comput Soft 42, 34–40 (2016). https://doi.org/10.1134/S0361768816010035
Received:
Published:
Issue Date:
DOI: https://doi.org/10.1134/S0361768816010035