harpoon.Analysis.Instr
Class RegAllocOpts

java.lang.Object
  extended by harpoon.Analysis.Instr.RegAllocOpts

public class RegAllocOpts
extends Object

RegAllocOpts encapsulates a set of modifications to how register allocation will be performed on a particular set of methods. The choice of modifications are read in from a seperate file, and then code factories produced by this will use the options given the file to change how register allocation is done in certain cases.

Currently, the file supports the following options:
"FORCE_LOCAL method name ..." forces the register allocator to use a local allocation strategy on method name rather than whatever default strategy is in place.
"DISABLE_REACHING_DEFS method name ..." forces the register allocator to use a local allocation strategy on method name rather than whatever default strategy is in place, and in addition disables ReachingDefs analysis in local register allocation. This is a sick hack added just to compile certain spec classes before his deadline.
"FORCE_GLOBAL method name ..." forces the register allocator to use a global allocation strategy on method name, rather than whatever default stategy is in place.
"FORCE_COALESCE method name ..." forces global allocation with non-conservative move coalescing to take place, even when it might result in additional memory traffic.
"DISABLE_COALESCE method name ..." turns off move coalescing on global allocation.
"FORCE_APPEL method name ..." forces the register allocator to use Appel-style register allocation on method name, rather than whatever default strategy is in place.
"FORCE_FELIX method name ..." forces the register allocator to use Appel-style register allocation on method name (with modifications for architectural indepedence), rather than whatever default strategy is in place.
"# comment" is a comment line (not strictly an option, since this line is ignored by this, but too useful to omit)

The method names given in the file should be disjoint; the behavior of allocation is undefined when a method is listed under multiple options.

A set of methods with a common prefix can be passed as the method name argument to a single option by appending the wildcard character '*' to the prefix.

After these options have been loaded, this class can be used to produce wrapper RegAlloc.Factorys around other RegAlloc.Factorys

Version:
$Id: RegAllocOpts.java,v 1.3 2004/02/08 03:19:37 cananian Exp $
Author:
Felix S. Klock II <pnkfelix@mit.edu>

Field Summary
static boolean INFO
           
 
Constructor Summary
RegAllocOpts(String filename)
          Creates a RegAllocOpts.
 
Method Summary
 RegAlloc.Factory factory(RegAlloc.Factory hc)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INFO

public static final boolean INFO
See Also:
Constant Field Values
Constructor Detail

RegAllocOpts

public RegAllocOpts(String filename)
Creates a RegAllocOpts.

Method Detail

factory

public RegAlloc.Factory factory(RegAlloc.Factory hc)