blob: 1b3e9829aeb882d62e62f37afb025ef5b804a4f9 [file] [log] [blame]
// Copyright (c) 2019, 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.ir.optimize.info;
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexEncodedField;
import com.android.tools.r8.graph.DexEncodedMethod;
import com.android.tools.r8.graph.DexEncodedMethod.ClassInlinerEligibility;
import com.android.tools.r8.graph.DexString;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement;
import com.android.tools.r8.ir.analysis.type.TypeLatticeElement;
import com.android.tools.r8.ir.analysis.value.AbstractValue;
import com.android.tools.r8.ir.optimize.Inliner.ConstraintWithTarget;
import com.android.tools.r8.ir.optimize.info.initializer.InitializerInfo;
import java.util.BitSet;
import java.util.Set;
public abstract class OptimizationFeedbackIgnore extends OptimizationFeedback {
private static final OptimizationFeedbackIgnore INSTANCE = new OptimizationFeedbackIgnore() {};
protected OptimizationFeedbackIgnore() {}
public static OptimizationFeedbackIgnore getInstance() {
return INSTANCE;
}
// FIELD OPTIMIZATION INFO:
@Override
public void markFieldCannotBeKept(DexEncodedField field) {}
@Override
public void markFieldAsPropagated(DexEncodedField field) {}
@Override
public void markFieldHasDynamicLowerBoundType(
DexEncodedField field, ClassTypeLatticeElement type) {}
@Override
public void markFieldHasDynamicUpperBoundType(DexEncodedField field, TypeLatticeElement type) {}
@Override
public void markFieldBitsRead(DexEncodedField field, int bitsRead) {}
@Override
public void recordFieldHasAbstractValue(DexEncodedField field, AbstractValue abstractValue) {}
// METHOD OPTIMIZATION INFO:
@Override
public void markForceInline(DexEncodedMethod method) {}
@Override
public void markInlinedIntoSingleCallSite(DexEncodedMethod method) {}
@Override
public void markMethodCannotBeKept(DexEncodedMethod method) {}
@Override
public void methodInitializesClassesOnNormalExit(
DexEncodedMethod method, Set<DexType> initializedClasses) {}
@Override
public void methodReturnsArgument(DexEncodedMethod method, int argument) {}
@Override
public void methodReturnsConstantNumber(
DexEncodedMethod method, AppView<?> appView, long value) {}
@Override
public void methodReturnsConstantString(
DexEncodedMethod method, AppView<?> appView, DexString value) {}
@Override
public void methodReturnsObjectWithUpperBoundType(
DexEncodedMethod method, AppView<?> appView, TypeLatticeElement type) {}
@Override
public void methodReturnsObjectWithLowerBoundType(
DexEncodedMethod method, ClassTypeLatticeElement type) {}
@Override
public void methodMayNotHaveSideEffects(DexEncodedMethod method) {}
@Override
public void methodReturnValueOnlyDependsOnArguments(DexEncodedMethod method) {}
@Override
public void methodNeverReturnsNull(DexEncodedMethod method) {}
@Override
public void methodNeverReturnsNormally(DexEncodedMethod method) {}
@Override
public void markAsPropagated(DexEncodedMethod method) {}
@Override
public void markProcessed(DexEncodedMethod method, ConstraintWithTarget state) {}
@Override
public void markUseIdentifierNameString(DexEncodedMethod method) {}
@Override
public void markCheckNullReceiverBeforeAnySideEffect(DexEncodedMethod method, boolean mark) {}
@Override
public void markTriggerClassInitBeforeAnySideEffect(DexEncodedMethod method, boolean mark) {}
@Override
public void setClassInlinerEligibility(
DexEncodedMethod method, ClassInlinerEligibility eligibility) {
}
@Override
public void setInitializerInfo(DexEncodedMethod method, InitializerInfo info) {}
@Override
public void setInitializerEnablingJavaAssertions(DexEncodedMethod method) {
}
@Override
public void setParameterUsages(DexEncodedMethod method, ParameterUsagesInfo parameterUsagesInfo) {
}
@Override
public void setNonNullParamOrThrow(DexEncodedMethod method, BitSet facts) {
}
@Override
public void setNonNullParamOnNormalExits(DexEncodedMethod method, BitSet facts) {
}
@Override
public void classInitializerMayBePostponed(DexEncodedMethod method) {}
}