Chaitin's Algorithm
   HOME
*





Chaitin's Algorithm
Chaitin's algorithm is a bottom-up, graph coloring register allocation algorithm that uses cost/degree as its spill metric. It is named after its designer, Gregory Chaitin. Chaitin's algorithm was the first register allocation algorithm that made use of coloring of the interference graph for both register allocations and spilling. Chaitin's algorithm was presented on the 1982 SIGPLAN SIGPLAN is the Association for Computing Machinery's Special Interest Group on programming languages. Conferences * Principles of Programming Languages (POPL) * Programming Language Design and Implementation (PLDI) * International Symposium on ... Symposium on Compiler Construction, and published in the symposium proceedings. It was extension of an earlier 1981 paper on the use of graph coloring for register allocation. Chaitin's algorithm formed the basis of a large section of research into register allocators. References * {{algorithm-stub Graph algorithms ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Graph Coloring
In graph theory, graph coloring is a special case of graph labeling; it is an assignment of labels traditionally called "colors" to elements of a graph subject to certain constraints. In its simplest form, it is a way of coloring the vertices of a graph such that no two adjacent vertices are of the same color; this is called a vertex coloring. Similarly, an edge coloring assigns a color to each edge so that no two adjacent edges are of the same color, and a face coloring of a planar graph assigns a color to each face or region so that no two faces that share a boundary have the same color. Vertex coloring is often used to introduce graph coloring problems, since other coloring problems can be transformed into a vertex coloring instance. For example, an edge coloring of a graph is just a vertex coloring of its line graph, and a face coloring of a plane graph is just a vertex coloring of its dual. However, non-vertex coloring problems are often stated and studied as-is. This is ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Register Allocation
In compiler optimization, register allocation is the process of assigning local automatic variables and expression results to a limited number of processor registers. Register allocation can happen over a basic block (''local register allocation''), over a whole function/ procedure (''global register allocation''), or across function boundaries traversed via call-graph (''interprocedural register allocation''). When done per function/procedure the calling convention may require insertion of save/restore around each call-site. Context Principle {, class="wikitable floatright" , + Different number of scalar registers in the most common architectures , - ! Architecture ! scope="col" , 32 bits ! scope="col" , 64 bits , - ! scope="row" , ARM , 15 , 31 , - ! scope="row" , Intel x86 , 8 , 16 , - ! scope="row" , MIPS , 32 , 32 , - ! scope="row" , POWER/PowerPC , 32 , 32 , - ! scope="row" , RISC-V , 16/32 , 32 , - ! scope="row" , SP ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Algorithm
In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algorithms are used as specifications for performing calculations and data processing. More advanced algorithms can perform automated deductions (referred to as automated reasoning) and use mathematical and logical tests to divert the code execution through various routes (referred to as automated decision-making). Using human characteristics as descriptors of machines in metaphorical ways was already practiced by Alan Turing with terms such as "memory", "search" and "stimulus". In contrast, a Heuristic (computer science), heuristic is an approach to problem solving that may not be fully specified or may not guarantee correct or optimal results, especially in problem domains where there is no well-defined correct or optimal result. As an effective method, an algorithm ca ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Spill Metric
A spill metric is a heuristic metric used by register allocators to decide which registers to spill. Popular spill metrics are: * ''cost'' / ''degree'' - introduced in Chaitin's algorithm * ''cost'' / ''degree2'' - emphasizes the spill's effect on neighbours * ''cost'' - emphasizes run time Run(s) or RUN may refer to: Places * Run (island), one of the Banda Islands in Indonesia * Run (stream), a stream in the Dutch province of North Brabant People * Run (rapper), Joseph Simmons, now known as "Reverend Run", from the hip-hop group ... * minimising number of spill operations Where ''cost'' is the estimated cost of spilling a value from registers into memory. Digital registers {{compu-stub ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Gregory Chaitin
Gregory John Chaitin ( ; born 25 June 1947) is an Argentine-American mathematician and computer scientist. Beginning in the late 1960s, Chaitin made contributions to algorithmic information theory and metamathematics, in particular a computer-theoretic result equivalent to Gödel's incompleteness theorem. He is considered to be one of the founders of what is today known as algorithmic (Solomonoff–Kolmogorov–Chaitin, Kolmogorov or program-size) complexity together with Andrei Kolmogorov and Ray Solomonoff. Along with the works of e.g. Solomonoff, Kolmogorov, Martin-Löf, and Leonid Levin, algorithmic information theory became a foundational part of theoretical computer science, information theory, and mathematical logic. It is a common subject in several computer science curricula. Besides computer scientists, Chaitin's work draws attention of many philosophers and mathematicians to fundamental problems in mathematical creativity and digital philosophy. Mathematics and comp ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Interference Graph
Interference is the act of interfering, invading, or poaching. Interference may also refer to: Communications * Interference (communication), anything which alters, modifies, or disrupts a message * Adjacent-channel interference, caused by extraneous power from a signal in an adjacent channel * Co-channel interference, also known as crosstalk * Electromagnetic interference, disturbance that affects an electrical circuit * Inter-carrier interference, caused by Doppler shift in OFDM modulation * Intersymbol interference Entertainment * Interference (band), an Irish band which formed in 1984 * ''Interference'' (Crease album), 1995 * ''Interference'' (Cubanate album), 1998 * ''Interference'' (film), Paramount's first all-talking film * "Interference" (Prison Break episode), a 2007 episode * ''Interference – Book One'', a 1999 ''Doctor Who'' novel by Lawrence Miles * ''Interference – Book Two'', a 1999 ''Doctor Who'' novel by Lawrence Miles * ''Interference'' (novel), a 2 ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




SIGPLAN
SIGPLAN is the Association for Computing Machinery's Special Interest Group on programming languages. Conferences * Principles of Programming Languages (POPL) * Programming Language Design and Implementation (PLDI) * International Symposium on Memory Management (ISMM) * Languages, Compilers, and Tools for Embedded Systems (LCTES) * Symposium on Principles and Practice of Parallel Programming (PPoPP) * International Conference on Functional Programming (ICFP) * Systems, Programming, Languages, and Applications: Software for Humanity (SPLASH) * Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) * History of Programming Languages (HOPL) * Dynamic Languages Symposium (DLS) Associated journals * ACM Transactions on Architecture and Code Optimization * ACM Transactions on Programming Languages and Systems Proceedings of the ACM on Programming Languages Newsletters * SIGPLAN Notices - Home pageat ACM * Fortran Forum - * Lisp Pointers (final issue 1995) ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]