Browse > Article
http://dx.doi.org/10.5573/IEIESPC.2015.4.6.450

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)
Publication Information
IEIE Transactions on Smart Processing and Computing / v.4, no.6, 2015 , pp. 450-454 More about this Journal
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
LLVM; Optimization; Performance; Code quality; Execution time;
Citations & Related Records
연도 인용수 순위
  • Reference
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.   DOI
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.