Static single-assignment formIn compiler design, static single assignment form (often abbreviated as SSA form or simply SSA) is a property of an intermediate representation (IR) that requires each variable to be assigned exactly once and defined before it is used. Existing variables in the original IR are split into versions, new variables typically indicated by the original name with a subscript in textbooks, so that every definition gets its own version. In SSA form, use-def chains are explicit and each contains a single element.
Graph coloringIn 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.
Register allocationIn 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.
Fractional coloringFractional coloring is a topic in a young branch of graph theory known as fractional graph theory. It is a generalization of ordinary graph coloring. In a traditional graph coloring, each vertex in a graph is assigned some color, and adjacent vertices — those connected by edges — must be assigned different colors. In a fractional coloring however, a set of colors is assigned to each vertex of a graph. The requirement about adjacent vertices still holds, so if two vertices are joined by an edge, they must have no colors in common.
Optimizing compilerIn computing, an optimizing compiler is a compiler that tries to minimize or maximize some attributes of an executable computer program. Common requirements are to minimize a program's execution time, memory footprint, storage size, and power consumption (the last three being popular for portable computers). Compiler optimization is generally implemented using a sequence of optimizing transformations, algorithms which take a program and transform it to produce a semantically equivalent output program that uses fewer resources or executes faster.
Chordal graphIn the mathematical area of graph theory, a chordal graph is one in which all cycles of four or more vertices have a chord, which is an edge that is not part of the cycle but connects two vertices of the cycle. Equivalently, every induced cycle in the graph should have exactly three vertices. The chordal graphs may also be characterized as the graphs that have perfect elimination orderings, as the graphs in which each minimal separator is a clique, and as the intersection graphs of subtrees of a tree.
Edge coloringIn graph theory, a proper edge coloring of a graph is an assignment of "colors" to the edges of the graph so that no two incident edges have the same color. For example, the figure to the right shows an edge coloring of a graph by the colors red, blue, and green. Edge colorings are one of several different types of graph coloring. The edge-coloring problem asks whether it is possible to color the edges of a given graph using at most k different colors, for a given value of k, or with the fewest possible colors.
Altered chordAn altered chord is a chord that replaces one or more notes from the diatonic scale with a neighboring pitch from the chromatic scale. By the broadest definition, any chord with a non-diatonic chord tone is an altered chord. The simplest example of altered chords is the use of borrowed chords, chords borrowed from the parallel key, and the most common is the use of secondary dominants. As Alfred Blatter explains, "An altered chord occurs when one of the standard, functional chords is given another quality by the modification of one or more components of the chord.
ChromaticismChromaticism is a compositional technique interspersing the primary diatonic pitches and chords with other pitches of the chromatic scale. In simple terms, within each octave, diatonic music uses only seven different notes, rather than the twelve available on a standard piano keyboard. Music is chromatic when it uses more than just these seven notes. Chromaticism is in contrast or addition to tonality or diatonicism and modality (the major and minor, or "white key", scales).
Extended chordIn music, extended chords are certain chords (built from thirds) or triads with notes extended, or added, beyond the seventh. Ninth, eleventh, and thirteenth chords are extended chords. The thirteenth is the farthest extension diatonically possible as, by that point, all seven tonal degrees are represented within the chord (the next extension, the fifteenth, is the same as the root of the chord). In practice however, extended chords do not typically use all the chord members; when it is not altered, the fifth is often omitted, as are notes between the seventh and the highest note (i.