org.jikesrvm.compilers.opt.ssa
Class SSAOptions

java.lang.Object
  extended by org.jikesrvm.compilers.opt.ssa.SSAOptions

public class SSAOptions
extends Object

This module defines parameters to the SSA construction process. This is used to pass information between compiler phases.

IMPORTANT: Phases that change the SSA state MUST update the SSA actual options held by the IR object.


Field Summary
private  boolean abort
          abort all ssa passes?
private  boolean backwards
          construct Heap SSA for backwards analysis?
private  boolean excludeGuards
          ignore guards (validation regs) ?
private  Set<Object> heapTypes
          restrict Heap SSA to this set of types?
private  boolean heapValid
          is Heap SSA info valid?
private  boolean insertPEIDeps
          constuct Heap SSA with PEI deps?
private  boolean insertUsePhis
          constuct Heap SSA with uPhi functions?
private  boolean scalarsOnly
          construct SSA only for scalars?
private  boolean scalarValid
          is Scalar SSA info valid?
 
Constructor Summary
SSAOptions()
          default configuration: just perform forward scalar SSA
SSAOptions(boolean scalarsOnly, boolean backwards, boolean insertUsePhis, Set<Object> heapTypes)
          Set up instructions for an form of heap Array SSA, or turn it off
 
Method Summary
(package private)  boolean getAbort()
           
(package private)  boolean getBackwards()
           
(package private)  boolean getExcludeGuards()
           
(package private)  Set<Object> getHeapTypes()
           
 boolean getHeapValid()
           
(package private)  boolean getInsertPEIDeps()
           
(package private)  boolean getInsertUsePhis()
           
(package private)  boolean getScalarsOnly()
           
 boolean getScalarValid()
           
(package private)  boolean satisfies(SSAOptions d)
          Given a desired set of SSA Options, does this set of SSA Options describe enough information to satisfy the desire?
(package private)  void setAbort(boolean b)
           
(package private)  void setBackwards(boolean b)
           
(package private)  void setExcludeGuards(boolean b)
           
(package private)  void setHeapTypes(Set<Object> s)
           
(package private)  void setHeapValid(boolean b)
           
(package private)  void setInsertPEIDeps(boolean b)
           
(package private)  void setInsertUsePhis(boolean b)
           
(package private)  void setScalarsOnly(boolean b)
           
(package private)  void setScalarValid(boolean b)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

scalarsOnly

private boolean scalarsOnly
construct SSA only for scalars?


backwards

private boolean backwards
construct Heap SSA for backwards analysis?


insertUsePhis

private boolean insertUsePhis
constuct Heap SSA with uPhi functions?


insertPEIDeps

private boolean insertPEIDeps
constuct Heap SSA with PEI deps?


excludeGuards

private boolean excludeGuards
ignore guards (validation regs) ?


heapTypes

private Set<Object> heapTypes
restrict Heap SSA to this set of types?


heapValid

private boolean heapValid
is Heap SSA info valid?


scalarValid

private boolean scalarValid
is Scalar SSA info valid?


abort

private boolean abort
abort all ssa passes?

Constructor Detail

SSAOptions

SSAOptions(boolean scalarsOnly,
           boolean backwards,
           boolean insertUsePhis,
           Set<Object> heapTypes)
Set up instructions for an form of heap Array SSA, or turn it off


SSAOptions

SSAOptions()
default configuration: just perform forward scalar SSA

Method Detail

getAbort

final boolean getAbort()

setAbort

final void setAbort(boolean b)

getScalarsOnly

final boolean getScalarsOnly()

getBackwards

final boolean getBackwards()

getInsertUsePhis

final boolean getInsertUsePhis()

getInsertPEIDeps

final boolean getInsertPEIDeps()

getExcludeGuards

final boolean getExcludeGuards()

getHeapTypes

final Set<Object> getHeapTypes()

getHeapValid

public final boolean getHeapValid()

getScalarValid

public final boolean getScalarValid()

setScalarsOnly

final void setScalarsOnly(boolean b)

setBackwards

final void setBackwards(boolean b)

setInsertUsePhis

final void setInsertUsePhis(boolean b)

setExcludeGuards

final void setExcludeGuards(boolean b)

setInsertPEIDeps

final void setInsertPEIDeps(boolean b)

setHeapTypes

final void setHeapTypes(Set<Object> s)

setHeapValid

final void setHeapValid(boolean b)

setScalarValid

final void setScalarValid(boolean b)

satisfies

boolean satisfies(SSAOptions d)
Given a desired set of SSA Options, does this set of SSA Options describe enough information to satisfy the desire?

Parameters:
d - the desired SSA options