DOI QR코드

DOI QR Code

Getting Feedback on a Compiler's Optimization Decisions, Enabling More Code-Optimization Opportunities

  • Min, Gyeong Il (School of Electrical Engineering, Korea University) ;
  • Park, Sewon (School of Electrical Engineering, Korea University) ;
  • Han, Miseon (Compiler and Microarchitecture Laboratory, School of Electrical and Computer Engineering, College of Engineering, Korea University) ;
  • Kim, Seon Wook (Compiler and Microarchitecture Laboratory, School of Electrical and Computer Engineering, College of Engineering, Korea University)
  • Received : 2015.12.17
  • Accepted : 2015.12.23
  • Published : 2015.12.31

Abstract

Short execution time is the major performance factor for computer systems. This performance factor is directly determined by code quality, which is influenced by the compiler's optimizations. However, a compiler has limitations when optimizing source code due to insufficient information. Thus, if programmers can learn the reasons why a compiler fails to apply optimizations, they can rewrite code that is more easily understood by the compiler, and thus improve performance. In this paper, we propose a compiler that provides a programmer with reasons for failed optimization and recognizes programmer's additional information to obtain better optimization. As a result, we obtain performance improvement, i.e., reducing execution time and code size, by taking advantage of additional optimization opportunities.

Keywords

References

  1. P. P. Chang, et al., "Inline function expansion for compiling C programs," in Proc. of PLDI 1989, pp. 246-257, Jul. 1989.
  2. The LLVM Compiler Infrastructure. http://llvm.org/
  3. David F. Bacon, et al., "Compiler transformations for high-performance computing," ACM Comput. Surv., Vol. 26, pp. 345-420, Dec. 1994. https://doi.org/10.1145/197405.197406
  4. Vincent St-Amour, et al., "Optimization coaching: optimizers learn to communicate with programmers," in Proc. Of OOPSLA 2012, Oct. 2012.
  5. John L. Henning, "SPEC CPU2006 benchmark descriptions," SIGARCH Comput. Archit. News, Vol. 34, pp. 1-17, Sep. 2006.
  6. The Rpass Infrastructure.
  7. Lattner, Chris, "LLVM and Clang: Next generation compiler technology," The BSD Conference 2008, May. 2008.
  8. Reinders, James, "VTune performance analyzer essentials," Intel Press, 2005.
  9. Hal Finkel, "Intrinsics, Metadata and Attributes: Now, more than ever!," 2014 LLVM Developers' Meeting.