| // Copyright (c) 2018, the R8 project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| package com.android.tools.r8.graph; |
| |
| import com.android.tools.r8.graph.DexEncodedMethod.ClassInlinerEligibility; |
| import com.android.tools.r8.graph.DexEncodedMethod.TrivialInitializer; |
| import com.android.tools.r8.graph.ParameterUsagesInfo.ParameterUsage; |
| import com.android.tools.r8.ir.analysis.type.TypeLatticeElement; |
| import java.util.BitSet; |
| import java.util.Set; |
| |
| public interface MethodOptimizationInfo { |
| |
| enum InlinePreference { |
| NeverInline, |
| ForceInline, |
| Default |
| } |
| |
| boolean classInitializerMayBePostponed(); |
| |
| TypeLatticeElement getDynamicReturnType(); |
| |
| ParameterUsage getParameterUsages(int parameter); |
| |
| BitSet getNonNullParamOrThrow(); |
| |
| BitSet getNonNullParamOnNormalExits(); |
| |
| boolean hasBeenInlinedIntoSingleCallSite(); |
| |
| boolean isReachabilitySensitive(); |
| |
| boolean returnsArgument(); |
| |
| int getReturnedArgument(); |
| |
| boolean neverReturnsNull(); |
| |
| boolean neverReturnsNormally(); |
| |
| boolean returnsConstant(); |
| |
| boolean returnsConstantNumber(); |
| |
| boolean returnsConstantString(); |
| |
| ClassInlinerEligibility getClassInlinerEligibility(); |
| |
| Set<DexType> getInitializedClassesOnNormalExit(); |
| |
| TrivialInitializer getTrivialInitializerInfo(); |
| |
| boolean isInitializerEnablingJavaAssertions(); |
| |
| long getReturnedConstantNumber(); |
| |
| DexString getReturnedConstantString(); |
| |
| boolean forceInline(); |
| |
| boolean neverInline(); |
| |
| boolean useIdentifierNameString(); |
| |
| boolean checksNullReceiverBeforeAnySideEffect(); |
| |
| boolean triggersClassInitBeforeAnySideEffect(); |
| |
| boolean mayHaveSideEffects(); |
| |
| boolean returnValueOnlyDependsOnArguments(); |
| |
| boolean returnValueHasBeenPropagated(); |
| |
| UpdatableMethodOptimizationInfo mutableCopy(); |
| } |