首页 | 本学科首页   官方微博 | 高级检索  
     


Region-based compilation: Introduction, motivation, and initial experience
Authors:Richard E Hank  Wen-mei W Hwu  B Ramakrishna Rau
Affiliation:(1) Work done at the Center for Reliable and High-Performance Computing, University of Illinois, Urbana-Champaign, Illinois;(2) Hewlett Packard California Language Lab, Cupertino, California;(3) Center for Reliable and High-Performance Computing, University of Illinois, Urbana-Champaign, Illinois;(4) Hewlett Packard Laboratories, Palo Alto, California
Abstract:The most important task of a compiler designed to exploit instruction-level parallelism (ILP) is instruction scheduling. If higher levels of ILP are to be achieved, the compiler must use, as the unit of scheduling, regions consisting of multiple basic blocks—preferably those that frequently execute consecutively, and which capture cycles in the program’s execution. Traditionally, compilers have been built using the function as the unit of compilation. In this framework, function boundaries often act as barriers to the formation of the most suitable scheduling regions. Function inlining may be used to circumvent this problem by assembling strongly coupled functions into the same compilation unit, but at the cost of very large function bodies. Consequently, global optimizations whose compile time and space requirements are superlinear in the size of the compilation unit, may be rendered prohibitively expensive. This paper introduces a new approach, called region-based compilation, wherein the compiler, after inlining, repartitions the program into more desirable compilation units, termed regions. Region-based compilation allows the compiler to control problem size and complexity while exposing inter-procedural scheduling, optimization and code motion opportunities.
Keywords:ILP compilation  region-based compilation  compilation time complexity  inlining  code expansion
本文献已被 SpringerLink 等数据库收录!
设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号