/** An interface to abstract out graph coloring algorithms.
*
* Colorers are most notably used when packing jimple locals
* (soot.toolkits.scalar.LocalPacker) and in assigning locals stack locations
* (soot.jimple.JasminClass).
*
* @author Kacper Wysocki
*/
package soot.toolkits.scalar;
import soot.*;
import java.util.*;
import soot.toolkits.graph.*;
public abstract class LocalColorer {
/** Provides an economical coloring for the locals of
* unitBody. */
public static void assignColorsToLocals(Body unitBody,
Map localToGroup, Map localToColor, Map groupToColorCount){
throw new RuntimeException(
"LocalColorer.assignColorsToLocals is an interface method");
}
/** Provides a coloring for the locals of
* unitBody, attempting to not
* split locals assigned the same name in the original Jimple. */
public static void unsplitAssignColorsToLocals(Body unitBody,
Map localToGroup,
Map localToColor,
Map groupToColorCount){
throw new RuntimeException(
"LocalColorer.assignColorsToLocals is an interface method");
}
}