harpoon.Analysis.PointerAnalysis
Class MAInfo.MAInfoOptions

java.lang.Object
  extended by harpoon.Analysis.PointerAnalysis.MAInfo.MAInfoOptions
All Implemented Interfaces:
Serializable, Cloneable
Enclosing class:
MAInfo

public static class MAInfo.MAInfoOptions
extends Object
implements Cloneable, Serializable

Options for the MAInfo processing.

See Also:
Serialized Form

Field Summary
 boolean DO_INLINING_FOR_SA
          Enables the application of some method inlining to increase the effectiveness of the stack allocation.
 boolean DO_INLINING_FOR_TA
          Enables the application of some method inlining to increase the effectiveness of the thread local heap allocation.
 boolean DO_PREALLOCATION
          Enables the use of preallocation: if an object will be accessed only by a thread (ie it is created just to pass some parameters to a thread), it can be preallocated into the heap of that thread.
 boolean DO_STACK_ALLOCATION
          Controls the generation of stack allocation hints.
 boolean DO_THREAD_ALLOCATION
          Controls the generation of thread local heap allocation hints.
 boolean GEN_SYNC_FLAG
          Controls the detection of the objects for whom there are no concurrent synchronizations.
 boolean IGNORE_INIT_CODE
           
 int MAX_INLINABLE_METHOD_SIZE
          The maximal size of a method that can be inlined.
 int MAX_INLINING_LEVEL
          The current implementation is able to inline call strings of length bigger than one.
 int MAX_METHOD_SIZE
          The maximal size to which we can inflate the size of a method through inlining.
static int STACK_ALLOCATE_ALWAYS
          Stack allocate everything that's captured.
static int STACK_ALLOCATE_NOT_IN_LOOPS
          Don't stack allocate in loops.
static int STACK_ALLOCATE_NOTHING
          Don't stack allocate anything.
 int STACK_ALLOCATION_POLICY
          Forbids stack allocation in a loop.
 boolean USE_INTER_THREAD
          Use the interthread analysis inside MAInfo.
 
Constructor Summary
MAInfo.MAInfoOptions()
           
 
Method Summary
 Object clone()
           
 boolean do_inlining()
          Checks whether any inlining is requested.
 void print(String prefix)
          Pretty printer.
 boolean stack_allocate_not_in_loops()
          Return true if policy is STACK_ALLOCATE_NOT_IN_LOOPS.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

IGNORE_INIT_CODE

public boolean IGNORE_INIT_CODE

DO_STACK_ALLOCATION

public boolean DO_STACK_ALLOCATION
Controls the generation of stack allocation hints. Default false.


STACK_ALLOCATION_POLICY

public int STACK_ALLOCATION_POLICY
Forbids stack allocation in a loop. Should be one of the STACK_ALLOCATE_* constants. Default is STACK_ALLOCATE_NOT_IN_LOOPS.


STACK_ALLOCATE_NOTHING

public static final int STACK_ALLOCATE_NOTHING
Don't stack allocate anything.

See Also:
Constant Field Values

STACK_ALLOCATE_NOT_IN_LOOPS

public static final int STACK_ALLOCATE_NOT_IN_LOOPS
Don't stack allocate in loops.

See Also:
Constant Field Values

STACK_ALLOCATE_ALWAYS

public static final int STACK_ALLOCATE_ALWAYS
Stack allocate everything that's captured.

See Also:
Constant Field Values

DO_THREAD_ALLOCATION

public boolean DO_THREAD_ALLOCATION
Controls the generation of thread local heap allocation hints. Default false.


DO_INLINING_FOR_SA

public boolean DO_INLINING_FOR_SA
Enables the application of some method inlining to increase the effectiveness of the stack allocation. Only inlinings that increase the effectiveness of the stack allocation are done. Default false.


DO_INLINING_FOR_TA

public boolean DO_INLINING_FOR_TA
Enables the application of some method inlining to increase the effectiveness of the thread local heap allocation. Default false.


DO_PREALLOCATION

public boolean DO_PREALLOCATION
Enables the use of preallocation: if an object will be accessed only by a thread (ie it is created just to pass some parameters to a thread), it can be preallocated into the heap of that thread. For the moment, it is potentially dangerous so it is deactivated by default. Default false.


GEN_SYNC_FLAG

public boolean GEN_SYNC_FLAG
Controls the detection of the objects for whom there are no concurrent synchronizations. This objects are marked with a special flag to reduce the cost of synchronization operations. Default false.


USE_INTER_THREAD

public boolean USE_INTER_THREAD
Use the interthread analysis inside MAInfo. If this analysis is too buggy or time/memory expensive, you can disable it through this flag. NOTE: this will also disable some of the optimizations (eg the preallocation). Default false.


MAX_INLINING_LEVEL

public int MAX_INLINING_LEVEL
The current implementation is able to inline call strings of length bigger than one. Default value is 2.


MAX_METHOD_SIZE

public int MAX_METHOD_SIZE
The maximal size to which we can inflate the size of a method through inlining. Default is 1000 quads.


MAX_INLINABLE_METHOD_SIZE

public int MAX_INLINABLE_METHOD_SIZE
The maximal size of a method that can be inlined. Default is 100 quads.

Constructor Detail

MAInfo.MAInfoOptions

public MAInfo.MAInfoOptions()
Method Detail

stack_allocate_not_in_loops

public boolean stack_allocate_not_in_loops()
Return true if policy is STACK_ALLOCATE_NOT_IN_LOOPS.


do_inlining

public boolean do_inlining()
Checks whether any inlining is requested.


print

public void print(String prefix)
Pretty printer.


clone

public Object clone()
Overrides:
clone in class Object