org.jikesrvm.compilers.opt.escape
Class FI_EscapeSummary

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

 class FI_EscapeSummary
extends Object

This class holds the results of a flow-insensitive escape analysis for a method.


Field Summary
private  HashMap<Register,Object> hash
          A mapping that holds the analysis result for thread-locality for each Register.
private  HashMap<Register,Object> hash2
          A mapping that holds the analysis result for method-locality for each Register.
(package private) static Object MAY_ESCAPE_METHOD
          Static object used to represent analysis result
(package private) static Object MAY_ESCAPE_THREAD
          Static object used to represent analysis result
(package private) static Object METHOD_LOCAL
          Static object used to represent analysis result
(package private) static Object THREAD_LOCAL
          Static object used to represent analysis result
 
Constructor Summary
FI_EscapeSummary()
           
 
Method Summary
(package private)  boolean isMethodLocal(Register r)
          Returns true iff ANY object pointed to by symbolic register r MUST be method local
(package private)  boolean isThreadLocal(Register r)
          Returns true iff ANY object pointed to by symbolic register r MUST be thread local
(package private)  void setMethodLocal(Register r, boolean b)
          Record the fact that ALL object pointed to by symbolic register r MUST (or may) escape this method
(package private)  void setThreadLocal(Register r, boolean b)
          record the fact that ALL object pointed to by symbolic register r MUST (or may) escape this thread
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

hash

private final HashMap<Register,Object> hash
A mapping that holds the analysis result for thread-locality for each Register.


hash2

private final HashMap<Register,Object> hash2
A mapping that holds the analysis result for method-locality for each Register.


THREAD_LOCAL

static final Object THREAD_LOCAL
Static object used to represent analysis result


MAY_ESCAPE_THREAD

static final Object MAY_ESCAPE_THREAD
Static object used to represent analysis result


METHOD_LOCAL

static final Object METHOD_LOCAL
Static object used to represent analysis result


MAY_ESCAPE_METHOD

static final Object MAY_ESCAPE_METHOD
Static object used to represent analysis result

Constructor Detail

FI_EscapeSummary

FI_EscapeSummary()
Method Detail

isThreadLocal

boolean isThreadLocal(Register r)
Returns true iff ANY object pointed to by symbolic register r MUST be thread local


isMethodLocal

boolean isMethodLocal(Register r)
Returns true iff ANY object pointed to by symbolic register r MUST be method local


setThreadLocal

void setThreadLocal(Register r,
                    boolean b)
record the fact that ALL object pointed to by symbolic register r MUST (or may) escape this thread


setMethodLocal

void setMethodLocal(Register r,
                    boolean b)
Record the fact that ALL object pointed to by symbolic register r MUST (or may) escape this method