org.jikesrvm.compilers.opt.escape
Class MethodSummary

java.lang.Object
  extended by org.jikesrvm.compilers.opt.escape.MethodSummary

 class MethodSummary
extends Object

Hold semantic information about a method that is not defined in RVMMethod.


Field Summary
private  long escapeInfo
          Escape result, top bit is result of the method bits 0..63 are for parameters 0..63 respectively
private static boolean inProgress
          Is this method currently being analyzed?
private static long RES_ESCAPE
          Default escape result, that the result escapes but that no parameter is escaping.
 
Constructor Summary
MethodSummary(RVMMethod m)
           
 
Method Summary
 boolean inProgress()
          Is analysis of this method in progress?
 boolean parameterMayEscapeThread(int p)
          Query whether a parameter may escape from a thread.
 boolean resultMayEscapeThread()
          Query whether the result of this method may escape from a thread.
 void setInProgress(boolean b)
          Mark that analysis of this method is or is not in progress.
 void setParameterMayEscapeThread(int p, boolean b)
          Record that a parameter may or may not escape from a thread.
 void setResultMayEscapeThread(boolean b)
          Record that a result of this method may or may not escape from a thread.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

inProgress

private static boolean inProgress
Is this method currently being analyzed? Used for recursive invocations of the optimizing compiler.


RES_ESCAPE

private static final long RES_ESCAPE
Default escape result, that the result escapes but that no parameter is escaping.

See Also:
Constant Field Values

escapeInfo

private long escapeInfo
Escape result, top bit is result of the method bits 0..63 are for parameters 0..63 respectively

Constructor Detail

MethodSummary

MethodSummary(RVMMethod m)
Parameters:
m - RVMMethod representing this method.
Method Detail

setParameterMayEscapeThread

public void setParameterMayEscapeThread(int p,
                                        boolean b)
Record that a parameter may or may not escape from a thread.

Parameters:
p - the number of the parameter
b - may it escape?

parameterMayEscapeThread

public boolean parameterMayEscapeThread(int p)
Query whether a parameter may escape from a thread.

Parameters:
p - the number of the parameter
Returns:
false iff the parameter must not escape from the thread. true otherwise.

setResultMayEscapeThread

public void setResultMayEscapeThread(boolean b)
Record that a result of this method may or may not escape from a thread.

Parameters:
b - may it escape?

resultMayEscapeThread

public boolean resultMayEscapeThread()
Query whether the result of this method may escape from a thread.

Returns:
false iff the parameter must not escape from the thread. true otherwise.

inProgress

public boolean inProgress()
Is analysis of this method in progress?


setInProgress

public void setInProgress(boolean b)
Mark that analysis of this method is or is not in progress.

Parameters:
b -