Provides the classes for coloring generic Graphs. The purpose of Graph Coloring is to detect potential Interferences (Resource Conflicts), and then use that knowledge to allow resource consumers to share resources. Graph coloring problems derive from the old mapmakers' rule that adjacent countries on a map should be colored with different colors. So in that case, colors are the resource, countries are the consumers, and borders between countries are the interferences.

The design of the GraphColoring package implements graph coloring analysis in terms of four parts: Graphs to represent resource consumers and the interferences between them, Colors to represent the resources, ColorFactories to represent resource generators (to allow for unbounded resources to be represented, like Stack Offsets), and GraphColorers to assign a mapping from consumers to resources.

Usually graph coloring is used for Register Allocation problems, although other problems can often be reduced to graph coloring (such as interface method table layout).

Related Documentation

For further information, see: @author Felix Klock (pnkfelix@mit.edu)