| java.lang.Object EDU.purdue.cs.bloat.inline.Specialize
Specialize | public class Specialize implements Opcode(Code) | | Performs call site specialization for virtual method invocations. At each
virtual method invocation, the call graph is consulted to determine which
methods the call site could resolve to. The virtual call site is converted
into a "switch" on the method receiver. Each "case" corresponds to a possible
type that the receiver may take on. Inside the "case" branch, the receiver is
cast to the expected type. Finally, a static version of the virtual method is
called. In the "default" case, the virtual method is invoked.
|
Method Summary | |
public boolean | specialize(MethodEditor method) Examines the virtual method call sites in a method and specializes them
based on the resolves-to information found in the call graph. |
DB_STATIC | public static boolean DB_STATIC(Code) | | |
DEBUG | public static boolean DEBUG(Code) | | |
MAX_MORPH | public static int MAX_MORPH(Code) | | Maximum number of specializations per call site
|
MONO | public static boolean MONO(Code) | | Do we specialize monomorphic call sites? By default, false.
|
NOSTATIC | public static boolean NOSTATIC(Code) | | |
PRINTCODE | public static boolean PRINTCODE(Code) | | |
STATS | public static boolean STATS(Code) | | |
USE_PREEXISTS | public static boolean USE_PREEXISTS(Code) | | |
specialize | public boolean specialize(MethodEditor method)(Code) | | Examines the virtual method call sites in a method and specializes them
based on the resolves-to information found in the call graph.
true, if the method was modified (that is, itrequires committing) |
|
|