/** * Returns the total size of the parameters. */ public static int getParameterSize(Method method) { MethodOptimizationInfo info = MethodOptimizationInfo.getMethodOptimizationInfo(method); return info != null ? info.getParameterSize() : 0; }
private static void setAccessesPrivateCode(Method method) { MethodOptimizationInfo info = MethodOptimizationInfo.getMethodOptimizationInfo(method); if (info != null) { info.setAccessesPrivateCode(); } }
/** * Returns whether the given parameter is being used. */ public static boolean isParameterUsed(Method method, int variableIndex) { MethodOptimizationInfo info = MethodOptimizationInfo.getMethodOptimizationInfo(method); return info == null || info.isParameterUsed(variableIndex); }
public static boolean catchesExceptions(Method method) { MethodOptimizationInfo info = MethodOptimizationInfo.getMethodOptimizationInfo(method); return info == null || info.catchesExceptions(); } }
private static void setAccessesPackageCode(Method method) { MethodOptimizationInfo info = MethodOptimizationInfo.getMethodOptimizationInfo(method); if (info != null) { info.setAccessesPackageCode(); } }
public static boolean hasSideEffects(Method method) { MethodOptimizationInfo info = MethodOptimizationInfo.getMethodOptimizationInfo(method); return info == null || info.hasSideEffects(); } }
private static void generalizeMethodParameterValue(Method method, int parameterIndex, Value value) { MethodOptimizationInfo info = MethodOptimizationInfo.getMethodOptimizationInfo(method); if (info != null) { info.generalizeParameter(parameterIndex, value); } }
private static void generalizeMethodReturnValue(Method method, Value value) { MethodOptimizationInfo info = MethodOptimizationInfo.getMethodOptimizationInfo(method); if (info != null) { info.generalizeReturnValue(value); } }
private static void setBranchesBackward(Method method) { MethodOptimizationInfo info = MethodOptimizationInfo.getMethodOptimizationInfo(method); if (info != null) { info.setBranchesBackward(); } }
private static void markCanNotBeMadePrivate(Method method) { MethodOptimizationInfo info = MethodOptimizationInfo.getMethodOptimizationInfo(method); if (info != null) { info.setCanNotBeMadePrivate(); } }
/** * Returns whether the given method can be made private. */ public static boolean canBeMadePrivate(Method method) { MethodOptimizationInfo info = MethodOptimizationInfo.getMethodOptimizationInfo(method); return info != null && info.canBeMadePrivate(); } }
public static boolean hasNoParameterEscaping(Method method) { return MethodOptimizationInfo.getMethodOptimizationInfo(method).hasNoEscapingParameters(); } }
/** * Returns whether the given method calls the invokedynamic instruction. */ public static boolean invokesDynamically(Method method) { return MethodOptimizationInfo.getMethodOptimizationInfo(method).invokesDynamically(); } }
/** * Returns whether the given method accesses protected class members. */ public static boolean accessesProtectedCode(Method method) { return MethodOptimizationInfo.getMethodOptimizationInfo(method).accessesProtectedCode(); } }
/** * Returns whether the given parameter is escaped from the given method. */ public static boolean hasParameterEscaped(Method method, int parameterIndex) { return MethodOptimizationInfo.getMethodOptimizationInfo(method).hasParameterEscaped(parameterIndex); }
public static boolean returnsWithNonEmptyStack(Method method) { return MethodOptimizationInfo.getMethodOptimizationInfo(method).returnsWithNonEmptyStack(); } }
/** * Returns which parameters are returned from the given method. */ public static long getReturnedParameters(Method method) { return MethodOptimizationInfo.getMethodOptimizationInfo(method).getReturnedParameters(); }
/** * Returns whether the given parameter is modified by the given method. */ public static boolean isParameterModified(Method method, int parameterIndex) { return MethodOptimizationInfo.getMethodOptimizationInfo(method).isParameterModified(parameterIndex); }
public void visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod) { MemberVisitor visitor = MethodOptimizationInfo.getMethodOptimizationInfo(programMethod) instanceof ProgramMethodOptimizationInfo ? memberVisitor : otherMemberVisitor; if (visitor != null) { visitor.visitProgramMethod(programClass, programMethod); } } }
private static void markNoSideEffects(Method method) { MethodOptimizationInfo info = MethodOptimizationInfo.getMethodOptimizationInfo(method); if (info != null) { info.setNoSideEffects(); } else { MethodLinker.lastMember(method).setVisitorInfo(KEPT_BUT_NO_SIDE_EFFECTS); } }