Rename parameter states to value state
Bug: b/296030319
Change-Id: I117bb23c8611deb243b76d45f02f3148e5800dc5
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/BottomFieldState.java b/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/BottomFieldState.java
index efb1342..f71be76 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/BottomFieldState.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/BottomFieldState.java
@@ -8,8 +8,8 @@
import com.android.tools.r8.graph.ProgramField;
import com.android.tools.r8.ir.analysis.value.AbstractValue;
import com.android.tools.r8.ir.analysis.value.AbstractValueFactory;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteParameterState;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.NonEmptyParameterState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteValueState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.NonEmptyValueState;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.Action;
@@ -53,12 +53,12 @@
public FieldState mutableJoin(
AppView<AppInfoWithLiveness> appView,
ProgramField field,
- NonEmptyParameterState parameterState,
+ NonEmptyValueState parameterState,
Action onChangedAction) {
if (parameterState.isUnknown()) {
return unknown();
}
- ConcreteParameterState concreteParameterState = parameterState.asConcrete();
+ ConcreteValueState concreteParameterState = parameterState.asConcrete();
if (field.getType().isArrayType()) {
return ConcreteArrayTypeFieldState.create(
concreteParameterState.getAbstractValue(appView), concreteParameterState.copyInFlow());
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/ConcreteArrayTypeFieldState.java b/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/ConcreteArrayTypeFieldState.java
index 2f669dc..d8b4587 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/ConcreteArrayTypeFieldState.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/ConcreteArrayTypeFieldState.java
@@ -7,7 +7,7 @@
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.ProgramField;
import com.android.tools.r8.ir.analysis.value.AbstractValue;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteReferenceTypeParameterState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteReferenceTypeValueState;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.InFlow;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.Action;
@@ -94,7 +94,7 @@
public FieldState mutableJoin(
AppView<AppInfoWithLiveness> appView,
ProgramField field,
- ConcreteReferenceTypeParameterState parameterState,
+ ConcreteReferenceTypeValueState parameterState,
Action onChangedAction) {
boolean abstractValueChanged =
mutableJoinAbstractValue(appView, field, parameterState.getAbstractValue(appView));
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/ConcreteClassTypeFieldState.java b/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/ConcreteClassTypeFieldState.java
index 9b382ba..4217f4c 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/ConcreteClassTypeFieldState.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/ConcreteClassTypeFieldState.java
@@ -8,7 +8,7 @@
import com.android.tools.r8.graph.ProgramField;
import com.android.tools.r8.ir.analysis.type.DynamicType;
import com.android.tools.r8.ir.analysis.value.AbstractValue;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteReferenceTypeParameterState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteReferenceTypeValueState;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.InFlow;
import com.android.tools.r8.optimize.argumentpropagation.utils.WideningUtils;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
@@ -117,7 +117,7 @@
public FieldState mutableJoin(
AppView<AppInfoWithLiveness> appView,
ProgramField field,
- ConcreteReferenceTypeParameterState parameterState,
+ ConcreteReferenceTypeValueState parameterState,
Action onChangedAction) {
boolean abstractValueChanged =
mutableJoinAbstractValue(appView, field, parameterState.getAbstractValue(appView));
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/ConcreteFieldState.java b/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/ConcreteFieldState.java
index 94e0afd..1605e9f 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/ConcreteFieldState.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/ConcreteFieldState.java
@@ -7,9 +7,9 @@
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.ProgramField;
import com.android.tools.r8.ir.analysis.value.AbstractValue;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteParameterState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteValueState;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.InFlow;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.NonEmptyParameterState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.NonEmptyValueState;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.Action;
import java.util.Collections;
@@ -102,12 +102,12 @@
public FieldState mutableJoin(
AppView<AppInfoWithLiveness> appView,
ProgramField field,
- NonEmptyParameterState parameterState,
+ NonEmptyValueState parameterState,
Action onChangedAction) {
if (parameterState.isUnknown()) {
return unknown();
}
- ConcreteParameterState concreteParameterState = parameterState.asConcrete();
+ ConcreteValueState concreteParameterState = parameterState.asConcrete();
if (isReference()) {
assert concreteParameterState.isReferenceParameter();
return asReference()
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/ConcretePrimitiveTypeFieldState.java b/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/ConcretePrimitiveTypeFieldState.java
index 875a5eb..68e767e 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/ConcretePrimitiveTypeFieldState.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/ConcretePrimitiveTypeFieldState.java
@@ -7,7 +7,7 @@
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.ProgramField;
import com.android.tools.r8.ir.analysis.value.AbstractValue;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcretePrimitiveTypeParameterState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcretePrimitiveTypeValueState;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.InFlow;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.Action;
@@ -88,7 +88,7 @@
public FieldState mutableJoin(
AppView<AppInfoWithLiveness> appView,
ProgramField field,
- ConcretePrimitiveTypeParameterState parameterState,
+ ConcretePrimitiveTypeValueState parameterState,
Action onChangedAction) {
assert field.getType().isPrimitiveType();
boolean abstractValueChanged =
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/ConcreteReferenceTypeFieldState.java b/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/ConcreteReferenceTypeFieldState.java
index fad2b58..f7c99bd 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/ConcreteReferenceTypeFieldState.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/ConcreteReferenceTypeFieldState.java
@@ -8,7 +8,7 @@
import com.android.tools.r8.graph.ProgramField;
import com.android.tools.r8.ir.analysis.type.DynamicType;
import com.android.tools.r8.ir.analysis.value.AbstractValue;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteReferenceTypeParameterState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteReferenceTypeValueState;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.InFlow;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.Action;
@@ -46,6 +46,6 @@
public abstract FieldState mutableJoin(
AppView<AppInfoWithLiveness> appView,
ProgramField field,
- ConcreteReferenceTypeParameterState parameterState,
+ ConcreteReferenceTypeValueState parameterState,
Action onChangedAction);
}
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/FieldState.java b/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/FieldState.java
index 18fb4ba..7fee282 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/FieldState.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/FieldState.java
@@ -8,7 +8,7 @@
import com.android.tools.r8.graph.ProgramField;
import com.android.tools.r8.ir.analysis.value.AbstractValue;
import com.android.tools.r8.ir.analysis.value.AbstractValueFactory;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.NonEmptyParameterState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.NonEmptyValueState;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.Action;
@@ -94,6 +94,6 @@
public abstract FieldState mutableJoin(
AppView<AppInfoWithLiveness> appView,
ProgramField field,
- NonEmptyParameterState parameterState,
+ NonEmptyValueState parameterState,
Action onChangedAction);
}
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/UnknownFieldState.java b/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/UnknownFieldState.java
index c480bec..b4f2743 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/UnknownFieldState.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/state/UnknownFieldState.java
@@ -7,7 +7,7 @@
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.ProgramField;
import com.android.tools.r8.ir.analysis.value.AbstractValue;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.NonEmptyParameterState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.NonEmptyValueState;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.Action;
import java.util.function.Function;
@@ -51,7 +51,7 @@
public FieldState mutableJoin(
AppView<AppInfoWithLiveness> appView,
ProgramField field,
- NonEmptyParameterState parameterState,
+ NonEmptyValueState parameterState,
Action onChangedAction) {
return this;
}
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/info/ConcreteCallSiteOptimizationInfo.java b/src/main/java/com/android/tools/r8/ir/optimize/info/ConcreteCallSiteOptimizationInfo.java
index 3314582..0e24e5d 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/info/ConcreteCallSiteOptimizationInfo.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/info/ConcreteCallSiteOptimizationInfo.java
@@ -18,8 +18,8 @@
import com.android.tools.r8.ir.analysis.value.AbstractValue;
import com.android.tools.r8.ir.analysis.value.UnknownValue;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteMonomorphicMethodState;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteParameterState;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.ParameterState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteValueState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.ValueState;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap;
import it.unimi.dsi.fastutil.ints.Int2ReferenceMap;
@@ -141,12 +141,12 @@
new ConcreteCallSiteOptimizationInfo(methodState.size());
boolean isTop = true;
for (int argumentIndex = 0; argumentIndex < methodState.size(); argumentIndex++) {
- ParameterState parameterState = methodState.getParameterState(argumentIndex);
+ ValueState parameterState = methodState.getParameterState(argumentIndex);
if (parameterState.isUnknown()) {
continue;
}
- ConcreteParameterState concreteParameterState = parameterState.asConcrete();
+ ConcreteValueState concreteParameterState = parameterState.asConcrete();
// Constant propagation.
AbstractValue abstractValue = concreteParameterState.getAbstractValue(appView);
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorCodeScanner.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorCodeScanner.java
index 0dc55d3..0eae64d 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorCodeScanner.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorCodeScanner.java
@@ -27,21 +27,21 @@
import com.android.tools.r8.ir.code.InvokeMethod;
import com.android.tools.r8.ir.code.InvokeMethodWithReceiver;
import com.android.tools.r8.ir.code.Value;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteArrayTypeParameterState;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteClassTypeParameterState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteArrayTypeValueState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteClassTypeValueState;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteMonomorphicMethodState;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteMonomorphicMethodStateOrBottom;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteMonomorphicMethodStateOrUnknown;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcretePolymorphicMethodState;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcretePolymorphicMethodStateOrBottom;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcretePrimitiveTypeParameterState;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteReceiverParameterState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcretePrimitiveTypeValueState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteReceiverValueState;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.MethodParameter;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.MethodParameterFactory;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.MethodState;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.MethodStateCollectionByReference;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.ParameterState;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.UnknownMethodState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.ValueState;
import com.android.tools.r8.optimize.argumentpropagation.reprocessingcriteria.ArgumentPropagatorReprocessingCriteriaCollection;
import com.android.tools.r8.optimize.argumentpropagation.reprocessingcriteria.MethodReprocessingCriteria;
import com.android.tools.r8.optimize.argumentpropagation.reprocessingcriteria.ParameterReprocessingCriteria;
@@ -129,7 +129,7 @@
methodState = methodState.asPolymorphic().getMethodStateForBounds(DynamicType.unknown());
}
if (methodState.isMonomorphic()) {
- ParameterState parameterState =
+ ValueState parameterState =
methodState.asMonomorphic().getParameterState(methodParameter.getIndex());
return parameterState.isUnknown();
}
@@ -420,7 +420,7 @@
ProgramMethod context,
ConcreteMonomorphicMethodStateOrBottom existingMethodState,
DynamicType dynamicReceiverType) {
- List<ParameterState> parameterStates = new ArrayList<>(invoke.arguments().size());
+ List<ValueState> parameterStates = new ArrayList<>(invoke.arguments().size());
MethodReprocessingCriteria methodReprocessingCriteria =
singleTarget != null
@@ -461,7 +461,7 @@
// track the dynamic type for receivers.
// TODO(b/190154391): Consider validating the above hypothesis by using
// computeParameterStateForNonReceiver() for receivers.
- private ParameterState computeParameterStateForReceiver(
+ private ValueState computeParameterStateForReceiver(
ProgramMethod resolvedMethod,
DynamicType dynamicReceiverType,
ConcreteMonomorphicMethodStateOrBottom existingMethodState,
@@ -469,24 +469,24 @@
// Don't compute a state for this parameter if the stored state is already unknown.
if (existingMethodState.isMonomorphic()
&& existingMethodState.asMonomorphic().getParameterState(0).isUnknown()) {
- return ParameterState.unknown();
+ return ValueState.unknown();
}
// For receivers we only track the dynamic type. Therefore, if there is no need to track the
// dynamic type of the receiver of the targeted method, then just return unknown.
if (!parameterReprocessingCriteria.shouldReprocessDueToDynamicType()) {
- return ParameterState.unknown();
+ return ValueState.unknown();
}
DynamicType widenedDynamicReceiverType =
WideningUtils.widenDynamicReceiverType(appView, resolvedMethod, dynamicReceiverType);
return widenedDynamicReceiverType.isUnknown()
- ? ParameterState.unknown()
- : new ConcreteReceiverParameterState(dynamicReceiverType);
+ ? ValueState.unknown()
+ : new ConcreteReceiverValueState(dynamicReceiverType);
}
@SuppressWarnings("UnusedVariable")
- private ParameterState computeParameterStateForNonReceiver(
+ private ValueState computeParameterStateForNonReceiver(
InvokeMethod invoke,
ProgramMethod singleTarget,
int argumentIndex,
@@ -494,7 +494,7 @@
AbstractValueSupplier abstractValueSupplier,
ProgramMethod context,
ConcreteMonomorphicMethodStateOrBottom existingMethodState) {
- ParameterState modeledState =
+ ValueState modeledState =
modeling.modelParameterStateForArgumentToFunction(
invoke, singleTarget, argumentIndex, argument, context);
if (modeledState != null) {
@@ -504,7 +504,7 @@
// Don't compute a state for this parameter if the stored state is already unknown.
if (existingMethodState.isMonomorphic()
&& existingMethodState.asMonomorphic().getParameterState(argumentIndex).isUnknown()) {
- return ParameterState.unknown();
+ return ValueState.unknown();
}
Value argumentRoot = argument.getAliasedValue(aliasedValueConfiguration);
@@ -522,15 +522,15 @@
methodParameterFactory.create(
context, argumentRoot.getDefinition().asArgument().getIndex());
if (isMethodParameterAlreadyUnknown(forwardedParameter, context)) {
- return ParameterState.unknown();
+ return ValueState.unknown();
}
if (parameterTypeElement.isClassType()) {
- return new ConcreteClassTypeParameterState(forwardedParameter);
+ return new ConcreteClassTypeValueState(forwardedParameter);
} else if (parameterTypeElement.isArrayType()) {
- return new ConcreteArrayTypeParameterState(forwardedParameter);
+ return new ConcreteArrayTypeValueState(forwardedParameter);
} else {
assert parameterTypeElement.isPrimitiveType();
- return new ConcretePrimitiveTypeParameterState(forwardedParameter);
+ return new ConcretePrimitiveTypeValueState(forwardedParameter);
}
}
@@ -538,8 +538,8 @@
if (parameterTypeElement.isArrayType()) {
Nullability nullability = argument.getType().nullability();
return nullability.isMaybeNull()
- ? ParameterState.unknown()
- : new ConcreteArrayTypeParameterState(nullability);
+ ? ValueState.unknown()
+ : new ConcreteArrayTypeValueState(nullability);
}
AbstractValue abstractValue = abstractValueSupplier.getAbstractValue(argument);
@@ -551,16 +551,16 @@
DynamicType widenedDynamicType =
WideningUtils.widenDynamicNonReceiverType(appView, dynamicType, parameterType);
return abstractValue.isUnknown() && widenedDynamicType.isUnknown()
- ? ParameterState.unknown()
- : new ConcreteClassTypeParameterState(abstractValue, widenedDynamicType);
+ ? ValueState.unknown()
+ : new ConcreteClassTypeValueState(abstractValue, widenedDynamicType);
}
// For primitive types, we only track the abstract value, thus if the abstract value is unknown,
// we use UnknownParameterState.
assert parameterTypeElement.isPrimitiveType();
return abstractValue.isUnknown()
- ? ParameterState.unknown()
- : new ConcretePrimitiveTypeParameterState(abstractValue);
+ ? ValueState.unknown()
+ : new ConcretePrimitiveTypeValueState(abstractValue);
}
@SuppressWarnings("ReferenceEquality")
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorCodeScannerModeling.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorCodeScannerModeling.java
index 7931180..3e5e433 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorCodeScannerModeling.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorCodeScannerModeling.java
@@ -7,7 +7,7 @@
import com.android.tools.r8.graph.ProgramMethod;
import com.android.tools.r8.ir.code.InvokeMethod;
import com.android.tools.r8.ir.code.Value;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.ParameterState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.ValueState;
import com.android.tools.r8.optimize.compose.ArgumentPropagatorComposeModeling;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
@@ -22,7 +22,7 @@
: null;
}
- ParameterState modelParameterStateForArgumentToFunction(
+ ValueState modelParameterStateForArgumentToFunction(
InvokeMethod invoke,
ProgramMethod singleTarget,
int argumentIndex,
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorOptimizationInfoPopulator.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorOptimizationInfoPopulator.java
index 6b05437..fbe7a42 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorOptimizationInfoPopulator.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorOptimizationInfoPopulator.java
@@ -18,14 +18,14 @@
import com.android.tools.r8.ir.optimize.info.ConcreteCallSiteOptimizationInfo;
import com.android.tools.r8.ir.optimize.info.MethodOptimizationInfo;
import com.android.tools.r8.ir.optimize.info.OptimizationFeedback;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteClassTypeParameterState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteClassTypeValueState;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteMethodState;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteMonomorphicMethodState;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteParameterState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteValueState;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.MethodState;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.MethodStateCollectionByReference;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.ParameterState;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.StateCloner;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.ValueState;
import com.android.tools.r8.optimize.argumentpropagation.utils.WideningUtils;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.InternalOptions;
@@ -158,13 +158,13 @@
}
// Verify that there is no parameter with bottom info.
- assert monomorphicMethodState.getParameterStates().stream().noneMatch(ParameterState::isBottom);
+ assert monomorphicMethodState.getParameterStates().stream().noneMatch(ValueState::isBottom);
// Verify that all in-parameter information has been pruned by the InParameterFlowPropagator.
assert monomorphicMethodState.getParameterStates().stream()
- .filter(ParameterState::isConcrete)
- .map(ParameterState::asConcrete)
- .noneMatch(ConcreteParameterState::hasInFlow);
+ .filter(ValueState::isConcrete)
+ .map(ValueState::asConcrete)
+ .noneMatch(ConcreteValueState::hasInFlow);
if (monomorphicMethodState.size() > 0) {
getSimpleFeedback()
@@ -182,7 +182,7 @@
// arguments.
MethodOptimizationInfo optimizationInfo = method.getOptimizationInfo();
if (optimizationInfo.returnsArgument()) {
- ParameterState returnedArgumentState =
+ ValueState returnedArgumentState =
monomorphicMethodState.getParameterState(optimizationInfo.getReturnedArgument());
OptimizationFeedback.getSimple()
.methodReturnsAbstractValue(
@@ -199,7 +199,7 @@
int numberOfArguments = method.getDefinition().getNumberOfArguments();
boolean isReturnValueUsed;
- List<ParameterState> parameterStates;
+ List<ValueState> parameterStates;
if (methodState.isMonomorphic()) {
ConcreteMonomorphicMethodState monomorphicMethodState = methodState.asMonomorphic();
isReturnValueUsed = monomorphicMethodState.isReturnValueUsed();
@@ -207,10 +207,9 @@
} else {
assert methodState.isUnknown();
isReturnValueUsed = true;
- parameterStates =
- ListUtils.newInitializedArrayList(numberOfArguments, ParameterState.unknown());
+ parameterStates = ListUtils.newInitializedArrayList(numberOfArguments, ValueState.unknown());
}
- List<ParameterState> narrowedParameterStates =
+ List<ValueState> narrowedParameterStates =
ListUtils.mapOrElse(
parameterStates,
(argumentIndex, parameterState) -> {
@@ -221,7 +220,7 @@
if (!argumentType.isAlwaysNull(appView)) {
return parameterState;
}
- return new ConcreteClassTypeParameterState(
+ return new ConcreteClassTypeValueState(
appView.abstractValueFactory().createNullValue(argumentType),
DynamicType.definitelyNull());
},
@@ -236,8 +235,7 @@
for (int argumentIndex = 0;
argumentIndex < methodState.getParameterStates().size();
argumentIndex++) {
- ConcreteParameterState parameterState =
- methodState.getParameterState(argumentIndex).asConcrete();
+ ConcreteValueState parameterState = methodState.getParameterState(argumentIndex).asConcrete();
if (parameterState == null || !parameterState.isClassParameter()) {
continue;
}
@@ -248,7 +246,7 @@
argumentIndex,
parameterState.mutableJoin(
appView,
- new ConcreteClassTypeParameterState(AbstractValue.bottom(), DynamicType.unknown()),
+ new ConcreteClassTypeValueState(AbstractValue.bottom(), DynamicType.unknown()),
staticType,
StateCloner.getIdentity()));
}
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomArrayTypeParameterState.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomArrayTypeValueState.java
similarity index 74%
rename from src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomArrayTypeParameterState.java
rename to src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomArrayTypeValueState.java
index 6eca890..bf1ba8b 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomArrayTypeParameterState.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomArrayTypeValueState.java
@@ -12,20 +12,20 @@
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.Action;
-public class BottomArrayTypeParameterState extends BottomParameterState {
+public class BottomArrayTypeValueState extends BottomValueState {
- private static final BottomArrayTypeParameterState INSTANCE = new BottomArrayTypeParameterState();
+ private static final BottomArrayTypeValueState INSTANCE = new BottomArrayTypeValueState();
- private BottomArrayTypeParameterState() {}
+ private BottomArrayTypeValueState() {}
- public static BottomArrayTypeParameterState get() {
+ public static BottomArrayTypeValueState get() {
return INSTANCE;
}
@Override
- public ParameterState mutableJoin(
+ public ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
- ParameterState parameterState,
+ ValueState parameterState,
DexType parameterType,
StateCloner cloner,
Action onChangedAction) {
@@ -37,7 +37,7 @@
}
assert parameterState.isConcrete();
assert parameterState.asConcrete().isReferenceParameter();
- ConcreteReferenceTypeParameterState concreteParameterState =
+ ConcreteReferenceTypeValueState concreteParameterState =
parameterState.asConcrete().asReferenceParameter();
if (concreteParameterState.isArrayParameter()) {
return cloner.mutableCopy(concreteParameterState);
@@ -46,11 +46,11 @@
if (nullability.isMaybeNull()) {
return unknown();
}
- return new ConcreteArrayTypeParameterState(nullability, concreteParameterState.copyInFlow());
+ return new ConcreteArrayTypeValueState(nullability, concreteParameterState.copyInFlow());
}
@Override
- public ParameterState mutableJoin(
+ public ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
ConcreteFieldState fieldState,
DexType parameterType,
@@ -62,7 +62,7 @@
if (nullability.isUnknown()) {
return unknown();
}
- return new ConcreteArrayTypeParameterState(nullability, classFieldState.copyInFlow());
+ return new ConcreteArrayTypeValueState(nullability, classFieldState.copyInFlow());
}
return unknown();
}
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomClassTypeParameterState.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomClassTypeValueState.java
similarity index 81%
rename from src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomClassTypeParameterState.java
rename to src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomClassTypeValueState.java
index a0e8525..df28567 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomClassTypeParameterState.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomClassTypeValueState.java
@@ -14,20 +14,20 @@
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.Action;
-public class BottomClassTypeParameterState extends BottomParameterState {
+public class BottomClassTypeValueState extends BottomValueState {
- private static final BottomClassTypeParameterState INSTANCE = new BottomClassTypeParameterState();
+ private static final BottomClassTypeValueState INSTANCE = new BottomClassTypeValueState();
- private BottomClassTypeParameterState() {}
+ private BottomClassTypeValueState() {}
- public static BottomClassTypeParameterState get() {
+ public static BottomClassTypeValueState get() {
return INSTANCE;
}
@Override
- public ParameterState mutableJoin(
+ public ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
- ParameterState parameterState,
+ ValueState parameterState,
DexType parameterType,
StateCloner cloner,
Action onChangedAction) {
@@ -39,7 +39,7 @@
}
assert parameterState.isConcrete();
assert parameterState.asConcrete().isReferenceParameter();
- ConcreteReferenceTypeParameterState concreteParameterState =
+ ConcreteReferenceTypeValueState concreteParameterState =
parameterState.asConcrete().asReferenceParameter();
AbstractValue abstractValue = concreteParameterState.getAbstractValue(appView);
DynamicType dynamicType = concreteParameterState.getDynamicType();
@@ -50,12 +50,12 @@
}
return abstractValue.isUnknown() && widenedDynamicType.isUnknown()
? unknown()
- : new ConcreteClassTypeParameterState(
+ : new ConcreteClassTypeValueState(
abstractValue, widenedDynamicType, concreteParameterState.copyInFlow());
}
@Override
- public ParameterState mutableJoin(
+ public ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
ConcreteFieldState fieldState,
DexType parameterType,
@@ -63,7 +63,7 @@
ConcreteReferenceTypeFieldState referenceFieldState = fieldState.asReference();
AbstractValue abstractValue = referenceFieldState.getAbstractValue();
DynamicType dynamicType = referenceFieldState.getDynamicType();
- return new ConcreteClassTypeParameterState(
+ return new ConcreteClassTypeValueState(
abstractValue, dynamicType, referenceFieldState.copyInFlow());
}
}
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomPrimitiveTypeParameterState.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomPrimitiveTypeValueState.java
similarity index 73%
rename from src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomPrimitiveTypeParameterState.java
rename to src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomPrimitiveTypeValueState.java
index 308163a..e1da2ea 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomPrimitiveTypeParameterState.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomPrimitiveTypeValueState.java
@@ -10,21 +10,20 @@
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.Action;
-public class BottomPrimitiveTypeParameterState extends BottomParameterState {
+public class BottomPrimitiveTypeValueState extends BottomValueState {
- private static final BottomPrimitiveTypeParameterState INSTANCE =
- new BottomPrimitiveTypeParameterState();
+ private static final BottomPrimitiveTypeValueState INSTANCE = new BottomPrimitiveTypeValueState();
- private BottomPrimitiveTypeParameterState() {}
+ private BottomPrimitiveTypeValueState() {}
- public static BottomPrimitiveTypeParameterState get() {
+ public static BottomPrimitiveTypeValueState get() {
return INSTANCE;
}
@Override
- public ParameterState mutableJoin(
+ public ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
- ParameterState parameterState,
+ ValueState parameterState,
DexType parameterType,
StateCloner cloner,
Action onChangedAction) {
@@ -41,12 +40,12 @@
}
@Override
- public ParameterState mutableJoin(
+ public ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
ConcreteFieldState fieldState,
DexType parameterType,
Action onChangedAction) {
- return new ConcretePrimitiveTypeParameterState(
+ return new ConcretePrimitiveTypeValueState(
fieldState.getAbstractValue(), fieldState.copyInFlow());
}
}
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomReceiverParameterState.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomReceiverValueState.java
similarity index 76%
rename from src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomReceiverParameterState.java
rename to src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomReceiverValueState.java
index 7ba970d..de17523 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomReceiverParameterState.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomReceiverValueState.java
@@ -13,20 +13,20 @@
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.Action;
-public class BottomReceiverParameterState extends BottomParameterState {
+public class BottomReceiverValueState extends BottomValueState {
- private static final BottomReceiverParameterState INSTANCE = new BottomReceiverParameterState();
+ private static final BottomReceiverValueState INSTANCE = new BottomReceiverValueState();
- private BottomReceiverParameterState() {}
+ private BottomReceiverValueState() {}
- public static BottomReceiverParameterState get() {
+ public static BottomReceiverValueState get() {
return INSTANCE;
}
@Override
- public ParameterState mutableJoin(
+ public ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
- ParameterState parameterState,
+ ValueState parameterState,
DexType parameterType,
StateCloner cloner,
Action onChangedAction) {
@@ -38,7 +38,7 @@
}
assert parameterState.isConcrete();
assert parameterState.asConcrete().isReferenceParameter();
- ConcreteReferenceTypeParameterState concreteParameterState =
+ ConcreteReferenceTypeValueState concreteParameterState =
parameterState.asConcrete().asReferenceParameter();
if (concreteParameterState.isReceiverParameter()) {
return cloner.mutableCopy(concreteParameterState);
@@ -47,11 +47,11 @@
if (dynamicType.isUnknown()) {
return unknown();
}
- return new ConcreteReceiverParameterState(dynamicType, concreteParameterState.copyInFlow());
+ return new ConcreteReceiverValueState(dynamicType, concreteParameterState.copyInFlow());
}
@Override
- public ParameterState mutableJoin(
+ public ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
ConcreteFieldState fieldState,
DexType parameterType,
@@ -64,7 +64,7 @@
return unknown();
}
DynamicType nonNullDynamicType = dynamicType.withNullability(Nullability.definitelyNotNull());
- return new ConcreteReceiverParameterState(nonNullDynamicType, classFieldState.copyInFlow());
+ return new ConcreteReceiverValueState(nonNullDynamicType, classFieldState.copyInFlow());
}
return unknown();
}
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomParameterState.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomValueState.java
similarity index 82%
rename from src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomParameterState.java
rename to src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomValueState.java
index a1a3908..bcd03fc 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomParameterState.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/BottomValueState.java
@@ -8,9 +8,9 @@
import com.android.tools.r8.ir.analysis.value.AbstractValue;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
-public abstract class BottomParameterState extends ParameterState {
+public abstract class BottomValueState extends ValueState {
- BottomParameterState() {}
+ BottomValueState() {}
@Override
public final AbstractValue getAbstractValue(AppView<AppInfoWithLiveness> appView) {
@@ -23,7 +23,7 @@
}
@Override
- public final ParameterState mutableCopy() {
+ public final ValueState mutableCopy() {
return this;
}
}
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteArrayTypeParameterState.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteArrayTypeValueState.java
similarity index 83%
rename from src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteArrayTypeParameterState.java
rename to src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteArrayTypeValueState.java
index b2a1d0d..6775bf4 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteArrayTypeParameterState.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteArrayTypeValueState.java
@@ -16,19 +16,19 @@
import java.util.Collections;
import java.util.Set;
-public class ConcreteArrayTypeParameterState extends ConcreteReferenceTypeParameterState {
+public class ConcreteArrayTypeValueState extends ConcreteReferenceTypeValueState {
private Nullability nullability;
- public ConcreteArrayTypeParameterState(InFlow inFlow) {
+ public ConcreteArrayTypeValueState(InFlow inFlow) {
this(Nullability.bottom(), SetUtils.newHashSet(inFlow));
}
- public ConcreteArrayTypeParameterState(Nullability nullability) {
+ public ConcreteArrayTypeValueState(Nullability nullability) {
this(nullability, Collections.emptySet());
}
- public ConcreteArrayTypeParameterState(Nullability nullability, Set<InFlow> inFlow) {
+ public ConcreteArrayTypeValueState(Nullability nullability, Set<InFlow> inFlow) {
super(inFlow);
this.nullability = nullability;
assert !isEffectivelyBottom() : "Must use BottomArrayTypeParameterState instead";
@@ -36,7 +36,7 @@
}
@Override
- public ParameterState clearInFlow() {
+ public ValueState clearInFlow() {
if (hasInFlow()) {
if (nullability.isBottom()) {
return bottomArrayTypeParameter();
@@ -76,7 +76,7 @@
}
@Override
- public ConcreteArrayTypeParameterState asArrayParameter() {
+ public ConcreteArrayTypeValueState asArrayParameter() {
return this;
}
@@ -91,14 +91,14 @@
}
@Override
- public ParameterState mutableCopy() {
- return new ConcreteArrayTypeParameterState(nullability, copyInFlow());
+ public ValueState mutableCopy() {
+ return new ConcreteArrayTypeValueState(nullability, copyInFlow());
}
@Override
- public ParameterState mutableJoin(
+ public ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
- ConcreteReferenceTypeParameterState parameterState,
+ ConcreteReferenceTypeValueState parameterState,
DexType parameterType,
Action onChangedAction) {
assert parameterType.isArrayType();
@@ -118,7 +118,7 @@
}
@Override
- public ParameterState mutableJoin(
+ public ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
ConcreteReferenceTypeFieldState fieldState,
DexType parameterType,
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteClassTypeParameterState.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteClassTypeValueState.java
similarity index 88%
rename from src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteClassTypeParameterState.java
rename to src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteClassTypeValueState.java
index 61794d5..4366388 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteClassTypeParameterState.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteClassTypeValueState.java
@@ -17,20 +17,20 @@
import java.util.Collections;
import java.util.Set;
-public class ConcreteClassTypeParameterState extends ConcreteReferenceTypeParameterState {
+public class ConcreteClassTypeValueState extends ConcreteReferenceTypeValueState {
private AbstractValue abstractValue;
private DynamicType dynamicType;
- public ConcreteClassTypeParameterState(InFlow inFlow) {
+ public ConcreteClassTypeValueState(InFlow inFlow) {
this(AbstractValue.bottom(), DynamicType.bottom(), SetUtils.newHashSet(inFlow));
}
- public ConcreteClassTypeParameterState(AbstractValue abstractValue, DynamicType dynamicType) {
+ public ConcreteClassTypeValueState(AbstractValue abstractValue, DynamicType dynamicType) {
this(abstractValue, dynamicType, Collections.emptySet());
}
- public ConcreteClassTypeParameterState(
+ public ConcreteClassTypeValueState(
AbstractValue abstractValue, DynamicType dynamicType, Set<InFlow> inFlow) {
super(inFlow);
this.abstractValue = abstractValue;
@@ -40,7 +40,7 @@
}
@Override
- public ParameterState clearInFlow() {
+ public ValueState clearInFlow() {
if (hasInFlow()) {
if (abstractValue.isBottom()) {
assert dynamicType.isBottom();
@@ -82,7 +82,7 @@
}
@Override
- public ConcreteClassTypeParameterState asClassParameter() {
+ public ConcreteClassTypeValueState asClassParameter() {
return this;
}
@@ -97,14 +97,14 @@
}
@Override
- public ParameterState mutableCopy() {
- return new ConcreteClassTypeParameterState(abstractValue, dynamicType, copyInFlow());
+ public ValueState mutableCopy() {
+ return new ConcreteClassTypeValueState(abstractValue, dynamicType, copyInFlow());
}
@Override
- public ParameterState mutableJoin(
+ public ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
- ConcreteReferenceTypeParameterState parameterState,
+ ConcreteReferenceTypeValueState parameterState,
DexType parameterType,
Action onChangedAction) {
assert parameterType.isClassType();
@@ -126,7 +126,7 @@
}
@Override
- public ParameterState mutableJoin(
+ public ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
ConcreteReferenceTypeFieldState fieldState,
DexType parameterType,
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteMonomorphicMethodState.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteMonomorphicMethodState.java
index e730d74..7f0b954 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteMonomorphicMethodState.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteMonomorphicMethodState.java
@@ -17,10 +17,10 @@
implements ConcreteMonomorphicMethodStateOrBottom, ConcreteMonomorphicMethodStateOrUnknown {
boolean isReturnValueUsed;
- List<ParameterState> parameterStates;
+ List<ValueState> parameterStates;
public ConcreteMonomorphicMethodState(
- boolean isReturnValueUsed, List<ParameterState> parameterStates) {
+ boolean isReturnValueUsed, List<ValueState> parameterStates) {
assert Streams.stream(Iterables.skip(parameterStates, 1))
.noneMatch(x -> x.isConcrete() && x.asConcrete().isReceiverParameter());
this.isReturnValueUsed = isReturnValueUsed;
@@ -29,17 +29,17 @@
}
public static ConcreteMonomorphicMethodStateOrUnknown create(
- boolean isReturnValueUsed, List<ParameterState> parameterStates) {
+ boolean isReturnValueUsed, List<ValueState> parameterStates) {
return isEffectivelyUnknown(isReturnValueUsed, parameterStates)
? unknown()
: new ConcreteMonomorphicMethodState(isReturnValueUsed, parameterStates);
}
- public ParameterState getParameterState(int index) {
+ public ValueState getParameterState(int index) {
return parameterStates.get(index);
}
- public List<ParameterState> getParameterStates() {
+ public List<ValueState> getParameterStates() {
return parameterStates;
}
@@ -48,7 +48,7 @@
}
public boolean isEffectivelyBottom() {
- return Iterables.any(parameterStates, ParameterState::isBottom);
+ return Iterables.any(parameterStates, ValueState::isBottom);
}
public boolean isEffectivelyUnknown() {
@@ -56,14 +56,14 @@
}
private static boolean isEffectivelyUnknown(
- boolean isReturnValueUsed, List<ParameterState> parameterStates) {
- return isReturnValueUsed && Iterables.all(parameterStates, ParameterState::isUnknown);
+ boolean isReturnValueUsed, List<ValueState> parameterStates) {
+ return isReturnValueUsed && Iterables.all(parameterStates, ValueState::isUnknown);
}
@Override
public ConcreteMonomorphicMethodState mutableCopy() {
- List<ParameterState> copiedParametersStates = new ArrayList<>(size());
- for (ParameterState parameterState : getParameterStates()) {
+ List<ValueState> copiedParametersStates = new ArrayList<>(size());
+ for (ValueState parameterState : getParameterStates()) {
copiedParametersStates.add(parameterState.mutableCopy());
}
return new ConcreteMonomorphicMethodState(isReturnValueUsed, copiedParametersStates);
@@ -86,8 +86,8 @@
int argumentIndex = 0;
if (size() > methodSignature.getArity()) {
assert size() == methodSignature.getArity() + 1;
- ParameterState parameterState = parameterStates.get(0);
- ParameterState otherParameterState = methodState.parameterStates.get(0);
+ ValueState parameterState = parameterStates.get(0);
+ ValueState otherParameterState = methodState.parameterStates.get(0);
DexType parameterType = null;
parameterStates.set(
0, parameterState.mutableJoin(appView, otherParameterState, parameterType, cloner));
@@ -95,8 +95,8 @@
}
for (int parameterIndex = 0; argumentIndex < size(); argumentIndex++, parameterIndex++) {
- ParameterState parameterState = parameterStates.get(argumentIndex);
- ParameterState otherParameterState = methodState.parameterStates.get(argumentIndex);
+ ValueState parameterState = parameterStates.get(argumentIndex);
+ ValueState otherParameterState = methodState.parameterStates.get(argumentIndex);
DexType parameterType = methodSignature.getParameter(parameterIndex);
parameterStates.set(
argumentIndex,
@@ -123,7 +123,7 @@
return this;
}
- public void setParameterState(int index, ParameterState parameterState) {
+ public void setParameterState(int index, ValueState parameterState) {
assert index == 0
|| !parameterState.isConcrete()
|| !parameterState.asConcrete().isReceiverParameter();
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcretePrimitiveTypeParameterState.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcretePrimitiveTypeValueState.java
similarity index 83%
rename from src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcretePrimitiveTypeParameterState.java
rename to src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcretePrimitiveTypeValueState.java
index 9e9ea03..37686ed 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcretePrimitiveTypeParameterState.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcretePrimitiveTypeValueState.java
@@ -14,27 +14,27 @@
import java.util.Collections;
import java.util.Set;
-public class ConcretePrimitiveTypeParameterState extends ConcreteParameterState {
+public class ConcretePrimitiveTypeValueState extends ConcreteValueState {
private AbstractValue abstractValue;
- public ConcretePrimitiveTypeParameterState(AbstractValue abstractValue) {
+ public ConcretePrimitiveTypeValueState(AbstractValue abstractValue) {
this(abstractValue, Collections.emptySet());
}
- public ConcretePrimitiveTypeParameterState(AbstractValue abstractValue, Set<InFlow> inFlow) {
+ public ConcretePrimitiveTypeValueState(AbstractValue abstractValue, Set<InFlow> inFlow) {
super(inFlow);
this.abstractValue = abstractValue;
assert !isEffectivelyBottom() : "Must use BottomPrimitiveTypeParameterState instead";
assert !isEffectivelyUnknown() : "Must use UnknownParameterState instead";
}
- public ConcretePrimitiveTypeParameterState(InFlow inFlow) {
+ public ConcretePrimitiveTypeValueState(InFlow inFlow) {
this(AbstractValue.bottom(), SetUtils.newHashSet(inFlow));
}
@Override
- public ParameterState clearInFlow() {
+ public ValueState clearInFlow() {
if (hasInFlow()) {
if (abstractValue.isBottom()) {
return bottomPrimitiveTypeParameter();
@@ -46,13 +46,13 @@
}
@Override
- public ParameterState mutableCopy() {
- return new ConcretePrimitiveTypeParameterState(abstractValue, copyInFlow());
+ public ValueState mutableCopy() {
+ return new ConcretePrimitiveTypeValueState(abstractValue, copyInFlow());
}
- public ParameterState mutableJoin(
+ public ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
- ConcretePrimitiveTypeParameterState parameterState,
+ ConcretePrimitiveTypeValueState parameterState,
DexType parameterType,
Action onChangedAction) {
assert parameterType.isPrimitiveType();
@@ -71,7 +71,7 @@
return this;
}
- public ParameterState mutableJoin(
+ public ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
ConcretePrimitiveTypeFieldState fieldState,
DexType parameterType,
@@ -134,7 +134,7 @@
}
@Override
- public ConcretePrimitiveTypeParameterState asPrimitiveParameter() {
+ public ConcretePrimitiveTypeValueState asPrimitiveParameter() {
return this;
}
}
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteReceiverParameterState.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteReceiverValueState.java
similarity index 87%
rename from src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteReceiverParameterState.java
rename to src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteReceiverValueState.java
index 4d23589..d5721d9 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteReceiverParameterState.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteReceiverValueState.java
@@ -16,15 +16,15 @@
import java.util.Collections;
import java.util.Set;
-public class ConcreteReceiverParameterState extends ConcreteReferenceTypeParameterState {
+public class ConcreteReceiverValueState extends ConcreteReferenceTypeValueState {
private DynamicType dynamicType;
- public ConcreteReceiverParameterState(DynamicType dynamicType) {
+ public ConcreteReceiverValueState(DynamicType dynamicType) {
this(dynamicType, Collections.emptySet());
}
- public ConcreteReceiverParameterState(DynamicType dynamicType, Set<InFlow> inFlow) {
+ public ConcreteReceiverValueState(DynamicType dynamicType, Set<InFlow> inFlow) {
super(inFlow);
this.dynamicType = dynamicType;
assert !isEffectivelyBottom() : "Must use BottomReceiverParameterState instead";
@@ -32,7 +32,7 @@
}
@Override
- public ParameterState clearInFlow() {
+ public ValueState clearInFlow() {
if (hasInFlow()) {
if (dynamicType.isBottom()) {
return bottomReceiverParameter();
@@ -79,19 +79,19 @@
}
@Override
- public ConcreteReceiverParameterState asReceiverParameter() {
+ public ConcreteReceiverValueState asReceiverParameter() {
return this;
}
@Override
- public ParameterState mutableCopy() {
- return new ConcreteReceiverParameterState(dynamicType, copyInFlow());
+ public ValueState mutableCopy() {
+ return new ConcreteReceiverValueState(dynamicType, copyInFlow());
}
@Override
- public ParameterState mutableJoin(
+ public ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
- ConcreteReferenceTypeParameterState parameterState,
+ ConcreteReferenceTypeValueState parameterState,
DexType parameterType,
Action onChangedAction) {
// TODO(b/190154391): Always take in the static type as an argument, and unset the dynamic type
@@ -113,7 +113,7 @@
}
@Override
- public ParameterState mutableJoin(
+ public ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
ConcreteReferenceTypeFieldState fieldState,
DexType parameterType,
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteReferenceTypeParameterState.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteReferenceTypeValueState.java
similarity index 76%
rename from src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteReferenceTypeParameterState.java
rename to src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteReferenceTypeValueState.java
index 4b17ea7..dd23935 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteReferenceTypeParameterState.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteReferenceTypeValueState.java
@@ -13,9 +13,9 @@
import com.android.tools.r8.utils.Action;
import java.util.Set;
-public abstract class ConcreteReferenceTypeParameterState extends ConcreteParameterState {
+public abstract class ConcreteReferenceTypeValueState extends ConcreteValueState {
- ConcreteReferenceTypeParameterState(Set<InFlow> inFlow) {
+ ConcreteReferenceTypeValueState(Set<InFlow> inFlow) {
super(inFlow);
}
@@ -29,17 +29,17 @@
}
@Override
- public ConcreteReferenceTypeParameterState asReferenceParameter() {
+ public ConcreteReferenceTypeValueState asReferenceParameter() {
return this;
}
- public abstract ParameterState mutableJoin(
+ public abstract ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
- ConcreteReferenceTypeParameterState parameterState,
+ ConcreteReferenceTypeValueState parameterState,
DexType parameterType,
Action onChangedAction);
- public abstract ParameterState mutableJoin(
+ public abstract ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
ConcreteReferenceTypeFieldState fieldState,
DexType parameterType,
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteParameterState.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteValueState.java
similarity index 82%
rename from src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteParameterState.java
rename to src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteValueState.java
index a342453..2c7e129 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteParameterState.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ConcreteValueState.java
@@ -13,7 +13,7 @@
import java.util.HashSet;
import java.util.Set;
-public abstract class ConcreteParameterState extends NonEmptyParameterState {
+public abstract class ConcreteValueState extends NonEmptyValueState {
public enum ConcreteParameterStateKind {
ARRAY,
@@ -24,11 +24,11 @@
private Set<InFlow> inFlow;
- ConcreteParameterState(Set<InFlow> inFlow) {
+ ConcreteValueState(Set<InFlow> inFlow) {
this.inFlow = inFlow;
}
- public abstract ParameterState clearInFlow();
+ public abstract ValueState clearInFlow();
void internalClearInFlow() {
inFlow = Collections.emptySet();
@@ -57,7 +57,7 @@
return false;
}
- public ConcreteArrayTypeParameterState asArrayParameter() {
+ public ConcreteArrayTypeValueState asArrayParameter() {
return null;
}
@@ -65,7 +65,7 @@
return false;
}
- public ConcreteClassTypeParameterState asClassParameter() {
+ public ConcreteClassTypeValueState asClassParameter() {
return null;
}
@@ -77,7 +77,7 @@
return false;
}
- public ConcretePrimitiveTypeParameterState asPrimitiveParameter() {
+ public ConcretePrimitiveTypeValueState asPrimitiveParameter() {
return null;
}
@@ -85,7 +85,7 @@
return false;
}
- public ConcreteReceiverParameterState asReceiverParameter() {
+ public ConcreteReceiverValueState asReceiverParameter() {
return null;
}
@@ -93,7 +93,7 @@
return false;
}
- public ConcreteReferenceTypeParameterState asReferenceParameter() {
+ public ConcreteReferenceTypeValueState asReferenceParameter() {
return null;
}
@@ -103,14 +103,14 @@
}
@Override
- public ConcreteParameterState asConcrete() {
+ public ConcreteValueState asConcrete() {
return this;
}
@Override
- public final ParameterState mutableJoin(
+ public final ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
- ParameterState parameterState,
+ ValueState parameterState,
DexType parameterType,
StateCloner cloner,
Action onChangedAction) {
@@ -120,7 +120,7 @@
if (parameterState.isUnknown()) {
return parameterState;
}
- ConcreteParameterState concreteParameterState = parameterState.asConcrete();
+ ConcreteValueState concreteParameterState = parameterState.asConcrete();
if (isReferenceParameter()) {
assert concreteParameterState.isReferenceParameter();
return asReferenceParameter()
@@ -136,7 +136,7 @@
}
@Override
- public final ParameterState mutableJoin(
+ public final ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
ConcreteFieldState fieldState,
DexType parameterType,
@@ -150,7 +150,7 @@
.mutableJoin(appView, fieldState.asPrimitive(), parameterType, onChangedAction);
}
- boolean mutableJoinInFlow(ConcreteParameterState parameterState) {
+ boolean mutableJoinInFlow(ConcreteValueState parameterState) {
return mutableJoinInFlow(parameterState.getInFlow());
}
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/NonEmptyParameterState.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/NonEmptyValueState.java
similarity index 73%
rename from src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/NonEmptyParameterState.java
rename to src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/NonEmptyValueState.java
index 68e0842..4d03f35 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/NonEmptyParameterState.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/NonEmptyValueState.java
@@ -4,10 +4,10 @@
package com.android.tools.r8.optimize.argumentpropagation.codescanner;
-public abstract class NonEmptyParameterState extends ParameterState {
+public abstract class NonEmptyValueState extends ValueState {
@Override
- public NonEmptyParameterState asNonEmpty() {
+ public NonEmptyValueState asNonEmpty() {
return this;
}
}
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/StateCloner.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/StateCloner.java
index 6a2e941..6843b58 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/StateCloner.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/StateCloner.java
@@ -28,7 +28,7 @@
}
@Override
- public ParameterState mutableCopy(ParameterState parameterState) {
+ public ValueState mutableCopy(ValueState parameterState) {
return parameterState.mutableCopy();
}
};
@@ -41,7 +41,7 @@
}
@Override
- public ParameterState mutableCopy(ParameterState parameterState) {
+ public ValueState mutableCopy(ValueState parameterState) {
return parameterState;
}
};
@@ -56,5 +56,5 @@
public abstract MethodState mutableCopy(MethodState methodState);
- public abstract ParameterState mutableCopy(ParameterState parameterState);
+ public abstract ValueState mutableCopy(ValueState parameterState);
}
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/UnknownParameterState.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/UnknownValueState.java
similarity index 75%
rename from src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/UnknownParameterState.java
rename to src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/UnknownValueState.java
index 794db40..eb59e78 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/UnknownParameterState.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/UnknownValueState.java
@@ -11,13 +11,13 @@
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.Action;
-public class UnknownParameterState extends NonEmptyParameterState {
+public class UnknownValueState extends NonEmptyValueState {
- private static final UnknownParameterState INSTANCE = new UnknownParameterState();
+ private static final UnknownValueState INSTANCE = new UnknownValueState();
- private UnknownParameterState() {}
+ private UnknownValueState() {}
- public static UnknownParameterState get() {
+ public static UnknownValueState get() {
return INSTANCE;
}
@@ -32,14 +32,14 @@
}
@Override
- public ParameterState mutableCopy() {
+ public ValueState mutableCopy() {
return this;
}
@Override
- public ParameterState mutableJoin(
+ public ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
- ParameterState parameterState,
+ ValueState parameterState,
DexType parameterType,
StateCloner cloner,
Action onChangedAction) {
@@ -47,7 +47,7 @@
}
@Override
- public ParameterState mutableJoin(
+ public ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
ConcreteFieldState fieldState,
DexType parameterType,
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ParameterState.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ValueState.java
similarity index 60%
rename from src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ParameterState.java
rename to src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ValueState.java
index 8f452f3..1a6e570 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ParameterState.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/ValueState.java
@@ -11,26 +11,26 @@
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.Action;
-public abstract class ParameterState {
+public abstract class ValueState {
- public static BottomParameterState bottomArrayTypeParameter() {
- return BottomArrayTypeParameterState.get();
+ public static BottomValueState bottomArrayTypeParameter() {
+ return BottomArrayTypeValueState.get();
}
- public static BottomParameterState bottomClassTypeParameter() {
- return BottomClassTypeParameterState.get();
+ public static BottomValueState bottomClassTypeParameter() {
+ return BottomClassTypeValueState.get();
}
- public static BottomParameterState bottomPrimitiveTypeParameter() {
- return BottomPrimitiveTypeParameterState.get();
+ public static BottomValueState bottomPrimitiveTypeParameter() {
+ return BottomPrimitiveTypeValueState.get();
}
- public static BottomParameterState bottomReceiverParameter() {
- return BottomReceiverParameterState.get();
+ public static BottomValueState bottomReceiverParameter() {
+ return BottomReceiverValueState.get();
}
- public static UnknownParameterState unknown() {
- return UnknownParameterState.get();
+ public static UnknownValueState unknown() {
+ return UnknownValueState.get();
}
public abstract AbstractValue getAbstractValue(AppView<AppInfoWithLiveness> appView);
@@ -43,11 +43,11 @@
return false;
}
- public ConcreteParameterState asConcrete() {
+ public ConcreteValueState asConcrete() {
return null;
}
- public NonEmptyParameterState asNonEmpty() {
+ public NonEmptyValueState asNonEmpty() {
return null;
}
@@ -55,24 +55,24 @@
return false;
}
- public abstract ParameterState mutableCopy();
+ public abstract ValueState mutableCopy();
- public final ParameterState mutableJoin(
+ public final ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
- ParameterState parameterState,
+ ValueState parameterState,
DexType parameterType,
StateCloner cloner) {
return mutableJoin(appView, parameterState, parameterType, cloner, Action.empty());
}
- public abstract ParameterState mutableJoin(
+ public abstract ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
- ParameterState parameterState,
+ ValueState parameterState,
DexType parameterType,
StateCloner cloner,
Action onChangedAction);
- public abstract ParameterState mutableJoin(
+ public abstract ValueState mutableJoin(
AppView<AppInfoWithLiveness> appView,
ConcreteFieldState fieldState,
DexType parameterType,
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/InParameterFlowPropagator.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/InParameterFlowPropagator.java
index deae78e..c76d830 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/InParameterFlowPropagator.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/InParameterFlowPropagator.java
@@ -16,14 +16,14 @@
import com.android.tools.r8.ir.conversion.IRConverter;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteMethodState;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteMonomorphicMethodState;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteParameterState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteValueState;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.InFlow;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.MethodParameter;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.MethodState;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.MethodStateCollectionByReference;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.NonEmptyParameterState;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.ParameterState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.NonEmptyValueState;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.StateCloner;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.ValueState;
import com.android.tools.r8.optimize.argumentpropagation.utils.BidirectedGraph;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.Action;
@@ -105,13 +105,13 @@
private void propagate(
ParameterNode parameterNode, Consumer<ParameterNode> affectedNodeConsumer) {
- ParameterState parameterState = parameterNode.getState();
+ ValueState parameterState = parameterNode.getState();
if (parameterState.isBottom()) {
return;
}
List<ParameterNode> newlyUnknownParameterNodes = new ArrayList<>();
for (ParameterNode successorNode : parameterNode.getSuccessors()) {
- ParameterState newParameterState =
+ ValueState newParameterState =
successorNode.addState(
appView,
parameterState.asNonEmpty(),
@@ -184,9 +184,9 @@
// Add nodes for the parameters for which we have non-trivial information.
ConcreteMonomorphicMethodState monomorphicMethodState = methodState.asMonomorphic();
- List<ParameterState> parameterStates = monomorphicMethodState.getParameterStates();
+ List<ValueState> parameterStates = monomorphicMethodState.getParameterStates();
for (int parameterIndex = 0; parameterIndex < parameterStates.size(); parameterIndex++) {
- ParameterState parameterState = parameterStates.get(parameterIndex);
+ ValueState parameterState = parameterStates.get(parameterIndex);
add(method, parameterIndex, monomorphicMethodState, parameterState);
}
}
@@ -195,14 +195,14 @@
ProgramMethod method,
int parameterIndex,
ConcreteMonomorphicMethodState methodState,
- ParameterState parameterState) {
+ ValueState parameterState) {
// No need to create nodes for parameters with no in-parameters and parameters we don't know
// anything about.
if (parameterState.isBottom() || parameterState.isUnknown()) {
return;
}
- ConcreteParameterState concreteParameterState = parameterState.asConcrete();
+ ConcreteValueState concreteParameterState = parameterState.asConcrete();
// No need to create a node for a parameter that doesn't depend on any other parameters
// (unless some other parameter depends on this parameter).
@@ -247,7 +247,7 @@
if (enclosingMethodState.isUnknown()) {
// The parameter depends on another parameter for which we don't know anything.
node.clearPredecessors();
- node.setState(ParameterState.unknown());
+ node.setState(ValueState.unknown());
return TraversalContinuation.doBreak();
}
@@ -326,7 +326,7 @@
return predecessors;
}
- ParameterState getState() {
+ ValueState getState() {
return methodState.getParameterState(parameterIndex);
}
@@ -342,12 +342,12 @@
return pending;
}
- ParameterState addState(
+ ValueState addState(
AppView<AppInfoWithLiveness> appView,
- NonEmptyParameterState parameterStateToAdd,
+ NonEmptyValueState parameterStateToAdd,
Action onChangedAction) {
- ParameterState oldParameterState = getState();
- ParameterState newParameterState =
+ ValueState oldParameterState = getState();
+ ValueState newParameterState =
oldParameterState.mutableJoin(
appView,
parameterStateToAdd,
@@ -366,7 +366,7 @@
pending = true;
}
- void setState(ParameterState parameterState) {
+ void setState(ValueState parameterState) {
methodState.setParameterState(parameterIndex, parameterState);
}
diff --git a/src/main/java/com/android/tools/r8/optimize/compose/ArgumentPropagatorComposeModeling.java b/src/main/java/com/android/tools/r8/optimize/compose/ArgumentPropagatorComposeModeling.java
index 6ffeb6d..2a54b56 100644
--- a/src/main/java/com/android/tools/r8/optimize/compose/ArgumentPropagatorComposeModeling.java
+++ b/src/main/java/com/android/tools/r8/optimize/compose/ArgumentPropagatorComposeModeling.java
@@ -16,8 +16,8 @@
import com.android.tools.r8.ir.code.InvokeStatic;
import com.android.tools.r8.ir.code.Or;
import com.android.tools.r8.ir.code.Value;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcretePrimitiveTypeParameterState;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.ParameterState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcretePrimitiveTypeValueState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.ValueState;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.BitUtils;
import com.android.tools.r8.utils.BooleanUtils;
@@ -84,7 +84,7 @@
* }
* </pre>
*/
- public ParameterState modelParameterStateForChangedOrDefaultArgumentToComposableFunction(
+ public ValueState modelParameterStateForChangedOrDefaultArgumentToComposableFunction(
InvokeMethod invoke,
ProgramMethod singleTarget,
int argumentIndex,
@@ -148,7 +148,7 @@
assert argument.getType().isInt();
DexString expectedFieldName;
- ParameterState state = ParameterState.bottomPrimitiveTypeParameter();
+ ValueState state = ValueState.bottomPrimitiveTypeParameter();
if (!hasDefaultParameter || argumentIndex == invokedMethod.getArity() - 2) {
// We are looking at an argument to the $$changed parameter of the @Composable function.
// We generally expect this argument to be defined by a call to updateChangedFlags().
@@ -176,7 +176,7 @@
// Update the model from bottom to a special value that effectively throws away any known
// information about the lowermost bit of $$changed.
state =
- new ConcretePrimitiveTypeParameterState(
+ new ConcretePrimitiveTypeValueState(
appView
.abstractValueFactory()
.createDefiniteBitsNumberValue(
diff --git a/src/main/java/com/android/tools/r8/optimize/compose/ComposeMethodProcessor.java b/src/main/java/com/android/tools/r8/optimize/compose/ComposeMethodProcessor.java
index 319d053..9a57173 100644
--- a/src/main/java/com/android/tools/r8/optimize/compose/ComposeMethodProcessor.java
+++ b/src/main/java/com/android/tools/r8/optimize/compose/ComposeMethodProcessor.java
@@ -21,9 +21,9 @@
import com.android.tools.r8.optimize.argumentpropagation.ArgumentPropagatorCodeScanner;
import com.android.tools.r8.optimize.argumentpropagation.ArgumentPropagatorOptimizationInfoPopulator;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteMonomorphicMethodState;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteParameterState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteValueState;
import com.android.tools.r8.optimize.argumentpropagation.codescanner.MethodState;
-import com.android.tools.r8.optimize.argumentpropagation.codescanner.ParameterState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.ValueState;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.LazyBox;
import com.android.tools.r8.utils.Timing;
@@ -105,10 +105,10 @@
ConcreteMonomorphicMethodState monomorphicMethodState = methodState.asMonomorphic();
for (int i = 0; i < monomorphicMethodState.size(); i++) {
if (monomorphicMethodState.getParameterState(i).isConcrete()) {
- ConcreteParameterState concreteParameterState =
+ ConcreteValueState concreteParameterState =
monomorphicMethodState.getParameterState(i).asConcrete();
if (concreteParameterState.hasInFlow()) {
- monomorphicMethodState.setParameterState(i, ParameterState.unknown());
+ monomorphicMethodState.setParameterState(i, ValueState.unknown());
}
}
}