Register Windows vs. Register Allocation

نویسنده

  • David W. Wall
چکیده

A large register set can be exploited by keeping variables and constants in registers instead of in memory. Hardware register windows and compiletime or link-time global register allocation are ways to do this. A measure of the effectiveness of any of these register management schemes is how thoroughly they manage to remove loads and stores. This measure also must count extra loads and stores that had to be executed because of window overflow or conflicts between procedures. By combining profiling, instrumentation, and in-line simulation, we measured the effectiveness of several register management schemes. These included compile-time and link-time schemes for allocating 52 registers, and register window schemes using 128 registers organized into fixed-size or variable-sized windows. Link-time allocation based on profile information was the clear winner in some cases and did about as well as windows in the rest. Even link-time allocation based on an estimated profile was about as good as windows. Variable-sized windows sometimes did better than fixedsized windows, but the difference was usually small. Register windows require additional logic in the data path, which may slow the machine cycle slightly, and sometimes use more chip real estate for additional registers. Proponents of windows suppose that they trade these drawbacks for a reduction in the number of memory references that must be made. Our results show that this tradeoff should be made the other way: keep the hardware simple, because a link-time register allocator can effectively duplicate the improvement in memory reference frequency, and the cycle time can therefore be kept as small as possible, resulting in faster programs overall. This paper also appears in Proceedings of the SIGPLAN ’88 Conference on Programming Language Design and Implementation, June 1988. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing machinery. To copy otherwise, or to republish, requires a fee and/or specific permission.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

An improved dynamic register array concept for high-performance RISC processors

To avoid RISC processors accessing the external memory, an increased number of processor registers is destrable. However, sophisticated concepts are needed for the handling of large amounts of registers. Multi Windows are an improved version of Threaded Wtndows, the first dynamic register array concept. Both utilize dynamic register allocation for handling a very large number of general purpose...

متن کامل

Graph Coloring vs. Optimal Register Allocation for Optimizing Compilers

Optimizing compilers play an important role for the efficient execution of programs written in high level programming languages. Current microprocessors impose the problem that the gap between processor cycle time and memory latency increases. In order to fully exploit the potential of processors, nearly optimal register allocation is of paramount importance. In the predominance of the x86 arch...

متن کامل

Register Allocation Instruction Scheduling A New Approach

Instruction scheduling and register allocation are two very In this paper, we solve register allocation and instruction scheduling simultaneously using integer linear programming (ILP). theform ulation?a new ???v ariableU has taken several approaches, including: branch-andbound enumeration (5) (13). more expensive register spill and reload instructions in the program. Eager code This thesis dev...

متن کامل

Retargetable Graph-Coloring Register Allocation for Irregular Architectures

Global register allocation is one of the most important optimizations in a compiler. Since the early 80’s, register allocation by graph coloring has been the dominant approach. The traditional formulation of graph-coloring register allocation implicitly assumes a single bank of non-overlapping general-purpose registers and does not handle irregular architectural features like overlapping regist...

متن کامل

Effective Instruction Scheduling With Limited Registers

Effective global instruction scheduling techniques have become an important component in modern compilers for exposing more instruction-level parallelism (ILP) and exploiting the everincreasing number of parallel function units. Effective register allocation has long been an essential component of a good compiler for reducing memory references. While instruction scheduling and register allocati...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1987