سند علمی

Register Allocation via Coloring of Chordal Graphs

چکیده

We present a simple algorithm for register allocation which is competitive with the iterated register coalescing algorithm of George and Appel. We base our algorithm on the observation that 95% of the methods in the Java 1.5 library have chordal interference graphs when compiled with the JoeQ compiler. A greedy algorithm can optimally color a chordal graph in time linear in the number of edges, and we can easily add powerful heuristics for spilling and coalescing. Our experiments show that the new algorithm produces better results than iterated register coalescing for settings with few registers and comparable results for settings with many registers.

اسناد مشابه

  • Register Allocation via Chordal Graph Coloring for a HOT Compiler

    سند علمی۲۰۰۶Daniel Lee, Bryan Mills

    [Note: this is an early draft of this write-up. A more polished version with citations and so forth is on the way shortly.] The problem of creating efficient type-preserving compilers for programming langauges with higherorder functions and rich type systems (HOT) has been studie

  • Register Allocation via Hierarchical Graph Coloring

    سند علمی۱۹۹۶Qunyan Wu, Steve Carr, Linda Ott, David Poplawski

    Register allocation is a vital stage in compiler optimization. It greatly impacts the effectiveness of other compiler optimization techniques. Graph coloring is the commonly used mechanism for register allocation. Since graph coloring is an NP-complete problem, heuristics are nee

  • Register Allocation via Weighted Graph Coloring (Technical Summary)

    سند علمی۲۰۱۳Russell W. Quong, Shu-Ching Chen

    Register allocation by coloring an interference graph is a common technique. We introduce the weighted interference graph (WIG) which improves upon previous approaches in the following ways: (i) the cost of a coloring accurately models the cost of the register assignment, (ii) ar

  • Global Register Allocation Based on Graph Fusion

    سند علمی۱۹۹۶LCPCGuei-Yuan Lueh, Thomas R. Gross, Ali-Reza Adl-Tabatabai

    A register allocator must effectively deal with three issues: live range splitting, live range spilling, and register assignment. This paper presents a new coloring-based global register allocation algorithm that addresses all three issues in an integrated way: the algorithm star

  • Live Range Splitting in a Graph Coloring Register Allocator

    سند علمی۱۹۹۸CCKeith D. Cooper, L. Taylor Simpson

    Abstrac t . Graph coloring is the dominant paradigm for global register allocation [8, 7, 4]. Coloring allocators use an interference graph, Z, to model conflicts that prevent two values from sharing a register. Nodes in 2: represent live ranges. An edge between two nodes indicat

  • Graph Coloring vs. Optimal Register Allocation for Optimizing Compilers

    سند علمی۲۰۰۳JMLCUlrich Hirnschrott, Andreas Krall, Bernhard Scholz

    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 potent